group-settings-button.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { RowLink } from '@/features/subscription/components/dashboard/row-link'
  2. import getMeta from '@/utils/meta'
  3. import { useTranslation } from 'react-i18next'
  4. import { ExposedSettings } from '../../../../../../types/exposed-settings'
  5. import { ManagedGroupSubscription } from '../../../../../../types/subscription/dashboard/subscription'
  6. export default function GroupSettingsButton({
  7. subscription,
  8. }: {
  9. subscription: ManagedGroupSubscription
  10. }) {
  11. const { t } = useTranslation()
  12. const { groupSSOEnabled } = getMeta(
  13. 'ol-ExposedSettings',
  14. {}
  15. ) as ExposedSettings
  16. const subscriptionHasManagedUsers =
  17. subscription.features?.managedUsers !== false
  18. const subscriptionHasGroupSSO =
  19. subscription.features?.groupSSO === true ||
  20. (groupSSOEnabled && subscription.features?.groupSSO === null)
  21. let groupSettingRowSubText = ''
  22. if (subscriptionHasGroupSSO && subscriptionHasManagedUsers) {
  23. groupSettingRowSubText = t('manage_group_settings_subtext')
  24. } else if (subscriptionHasGroupSSO) {
  25. groupSettingRowSubText = t('manage_group_settings_subtext_group_sso')
  26. } else if (subscriptionHasManagedUsers) {
  27. groupSettingRowSubText = t('manage_group_settings_subtext_managed_users')
  28. }
  29. return (
  30. <RowLink
  31. href={`/manage/groups/${subscription._id}/settings`}
  32. heading={t('manage_group_settings')}
  33. subtext={groupSettingRowSubText}
  34. icon="settings"
  35. />
  36. )
  37. }