import React, {memo, useState} from 'react' 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 queryKeys from '../../../services/queryKeys'; const GeneralTab = memo(({name='Full Name', data, isCustom, productData, backendValues, setFieldsChanged}) =>{ const queryClient = useQueryClient() const [reqStatus, setReqStatus] = useState({error: null, message: ''}) const fieldData = {} Object.entries(data)?.forEach(([key, value]) => { // LOOP TO POPULATE FIELDDATA PROPERTIES WITH DATA OF EACH TAB fieldData[value?.name?.toLowerCase().replaceAll(" ", "_")] = '' }) backendValues.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 }) // console.log('fieldData', fieldData) const [fields, setFields] = useState(fieldData) 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], }) setTimeout(()=>{ setReqStatus({error: null, message: ''}) },3000) }, }) const handleSubmit = () => { const reqData = { token: localStorage.getItem('token'), // USER TOKEN uid: localStorage.getItem('uid'), // USER UID product_id: productData?.product_id, settings : { ...fields } } // console.log('formInfo', reqData) submitSettings.mutate(reqData) } if (isCustom === true){ return } return (
<> {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' ?