From c951f925d8ccb355690763bb5ac34e0a853db978 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Wed, 3 Sep 2025 21:00:28 -0400 Subject: [PATCH] panel data key --- .../product/settingsTab/GeneralTab.jsx | 290 +++++++++--------- src/component/start/Start.jsx | 8 +- 2 files changed, 157 insertions(+), 141 deletions(-) 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?.isError ? -
-
-

{backendValues?.error.message}

-
-
- : - <> - {isCustom === 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], + }) + setTimeout(() => { + setReqStatus({error: null, message: ''}) + }, 3000) + }, + }) -
-
- <> - {Object.entries(data)?.map(([key, value]) => { - let fieldName = value.name.toLowerCase().replaceAll(" ", "_") - let fieldValue = fields[value.name.toLowerCase().replaceAll(" ", "_")] - return ( -
- - {value.controls == 'TEXT' ? - - :value.controls == 'TEXTAREA' ? -