managed-group-subscriptions.tsx 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { Trans, useTranslation } from 'react-i18next'
  2. import getMeta from '../../../../utils/meta'
  3. import { useSubscriptionDashboardContext } from '../../context/subscription-dashboard-context'
  4. import { RowLink } from './row-link'
  5. export default function ManagedGroupSubscriptions() {
  6. const { t } = useTranslation()
  7. const { managedGroupSubscriptions } = useSubscriptionDashboardContext()
  8. if (!managedGroupSubscriptions) {
  9. return null
  10. }
  11. const groupSettingsEnabledFor = getMeta(
  12. 'ol-groupSettingsEnabledFor',
  13. []
  14. ) as string[]
  15. return (
  16. <>
  17. {managedGroupSubscriptions.map(subscription => (
  18. <div key={`managed-group-${subscription._id}`}>
  19. <p>
  20. {subscription.userIsGroupMember ? (
  21. <Trans
  22. i18nKey="you_are_a_manager_and_member_of_x_plan_as_member_of_group_subscription_y_administered_by_z"
  23. components={[<a href="/user/subscription/plans" />, <strong />]} // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
  24. values={{
  25. planName: subscription.planLevelName,
  26. groupName: subscription.teamName || '',
  27. adminEmail: subscription.admin_id.email,
  28. }}
  29. shouldUnescape
  30. tOptions={{ interpolation: { escapeValue: true } }}
  31. />
  32. ) : (
  33. <Trans
  34. i18nKey="you_are_a_manager_of_x_plan_as_member_of_group_subscription_y_administered_by_z"
  35. components={[<a href="/user/subscription/plans" />, <strong />]} // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
  36. values={{
  37. planName: subscription.planLevelName,
  38. groupName: subscription.teamName || '',
  39. adminEmail: subscription.admin_id.email,
  40. }}
  41. shouldUnescape
  42. tOptions={{ interpolation: { escapeValue: true } }}
  43. />
  44. )}
  45. </p>
  46. <RowLink
  47. href={`/manage/groups/${subscription._id}/members`}
  48. heading={t('manage_members')}
  49. subtext={t('manage_group_members_subtext')}
  50. icon="groups"
  51. />
  52. <RowLink
  53. href={`/manage/groups/${subscription._id}/managers`}
  54. heading={t('manage_group_managers')}
  55. subtext={t('manage_managers_subtext')}
  56. icon="manage_accounts"
  57. />
  58. {groupSettingsEnabledFor?.includes(subscription._id) && (
  59. <RowLink
  60. href={`/manage/groups/${subscription._id}/settings`}
  61. heading={t('manage_group_settings')}
  62. subtext={t('manage_group_settings_subtext')}
  63. icon="settings"
  64. />
  65. )}
  66. <RowLink
  67. href={`/metrics/groups/${subscription._id}`}
  68. heading={t('view_metrics')}
  69. subtext={t('view_metrics_group_subtext')}
  70. icon="insights"
  71. />
  72. <hr />
  73. </div>
  74. ))}
  75. </>
  76. )
  77. }