send-invites.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import AddCollaborators from './add-collaborators'
  2. import AddCollaboratorsUpgrade from './add-collaborators-upgrade'
  3. import CollaboratorsLimitUpgrade from './collaborators-limit-upgrade'
  4. import AccessLevelsChanged from './access-levels-changed'
  5. import OLRow from '@/shared/components/ol/ol-row'
  6. import classnames from 'classnames'
  7. import { useFeatureFlag } from '@/shared/context/split-test-context'
  8. export default function SendInvites({
  9. canAddCollaborators,
  10. hasExceededCollaboratorLimit,
  11. haveAnyEditorsBeenDowngraded,
  12. somePendingEditorsResolved,
  13. }: {
  14. canAddCollaborators: boolean
  15. hasExceededCollaboratorLimit: boolean
  16. haveAnyEditorsBeenDowngraded: boolean
  17. somePendingEditorsResolved: boolean
  18. }) {
  19. const isSharingUpdatesEnabled = useFeatureFlag('sharing-updates')
  20. return (
  21. <OLRow
  22. className={classnames('invite-controls', {
  23. 'pb-3': isSharingUpdatesEnabled,
  24. })}
  25. >
  26. {hasExceededCollaboratorLimit && !haveAnyEditorsBeenDowngraded && (
  27. <AddCollaboratorsUpgrade />
  28. )}
  29. {haveAnyEditorsBeenDowngraded && (
  30. <AccessLevelsChanged
  31. somePendingEditorsResolved={somePendingEditorsResolved}
  32. />
  33. )}
  34. {!canAddCollaborators &&
  35. !hasExceededCollaboratorLimit &&
  36. !haveAnyEditorsBeenDowngraded && <CollaboratorsLimitUpgrade />}
  37. <AddCollaborators readOnly={!canAddCollaborators} />
  38. </OLRow>
  39. )
  40. }