mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-25 07:45:47 +00:00
feat(FE): Add success modal and state management for ProjectFlock
This commit is contained in:
@@ -52,7 +52,7 @@ import Table from '@/components/Table';
|
||||
import { ColumnDef } from '@tanstack/react-table';
|
||||
import StatusBadge from '@/components/helper/StatusBadge';
|
||||
import { getUniqueFormikErrors } from '@/lib/formik-helper';
|
||||
import ProjectFlockConfirmationModal from '../ProjectFlockConfirmationModal';
|
||||
import { useProjectFlockStore } from '@/stores/project-flock/project-flock.store';
|
||||
|
||||
interface ProjectFlockFormProps {
|
||||
formType?: 'add' | 'edit' | 'detail';
|
||||
@@ -213,6 +213,10 @@ const ProjectFlockForm = ({
|
||||
}: ProjectFlockFormProps) => {
|
||||
// State
|
||||
const router = useRouter();
|
||||
const setIsSuccess = useProjectFlockStore((s) => s.setIsSuccess);
|
||||
const setCreatedProjectFlock = useProjectFlockStore(
|
||||
(s) => s.setCreatedProjectFlock
|
||||
);
|
||||
|
||||
const [formStep, setFormStep] = useState<'form' | 'confirmation'>('form');
|
||||
|
||||
@@ -239,7 +243,6 @@ const ProjectFlockForm = ({
|
||||
const subscribeValidate = useUiStore((s) => s.subscribeValidate);
|
||||
const setIsValid = useUiStore((s) => s.setIsValid);
|
||||
|
||||
const successModal = useModal();
|
||||
const deleteModal = useModal();
|
||||
|
||||
const [isDeleteLoading, setIsDeleteLoading] = useState(false);
|
||||
@@ -262,6 +265,8 @@ const ProjectFlockForm = ({
|
||||
loadMore: loadMoreFlock,
|
||||
} = useSelect(FlockApi.basePath, 'id', 'name', '', {
|
||||
project_category: selectedCategory,
|
||||
location_id: selectedLocation,
|
||||
area_id: selectedArea,
|
||||
});
|
||||
|
||||
const {
|
||||
@@ -431,7 +436,9 @@ const ProjectFlockForm = ({
|
||||
if (isResponseSuccess(createProjectFlockRes)) {
|
||||
toast.success(createProjectFlockRes?.message as string);
|
||||
handleReset();
|
||||
successModal.openModal();
|
||||
setCreatedProjectFlock(createProjectFlockRes?.data ?? null);
|
||||
setIsSuccess(true);
|
||||
router.push('/production/project-flock');
|
||||
}
|
||||
if (isResponseError(createProjectFlockRes)) {
|
||||
setProjectFlockFormErrorMessage(createProjectFlockRes?.message as string);
|
||||
@@ -449,7 +456,9 @@ const ProjectFlockForm = ({
|
||||
if (isResponseSuccess(updateProjectFlockRes)) {
|
||||
toast.success(updateProjectFlockRes?.message as string);
|
||||
handleReset();
|
||||
successModal.openModal();
|
||||
setCreatedProjectFlock(updateProjectFlockRes?.data ?? null);
|
||||
setIsSuccess(true);
|
||||
router.push('/production/project-flock');
|
||||
}
|
||||
if (isResponseError(updateProjectFlockRes)) {
|
||||
setProjectFlockFormErrorMessage(updateProjectFlockRes?.message as string);
|
||||
@@ -1388,19 +1397,6 @@ const ProjectFlockForm = ({
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<ProjectFlockConfirmationModal
|
||||
ref={successModal.ref}
|
||||
type='success'
|
||||
text='Data Berhasil Ditambahkan'
|
||||
subtitleText='Data project flock telah berhasil disimpan.'
|
||||
projectFlockForm={formikLastValues}
|
||||
onClose={() => {
|
||||
router.push('/production/project-flock');
|
||||
setFormikLastValues(undefined);
|
||||
}}
|
||||
secondaryButton={undefined}
|
||||
/>
|
||||
|
||||
<ConfirmationModal
|
||||
ref={deleteModal.ref}
|
||||
type='error'
|
||||
|
||||
Reference in New Issue
Block a user