group-settings-button.tsx 1.3 KB

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