leave-section.tsx 940 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. function LeaveSection() {
  6. const { t } = useTranslation()
  7. const [isModalOpen, setIsModalOpen] = useState(false)
  8. const handleClose = useCallback(() => {
  9. setIsModalOpen(false)
  10. }, [])
  11. const handleOpen = useCallback(() => {
  12. setIsModalOpen(true)
  13. }, [])
  14. // Prevent managed users deleting their own accounts
  15. if (getMeta('ol-cannot-delete-own-account')) {
  16. return (
  17. <>
  18. {t('need_to_leave')} {t('contact_group_admin')}
  19. </>
  20. )
  21. }
  22. return (
  23. <>
  24. {t('need_to_leave')}{' '}
  25. <button className="btn btn-inline-link btn-danger" onClick={handleOpen}>
  26. {t('delete_your_account')}
  27. </button>
  28. <LeaveModal isOpen={isModalOpen} handleClose={handleClose} />
  29. </>
  30. )
  31. }
  32. export default LeaveSection