mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
feat(FE-316): Show success modal after creating uniformity
This commit is contained in:
@@ -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<string, string> = {
|
||||
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,
|
||||
}}
|
||||
/>
|
||||
|
||||
<ConfirmationModal
|
||||
ref={successModal.ref}
|
||||
type='success'
|
||||
text='Uniformity berhasil dibuat!'
|
||||
closeOnBackdrop={false}
|
||||
primaryButton={{
|
||||
text: 'OK',
|
||||
color: 'success',
|
||||
onClick: handleSuccessModalClose,
|
||||
}}
|
||||
/>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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<UniformityState>()(
|
||||
uniformityStep: 'preview',
|
||||
verifyUniformityResult: null,
|
||||
uniformityFormData: null,
|
||||
isSuccess: false,
|
||||
|
||||
// Actions
|
||||
setUniformityStep: (step) => set({ uniformityStep: step }),
|
||||
@@ -40,11 +43,14 @@ export const useUniformityStore = create<UniformityState>()(
|
||||
|
||||
setUniformityFormData: (data) => set({ uniformityFormData: data }),
|
||||
|
||||
setIsSuccess: (success) => set({ isSuccess: success }),
|
||||
|
||||
resetUniformity: () =>
|
||||
set({
|
||||
uniformityStep: 'preview',
|
||||
verifyUniformityResult: null,
|
||||
uniformityFormData: null,
|
||||
isSuccess: false,
|
||||
}),
|
||||
}),
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user