From dace896031dd775e20ab93aa2fd922f337653d3d Mon Sep 17 00:00:00 2001 From: abdelkrim agouzal Date: Tue, 17 Dec 2024 21:00:49 +0100 Subject: [PATCH 1/2] Resolve the state issue : when editing a job we get the last job edited the state is not updated --- src/components/jobs/JobForm.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/components/jobs/JobForm.tsx b/src/components/jobs/JobForm.tsx index d33a351..a602006 100644 --- a/src/components/jobs/JobForm.tsx +++ b/src/components/jobs/JobForm.tsx @@ -3,6 +3,8 @@ */ import { useSelect, useDispatch } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; +import { useParams } from 'react-router-dom'; +import { useEffect } from 'react'; /** * Internal dependencies. @@ -21,6 +23,10 @@ type Props = { export default function JobForm({ job }: Props) { const dispatch = useDispatch(); + const { id } = useParams(); + const {invalidateResolutionForStoreSelector } = useDispatch(jobStore); + + const jobTypes: Array = useSelect( (select) => select(jobStore).getJobTypes(), [] @@ -36,6 +42,18 @@ export default function JobForm({ job }: Props) { [] ); + const { id } = useParams(); + const {invalidateResolutionForStoreSelector } = useDispatch(jobStore); + + useEffect(() => { + + if (parseInt(id) !== form.id) { + + invalidateResolutionForStoreSelector('getJobDetail'); + } + + }, [id,invalidateResolutionForStoreSelector]); + const loadingJobs: boolean = useSelect( (select) => select(jobStore).getLoadingJobs(), [] From 246916fd667d3f71641d90d8d3e42203559ff7f0 Mon Sep 17 00:00:00 2001 From: Maniruzzaman Akash Date: Fri, 20 Dec 2024 09:29:44 +0600 Subject: [PATCH 2/2] Fixed formats and error --- src/components/jobs/JobForm.tsx | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/components/jobs/JobForm.tsx b/src/components/jobs/JobForm.tsx index a602006..3d75436 100644 --- a/src/components/jobs/JobForm.tsx +++ b/src/components/jobs/JobForm.tsx @@ -1,10 +1,10 @@ /** * External dependencies. */ +import { useEffect } from '@wordpress/element'; +import { useParams } from 'react-router-dom'; import { useSelect, useDispatch } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; -import { useParams } from 'react-router-dom'; -import { useEffect } from 'react'; /** * Internal dependencies. @@ -24,8 +24,7 @@ type Props = { export default function JobForm({ job }: Props) { const dispatch = useDispatch(); const { id } = useParams(); - const {invalidateResolutionForStoreSelector } = useDispatch(jobStore); - + const { invalidateResolutionForStoreSelector } = useDispatch(jobStore); const jobTypes: Array = useSelect( (select) => select(jobStore).getJobTypes(), @@ -42,17 +41,11 @@ export default function JobForm({ job }: Props) { [] ); - const { id } = useParams(); - const {invalidateResolutionForStoreSelector } = useDispatch(jobStore); - - useEffect(() => { - - if (parseInt(id) !== form.id) { - - invalidateResolutionForStoreSelector('getJobDetail'); - } - - }, [id,invalidateResolutionForStoreSelector]); + useEffect(() => { + if (parseInt(id + '') !== form.id) { + invalidateResolutionForStoreSelector('getJobDetail'); + } + }, [id, invalidateResolutionForStoreSelector]); const loadingJobs: boolean = useSelect( (select) => select(jobStore).getLoadingJobs(),