diff --git a/web/core/components/cycles/modal.tsx b/web/core/components/cycles/modal.tsx index a12193559c..15fa4a5b91 100644 --- a/web/core/components/cycles/modal.tsx +++ b/web/core/components/cycles/modal.tsx @@ -13,6 +13,7 @@ import { CycleForm } from "@/components/cycles"; // constants // hooks import { useEventTracker, useCycle, useProject } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; import useLocalStorage from "@/hooks/use-local-storage"; import { usePlatformOS } from "@/hooks/use-platform-os"; // services @@ -180,8 +181,12 @@ export const CycleCreateUpdateModal: React.FC = (props) => { setActiveProject(projectId ?? workspaceProjectIds?.[0] ?? null); }, [activeProject, data, projectId, workspaceProjectIds, isOpen]); + useKeypress("Escape", () => { + if (isOpen) handleClose(); + }); + return ( - + = (props) // handlers const handleDuplicateIssueModal = (value: boolean) => setIsDuplicateModalOpen(value); + useKeypress("Escape", () => { + if (modalState) { + handleModalClose(); + setIsDuplicateModalOpen(false); + } + }); + return ( { - handleModalClose(); - setIsDuplicateModalOpen(false); - }} position={EModalPosition.TOP} width={isDuplicateModalOpen ? EModalWidth.VIXL : EModalWidth.XXXXL} className="!bg-transparent rounded-lg shadow-none transition-[width] ease-linear" diff --git a/web/core/components/issues/issue-modal/base.tsx b/web/core/components/issues/issue-modal/base.tsx index b30c1a85c7..d272232393 100644 --- a/web/core/components/issues/issue-modal/base.tsx +++ b/web/core/components/issues/issue-modal/base.tsx @@ -375,7 +375,6 @@ export const CreateUpdateIssueModalBase: React.FC = observer(( return ( handleClose(true)} position={EModalPosition.TOP} width={isDuplicateModalOpen ? EModalWidth.VIXL : EModalWidth.XXXXL} className="!bg-transparent rounded-lg shadow-none transition-[width] ease-linear" diff --git a/web/core/components/modules/modal.tsx b/web/core/components/modules/modal.tsx index 8cfc8820c8..e1bc7c7eff 100644 --- a/web/core/components/modules/modal.tsx +++ b/web/core/components/modules/modal.tsx @@ -13,6 +13,7 @@ import { ModuleForm } from "@/components/modules"; // constants // hooks import { useEventTracker, useModule, useProject } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { @@ -142,8 +143,12 @@ export const CreateUpdateModuleModal: React.FC = observer((props) => { setActiveProject(projectId ?? workspaceProjectIds?.[0] ?? null); }, [activeProject, data, projectId, workspaceProjectIds, isOpen]); + useKeypress("Escape", () => { + if (isOpen) handleClose(); + }); + return ( - + = (props) => { } }; + useKeypress("Escape", () => { + if (isOpen) onClose(); + }); + return ( - + {currentStep === EProjectCreationSteps.CREATE_PROJECT && ( = observer((props) => { else await handleUpdateView(formData); }; + useKeypress("Escape", () => { + if (isOpen) handleClose(); + }); + return ( - + = (props) => { }, 350); }; + useKeypress("Escape", () => { + if (isOpen && !generatedWebhook) handleClose(); + }); + return ( - { - if (!generatedWebhook) handleClose(); - }} - position={EModalPosition.TOP} - width={EModalWidth.XXL} - className="p-4 pb-0" - > + {!generatedWebhook ? ( ) : (