diff --git a/src/component/product/settingsTab/GeneralTab.jsx b/src/component/product/settingsTab/GeneralTab.jsx index a85744c..cb59ffd 100644 --- a/src/component/product/settingsTab/GeneralTab.jsx +++ b/src/component/product/settingsTab/GeneralTab.jsx @@ -1,158 +1,174 @@ import React, {memo, useEffect, useMemo, useState} from 'react' -import { useMutation, useQueryClient } from "@tanstack/react-query"; -import { pageSettings } from "../../../services/services"; +import {useMutation, useQueryClient} from "@tanstack/react-query"; +import {pageSettings} from "../../../services/services"; import SiteTemplateSelector from './SiteTemplateSelector'; import NoYesBooleanDropdown from './NoYesBooleanDropdown'; -import { IoMdArrowDropdown } from 'react-icons/io'; +import {IoMdArrowDropdown} from 'react-icons/io'; import queryKeys from '../../../services/queryKeys'; -const GeneralTab = memo(({name='Full Name', data, isCustom, productData, backendValues, setFieldsChanged}) =>{ +const GeneralTab = memo(({name = 'Full Name', data, isCustom, productData, backendValues, setFieldsChanged}) => { - const queryClient = useQueryClient() + const queryClient = useQueryClient() - const [reqStatus, setReqStatus] = useState({error: null, message: ''}) + const [reqStatus, setReqStatus] = useState({error: null, message: ''}) - - // const computeFieldData = useMemo(()=>{ - // const fieldData = {} - // Object.entries(data)?.forEach(([key, value]) => { // LOOP TO POPULATE FIELDDATA PROPERTIES WITH DATA OF EACH TAB - // fieldData[value?.name?.toLowerCase().replaceAll(" ", "_")] = '' - // }) - // backendValues?.data?.forEach(item => { //LOOPING THROUGH USER ALREADY ADDED DATA FROM BACKEND IF ANY AND UPDATING THE FIELDDATA OBJECT - // fieldData[item?.setting_key?.toLowerCase().replaceAll(" ", "_")] = item?.setting_value - // }) - // return fieldData - // },[backendValues.data]) - - const [fields, setFields] = useState({}) + // const computeFieldData = useMemo(()=>{ + // const fieldData = {} + // Object.entries(data)?.forEach(([key, value]) => { // LOOP TO POPULATE FIELDDATA PROPERTIES WITH DATA OF EACH TAB + // fieldData[value?.name?.toLowerCase().replaceAll(" ", "_")] = '' + // }) + // backendValues?.data?.forEach(item => { //LOOPING THROUGH USER ALREADY ADDED DATA FROM BACKEND IF ANY AND UPDATING THE FIELDDATA OBJECT + // fieldData[item?.setting_key?.toLowerCase().replaceAll(" ", "_")] = item?.setting_value + // }) + // return fieldData + // },[backendValues.data]) - useEffect(()=>{ - const fieldData = {} - Object.entries(data)?.forEach(([key, value]) => { // LOOP TO POPULATE FIELDDATA PROPERTIES WITH DATA OF EACH TAB - fieldData[value?.name?.toLowerCase().replaceAll(" ", "_")] = '' - }) - backendValues?.data?.forEach(item => { //LOOPING THROUGH USER ALREADY ADDED DATA FROM BACKEND IF ANY AND UPDATING THE FIELDDATA OBJECT - fieldData[item?.setting_key?.toLowerCase().replaceAll(" ", "_")] = item?.setting_value - }) - setFields(fieldData) - },[backendValues.data]) - - const handleChange = ({target:{name, value}}) => { - setFields(prev => ({...prev, [name]:value})) - setFieldsChanged(true) - } - - const submitSettings = useMutation({ - mutationFn: (fields) => { - return pageSettings(fields) - }, - onSuccess: (res) => { - if(res?.data?.resultCode != '0'){ - return setReqStatus({error: true, message: 'Unable to complete, try again later'}) - } - setFieldsChanged(false) - setReqStatus({error: false, message: 'Completed successfully'}) - }, - onError: (err) => { - setReqStatus({error: true, message: 'Unable to complete, try again later'}) - }, - onSettled: () => { - queryClient.refetchQueries({ // refetches productProvision API call - queryKey: [...queryKeys.settingsData], + + const [fields, setFields] = useState({}) + + useEffect(() => { + const fieldData = {} + Object.entries(data)?.forEach(([key, value]) => { // LOOP TO POPULATE FIELDDATA PROPERTIES WITH DATA OF EACH TAB + fieldData[value?.name?.toLowerCase().replaceAll(" ", "_")] = '' }) - setTimeout(()=>{ - setReqStatus({error: null, message: ''}) - },3000) - }, - }) + backendValues?.data?.forEach(item => { //LOOPING THROUGH USER ALREADY ADDED DATA FROM BACKEND IF ANY AND UPDATING THE FIELDDATA OBJECT + fieldData[item?.setting_key?.toLowerCase().replaceAll(" ", "_")] = item?.setting_value + }) + setFields(fieldData) + }, [backendValues.data]) - const handleSubmit = () => { - const reqData = { - token: localStorage.getItem('token'), // USER TOKEN - uid: localStorage.getItem('uid'), // USER UID - product_id: productData?.product_id, - settings : { - ...fields - } + const handleChange = ({target: {name, value}}) => { + setFields(prev => ({...prev, [name]: value})) + setFieldsChanged(true) } - submitSettings.mutate(reqData) - } - return ( - <> - {backendValues?.isFetching || !backendValues?.data ? - <> -
Loading...
-{backendValues?.error.message}
-