leave-section.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 ButtonWrapper from '@/features/ui/components/bootstrap-5/wrappers/button-wrapper'
  6. import { bsVersion } from '@/features/utils/bootstrap-5'
  7. function LeaveSection() {
  8. const { t } = useTranslation()
  9. const [isModalOpen, setIsModalOpen] = useState(false)
  10. const handleClose = useCallback(() => {
  11. setIsModalOpen(false)
  12. }, [])
  13. const handleOpen = useCallback(() => {
  14. setIsModalOpen(true)
  15. }, [])
  16. // Prevent managed users deleting their own accounts
  17. if (getMeta('ol-cannot-delete-own-account')) {
  18. return (
  19. <>
  20. {t('need_to_leave')} {t('contact_group_admin')}
  21. </>
  22. )
  23. }
  24. return (
  25. <>
  26. {t('need_to_leave')}{' '}
  27. <ButtonWrapper
  28. className={bsVersion({
  29. bs3: 'btn btn-inline-link btn-danger',
  30. bs5: 'btn-link',
  31. })}
  32. variant="danger"
  33. onClick={handleOpen}
  34. >
  35. {t('delete_your_account')}
  36. </ButtonWrapper>
  37. <LeaveModal isOpen={isModalOpen} handleClose={handleClose} />
  38. </>
  39. )
  40. }
  41. export default LeaveSection