leave-section.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { useState, useCallback } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import LeaveModal from './leave/modal'
  4. import getMeta from '../../../utils/meta'
  5. import OLButton from '@/features/ui/components/ol/ol-button'
  6. function LeaveSection() {
  7. const { t } = useTranslation()
  8. const [isModalOpen, setIsModalOpen] = useState(false)
  9. const handleClose = useCallback(() => {
  10. setIsModalOpen(false)
  11. }, [])
  12. const handleOpen = useCallback(() => {
  13. setIsModalOpen(true)
  14. }, [])
  15. // Prevent managed users deleting their own accounts
  16. if (getMeta('ol-cannot-delete-own-account')) {
  17. return (
  18. <>
  19. {t('need_to_leave')} {t('contact_group_admin')}
  20. </>
  21. )
  22. }
  23. return (
  24. <>
  25. {t('need_to_leave')}{' '}
  26. <OLButton
  27. className="btn-inline-link"
  28. variant="danger"
  29. onClick={handleOpen}
  30. >
  31. {t('delete_your_account')}
  32. </OLButton>
  33. <LeaveModal isOpen={isModalOpen} handleClose={handleClose} />
  34. </>
  35. )
  36. }
  37. export default LeaveSection