From 39b18f7efcf9fb23ecff86602dd3f85fb49774bf Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Tue, 3 Feb 2026 09:17:17 +0700 Subject: [PATCH] refactor: use Modal instead of Drawer --- src/app/production/project-flock/layout.tsx | 31 +++++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/app/production/project-flock/layout.tsx b/src/app/production/project-flock/layout.tsx index 3e9a65b7..3e46bbfc 100644 --- a/src/app/production/project-flock/layout.tsx +++ b/src/app/production/project-flock/layout.tsx @@ -2,9 +2,10 @@ import { usePathname, useRouter } from 'next/navigation'; import Drawer from '@/components/Drawer'; -import React, { ReactNode } from 'react'; +import React, { ReactNode, useEffect } from 'react'; import ProjectFlockTable from '@/components/pages/production/project-flock/ProjectFlockTable'; import { useUiStore } from '@/stores/ui/ui.store'; +import Modal, { useModal } from '@/components/Modal'; export default function ProjectFlockLayout({ children, @@ -23,9 +24,12 @@ export default function ProjectFlockLayout({ const isOpen = isAdd || isEdit || isDetail || isChickin || isClosing; + const formModal = useModal(); + const handleBackdropClick = () => { const unsub = useUiStore.getState().subscribeIsValid((isValid) => { if (isValid) { + formModal.closeModal(); unsub(); // berhenti listen router.push('/production/project-flock'); } @@ -34,6 +38,14 @@ export default function ProjectFlockLayout({ toggleValidate(); }; + useEffect(() => { + if (isOpen && !formModal.open) { + formModal.openModal(); + } else { + formModal.closeModal(); + } + }, [isOpen]); + return ( <> {/* List page always rendered */} @@ -44,7 +56,7 @@ export default function ProjectFlockLayout({ {/* Render Drawer only on /add */} - { if (!v) router.push('/production/project-flock'); @@ -54,7 +66,20 @@ export default function ProjectFlockLayout({ variant='right' zIndex='99999' sidebarContent={isOpen &&
{children}
} - /> + /> */} + + +
+ {isOpen && children} +
+
); }