GrantedGroupsInheritanceSelectModal.tsx 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { useState } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import {
  4. Modal, ModalHeader, ModalBody, ModalFooter,
  5. } from 'reactstrap';
  6. import { useGrantedGroupsInheritanceSelectModal } from '~/stores/modal';
  7. const GrantedGroupsInheritanceSelectModal = (): JSX.Element => {
  8. const { t } = useTranslation();
  9. const { data: modalData, close: closeModal } = useGrantedGroupsInheritanceSelectModal();
  10. const [onlyInheritUserRelatedGrantedGroups, setOnlyInheritUserRelatedGrantedGroups] = useState(false);
  11. const onCreateBtnClick = async() => {
  12. await modalData?.onCreateBtnClick?.(onlyInheritUserRelatedGrantedGroups);
  13. setOnlyInheritUserRelatedGrantedGroups(false); // reset to false after create request
  14. };
  15. const isOpened = modalData?.isOpened ?? false;
  16. return (
  17. <Modal
  18. isOpen={isOpened}
  19. toggle={() => closeModal()}
  20. >
  21. <ModalHeader tag="h4" toggle={() => closeModal()}>
  22. {t('modal_granted_groups_inheritance_select.select_granted_groups')}
  23. </ModalHeader>
  24. <ModalBody>
  25. <div className="px-3 pt-3">
  26. <div className="form-check radio-primary mb-3">
  27. <input
  28. type="radio"
  29. id="inheritAllGroupsRadio"
  30. className="form-check-input"
  31. form="formImageType"
  32. checked={!onlyInheritUserRelatedGrantedGroups}
  33. onChange={() => { setOnlyInheritUserRelatedGrantedGroups(false) }}
  34. />
  35. <label className="form-check-label" htmlFor="inheritAllGroupsRadio">
  36. {t('modal_granted_groups_inheritance_select.inherit_all_granted_groups_from_parent')}
  37. </label>
  38. </div>
  39. <div className="form-check radio-primary">
  40. <input
  41. type="radio"
  42. id="onlyInheritRelatedGroupsRadio"
  43. className="form-check-input"
  44. form="formImageType"
  45. checked={onlyInheritUserRelatedGrantedGroups}
  46. onChange={() => { setOnlyInheritUserRelatedGrantedGroups(true) }}
  47. />
  48. <label className="form-check-label" htmlFor="onlyInheritRelatedGroupsRadio">
  49. {t('modal_granted_groups_inheritance_select.only_inherit_related_groups')}
  50. </label>
  51. </div>
  52. </div>
  53. </ModalBody>
  54. <ModalFooter className="grw-modal-footer">
  55. <button type="button" className="me-2 btn btn-secondary" onClick={() => closeModal()}>{t('Cancel')}</button>
  56. <button className="btn btn-primary" type="button" onClick={onCreateBtnClick}>
  57. {t('modal_granted_groups_inheritance_select.create_page')}
  58. </button>
  59. </ModalFooter>
  60. </Modal>
  61. );
  62. };
  63. export default GrantedGroupsInheritanceSelectModal;