diff --git a/src/components/pages/uniformity/UniformityTable.tsx b/src/components/pages/uniformity/UniformityTable.tsx index 0f5de463..c6935bf8 100644 --- a/src/components/pages/uniformity/UniformityTable.tsx +++ b/src/components/pages/uniformity/UniformityTable.tsx @@ -24,6 +24,7 @@ import toast from 'react-hot-toast'; import Card from '@/components/Card'; import UniformityTableSkeleton from './skeleton/UniformityTableSkeleton'; import RequirePermission from '@/components/helper/RequirePermission'; +import { useUniformityStore } from '@/stores/uniformity/uniformity.store'; const statusColorMap: Record = { APPROVED: 'bg-[#00D39033]', @@ -122,6 +123,9 @@ const RowOptionsMenu = ({ }; const UniformityTable = ({ refresh }: { refresh?: () => void }) => { + const isSuccess = useUniformityStore((s) => s.isSuccess); + const setIsSuccess = useUniformityStore((s) => s.setIsSuccess); + const { state: tableFilterState, setPage, @@ -145,6 +149,18 @@ const UniformityTable = ({ refresh }: { refresh?: () => void }) => { const [isDeleteLoading, setIsDeleteLoading] = useState(false); const singleDeleteModal = useModal(); + const successModal = useModal(); + + useEffect(() => { + if (isSuccess) { + successModal.openModal(); + } + }, [isSuccess, successModal]); + + const handleSuccessModalClose = () => { + successModal.closeModal(); + setIsSuccess(false); + }; const { data: uniformities, @@ -442,6 +458,18 @@ const UniformityTable = ({ refresh }: { refresh?: () => void }) => { onClick: singleDeleteHandler, }} /> + + ); diff --git a/src/components/pages/uniformity/form/UniformityResultForm.tsx b/src/components/pages/uniformity/form/UniformityResultForm.tsx index b7644de8..aa12409b 100644 --- a/src/components/pages/uniformity/form/UniformityResultForm.tsx +++ b/src/components/pages/uniformity/form/UniformityResultForm.tsx @@ -74,6 +74,7 @@ const UniformityResultForm = () => { (s) => s.setVerifyUniformityResult ); const uniformityFormData = useUniformityStore((s) => s.uniformityFormData); + const setIsSuccess = useUniformityStore((s) => s.setIsSuccess); const [isSubmitting, setIsSubmitting] = React.useState(false); @@ -110,8 +111,7 @@ const UniformityResultForm = () => { return; } - toast.success('Uniformity created successfully!'); - + setIsSuccess(true); setExpandedDrawerOpen(false); setIsNextStep(false); setUniformityStep('preview'); diff --git a/src/stores/uniformity/uniformity.store.ts b/src/stores/uniformity/uniformity.store.ts index 914f398e..97162836 100644 --- a/src/stores/uniformity/uniformity.store.ts +++ b/src/stores/uniformity/uniformity.store.ts @@ -16,11 +16,13 @@ type UniformityState = { uniformityStep: UniformityStep; verifyUniformityResult: VerifyUniformityResponse | null; uniformityFormData: UniformityFormData | null; + isSuccess: boolean; // Actions setUniformityStep: (step: UniformityStep) => void; setVerifyUniformityResult: (result: VerifyUniformityResponse | null) => void; setUniformityFormData: (data: UniformityFormData | null) => void; + setIsSuccess: (success: boolean) => void; resetUniformity: () => void; }; @@ -31,6 +33,7 @@ export const useUniformityStore = create()( uniformityStep: 'preview', verifyUniformityResult: null, uniformityFormData: null, + isSuccess: false, // Actions setUniformityStep: (step) => set({ uniformityStep: step }), @@ -40,11 +43,14 @@ export const useUniformityStore = create()( setUniformityFormData: (data) => set({ uniformityFormData: data }), + setIsSuccess: (success) => set({ isSuccess: success }), + resetUniformity: () => set({ uniformityStep: 'preview', verifyUniformityResult: null, uniformityFormData: null, + isSuccess: false, }), }), {