managed-group-subscriptions.tsx 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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('ol-groupSettingsEnabledFor', [])
  12. return (
  13. <>
  14. {managedGroupSubscriptions.map(subscription => (
  15. <div key={`managed-group-${subscription._id}`}>
  16. <p>
  17. {subscription.userIsGroupMember ? (
  18. <Trans
  19. i18nKey="you_are_a_manager_and_member_of_x_plan_as_member_of_group_subscription_y_administered_by_z"
  20. components={[<a href="/user/subscription/plans" />, <strong />]} // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
  21. values={{
  22. planName: subscription.planLevelName,
  23. groupName: subscription.teamName || '',
  24. adminEmail: subscription.admin_id.email,
  25. }}
  26. />
  27. ) : (
  28. <Trans
  29. i18nKey="you_are_a_manager_of_x_plan_as_member_of_group_subscription_y_administered_by_z"
  30. components={[<a href="/user/subscription/plans" />, <strong />]} // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
  31. values={{
  32. planName: subscription.planLevelName,
  33. groupName: subscription.teamName || '',
  34. adminEmail: subscription.admin_id.email,
  35. }}
  36. />
  37. )}
  38. </p>
  39. <RowLink
  40. href={`/manage/groups/${subscription._id}/members`}
  41. heading={t('manage_members')}
  42. subtext={t('manage_group_members_subtext')}
  43. icon="groups"
  44. />
  45. <RowLink
  46. href={`/manage/groups/${subscription._id}/managers`}
  47. heading={t('manage_group_managers')}
  48. subtext={t('manage_managers_subtext')}
  49. icon="manage_accounts"
  50. />
  51. {groupSettingsEnabledFor.includes(subscription._id) && (
  52. <RowLink
  53. href={`/manage/groups/${subscription._id}/settings`}
  54. heading={t('manage_group_settings')}
  55. subtext={t('manage_group_settings_subtext')}
  56. icon="settings"
  57. />
  58. )}
  59. <RowLink
  60. href={`/metrics/groups/${subscription._id}`}
  61. heading={t('view_metrics')}
  62. subtext={t('view_metrics_group_subtext')}
  63. icon="insights"
  64. />
  65. <hr />
  66. </div>
  67. ))}
  68. </>
  69. )
  70. }