import { type FC } from 'react' import type { FormikProps } from 'formik' import { Magicpen } from 'iconsax-react' import Input from '@/components/Input' import Select from '@/components/Select' import Textarea from '@/components/Textarea' import Button from '@/components/Button' import { extractErrorMessage } from '@/config/func' import { toast } from 'react-toastify' import type { CreateFoodType } from '../types/Types' import { useGenerateFoodDescription } from '../hooks/useFoodData' type BasicInfoSectionProps = { formik: FormikProps categories: Array<{ label: string; value: string }> } const parseDescription = (data: { answer?: string } | undefined): string => { return data?.answer?.trim() || '' } const BasicInfoSection: FC = ({ formik, categories }) => { const { mutate: generateDescription, isPending: isGeneratingDesc } = useGenerateFoodDescription() const handleGenerateDescription = () => { const foodName = formik.values.title.trim() if (!foodName) { toast.error('لطفاً ابتدا نام کامل غذا را وارد کنید') return } generateDescription( { foodName }, { onSuccess: (response) => { const description = parseDescription(response.data) if (!description) { toast.error('توضیحی از هوش مصنوعی دریافت نشد') return } formik.setFieldValue('desc', description) toast.success('توضیحات با موفقیت تولید شد') }, onError: (error) => { toast.error(extractErrorMessage(error)) }, }, ) } return ( <>
formik.setFieldValue('price', Number(e.target.value))} error_text={formik.touched.price && formik.errors.price ? formik.errors.price : ''} /> formik.setFieldValue('discount', Number(e.target.value))} error_text={formik.touched.discount && formik.errors.discount ? formik.errors.discount : ''} /> formik.setFieldValue('prepareTime', Number(e.target.value))} error_text={formik.touched.prepareTime && formik.errors.prepareTime ? formik.errors.prepareTime : ''} /> formik.setFieldValue('dailyStock', Number(e.target.value))} error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''} /> formik.setFieldValue('availableStock', Number(e.target.value))} error_text={formik.touched.availableStock && formik.errors.availableStock ? formik.errors.availableStock : ''} />
توضیحات غذا