import { mdiChartTimelineVariant, mdiEye } from '@mdi/js' import Head from 'next/head' import React, { ReactElement, useEffect, useState } from 'react' import dayjs from "dayjs"; import CardBox from '../../components/CardBox' import LayoutAuthenticated from '../../layouts/Authenticated' import SectionMain from '../../components/SectionMain' import SectionTitleLineWithButton from '../../components/SectionTitleLineWithButton' import { getPageTitle } from '../../config' import { Field, Form, Formik } from 'formik' import FormField from '../../components/FormField' import BaseDivider from '../../components/BaseDivider' import BaseButtons from '../../components/BaseButtons' import BaseButton from '../../components/BaseButton' import {RichTextField} from "../../components/RichTextField"; import { SwitchField } from '../../components/SwitchField' import { update, fetch } from '../../stores/businesses/businessesSlice' import { useAppDispatch, useAppSelector } from '../../stores/hooks' import { useRouter } from 'next/router' const EditBusinesses = () => { const router = useRouter() const dispatch = useAppDispatch() const { currentUser } = useAppSelector((state) => state.auth); const initVals = { owner_user: null, name: '', slug: '', description: '', phone: '', email: '', website: '', address: '', city: '', state: '', zip: '', lat: '', lng: '', hours_json: '', availability_status: '', is_active: false, reliability_score: '', reliability_breakdown_json: '', response_time_median_minutes: '', tenant_key: '', created_at_ts: new Date(), updated_at_ts: new Date(), } const [initialValues, setInitialValues] = useState(initVals) const { businesses } = useAppSelector((state) => state.businesses) const { businessesId } = router.query const isVBO = currentUser?.app_role?.name === 'Verified Business Owner'; useEffect(() => { if (businessesId) { dispatch(fetch({ id: businessesId })) } }, [businessesId, dispatch]) useEffect(() => { if (typeof businesses === 'object' && businesses !== null) { const newInitialVal = {...initVals}; Object.keys(initVals).forEach(el => { if (businesses[el] !== undefined) { newInitialVal[el] = (businesses)[el] } }) setInitialValues(newInitialVal); } }, [businesses]) const handleSubmit = async (data) => { await dispatch(update({ id: businessesId, data })) await router.push('/businesses/businesses-list') } return ( <>