managed-group-subscriptions.tsx 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { Trans, useTranslation } from 'react-i18next'
  2. import { GroupSubscription } from '../../../../../../types/subscription/dashboard/subscription'
  3. import { User } from '../../../../../../types/user'
  4. export type ManagedGroupSubscription = Omit<GroupSubscription, 'admin_id'> & {
  5. userIsGroupMember: boolean
  6. planLevelName: string
  7. admin_id: User
  8. }
  9. type ManagedGroupSubscriptionsProps = {
  10. subscriptions?: ManagedGroupSubscription[]
  11. }
  12. export default function ManagedGroupSubscriptions({
  13. subscriptions,
  14. }: ManagedGroupSubscriptionsProps) {
  15. const { t } = useTranslation()
  16. if (!subscriptions) {
  17. return null
  18. }
  19. return (
  20. <>
  21. {subscriptions.map(subscription => (
  22. <div key={`managed-group-${subscription._id}`}>
  23. <p>
  24. {subscription.userIsGroupMember ? (
  25. <Trans
  26. i18nKey="you_are_a_manager_and_member_of_x_plan_as_member_of_group_subscription_y_administered_by_z"
  27. components={[<a href="/user/subscription/plans" />, <strong />]} // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
  28. values={{
  29. planName: subscription.planLevelName,
  30. groupName: subscription.teamName || '',
  31. adminEmail: subscription.admin_id.email,
  32. }}
  33. />
  34. ) : (
  35. <Trans
  36. i18nKey="you_are_a_manager_of_x_plan_as_member_of_group_subscription_y_administered_by_z"
  37. components={[<a href="/user/subscription/plans" />, <strong />]} // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
  38. values={{
  39. planName: subscription.planLevelName,
  40. groupName: subscription.teamName || '',
  41. adminEmail: subscription.admin_id.email,
  42. }}
  43. />
  44. )}
  45. </p>
  46. <p>
  47. <a
  48. className="btn btn-primary"
  49. href={`/manage/groups/${subscription._id}/members`}
  50. >
  51. <i className="fa fa-fw fa-users" /> {t('manage_members')}
  52. </a>
  53. </p>
  54. <p>
  55. <a href={`/manage/groups/${subscription._id}/managers`}>
  56. <i className="fa fa-fw fa-users" /> {t('manage_group_managers')}
  57. </a>
  58. </p>
  59. <p>
  60. <a href={`/metrics/groups/${subscription._id}`}>
  61. <i className="fa fa-fw fa-line-chart" /> {t('view_metrics')}
  62. </a>
  63. </p>
  64. <hr />
  65. </div>
  66. ))}
  67. </>
  68. )
  69. }