diff --git a/src/Hooks/useNavigateOnSuccess.ts b/src/Hooks/useNavigateOnSuccess.ts index 2b012c3..e44636c 100644 --- a/src/Hooks/useNavigateOnSuccess.ts +++ b/src/Hooks/useNavigateOnSuccess.ts @@ -3,7 +3,7 @@ import { useNavigate } from 'react-router-dom' function useNavigateOnSuccess(isSuccess :boolean , to_path:string , callbackAfterSuccess?:any) { - + const navigate = useNavigate() useEffect(()=>{ diff --git a/src/Layout/Dashboard/ViewPage.tsx b/src/Layout/Dashboard/ViewPage.tsx index 8158ec3..3c84747 100644 --- a/src/Layout/Dashboard/ViewPage.tsx +++ b/src/Layout/Dashboard/ViewPage.tsx @@ -18,17 +18,14 @@ type TViewPage ={ const ViewPage: React.FC= ({children,getInitialValues, getValidationSchema,handleSubmit,IsloadingButton})=> { - const {objectToEdit} = usePageState() + const {objectToEdit,setObjectToEdit} = usePageState() const {t} = useTranslation(); const navigate = useNavigate(); // console.log(BarStatus); - - const location = useLocation(); - - const navigateToParent = () => { navigate(-1) + setObjectToEdit({}) }; return ( @@ -42,6 +39,7 @@ const ViewPage: React.FC= ({children,getInitialValues, getValidation { { useNavigateOnSuccess(isSuccess, '/Categories') - + const ViewProps = { getInitialValues, getValidationSchema, handleSubmit,IsloadingButton }; diff --git a/src/Pages/Categories/View/EditForm.tsx b/src/Pages/Categories/View/EditForm.tsx index 6a090a4..7f58b6c 100644 --- a/src/Pages/Categories/View/EditForm.tsx +++ b/src/Pages/Categories/View/EditForm.tsx @@ -8,7 +8,7 @@ import useFormatToSelect from '../../../Hooks/useFormatToSelect'; function Form() { const {data:Restaurant} = useGetRestaurant() const SelectRestaurantData = useFormatToSelect(Restaurant?.data) - + return ( diff --git a/src/Pages/Meal/View/EditPage.tsx b/src/Pages/Meal/View/EditPage.tsx index 61c6d4e..5ddc3ff 100644 --- a/src/Pages/Meal/View/EditPage.tsx +++ b/src/Pages/Meal/View/EditPage.tsx @@ -11,6 +11,7 @@ import { useGetMeal, useUpdateMeal } from '../../../api/Meal'; import useNavigateOnSuccess from '../../../Hooks/useNavigateOnSuccess'; import Form from './EditForm'; import { useParams } from 'react-router-dom'; +import { isItArrayOfString } from '../../../utils/Array/isItArrayOfString'; const EditPage = () => { const { setObjectToEdit, objectToEdit } = usePageState() @@ -20,12 +21,20 @@ const EditPage = () => { show:id }) const { mutate, isSuccess,isLoading:IsloadingButton } = useUpdateMeal() + + + const handleSubmit = (values: any) => { - - if( typeof values?.image === "string" ){ - delete values["video"] + const data_to_send = {...values} + + if( typeof values?.video === "string" ){ + delete data_to_send["video"] } - mutate({...values, _method : "put"}); + if(isItArrayOfString(values?.images)){ + delete data_to_send["images"] + } + + mutate(data_to_send); } diff --git a/src/api/helper/useAxios.ts b/src/api/helper/useAxios.ts index bf2b6c6..2929e9a 100644 --- a/src/api/helper/useAxios.ts +++ b/src/api/helper/useAxios.ts @@ -8,11 +8,13 @@ import { useNavigate } from "react-router-dom"; import useAuthState from "../../lib/statemangment/AuthState"; import { useValidationState } from "../../Components/ValidationField/utils/ValidationState"; import { AxiosQueryEnum, AxiosStatusEnum } from "../../enums/Axios"; +import { usePageState } from "../../lib/statemangment/LayoutPagestate"; function useAxios() { const { isAuthenticated, token } = useAuthState(); const { setValidation } = useValidationState((state) => state); + const {setObjectToEdit} = usePageState() const [t] = useTranslation(); const queryClient = useQueryClient(); @@ -44,7 +46,9 @@ function useAxios() { queryClient.invalidateQueries(key); toast.success(ResponseMessage); setValidation([{}]); + setObjectToEdit({}) } + return response; }, function (error) { diff --git a/src/utils/Array/Equal.ts b/src/utils/Array/Equal.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/utils/Array/isItArrayOfString.ts b/src/utils/Array/isItArrayOfString.ts new file mode 100644 index 0000000..caa7aaf --- /dev/null +++ b/src/utils/Array/isItArrayOfString.ts @@ -0,0 +1,12 @@ +export const isItArrayOfString = (data:any[])=>{ + if(data?.length < 1){ + return true + } + + const filteredArray = data?.filter((item:any)=>{ return typeof item !== "string"}) + if(filteredArray?.length < 1){ + return true + } + return false; + + } \ No newline at end of file