import { type FC } from 'react' import { useParams } from 'react-router-dom' import { useGetFaqDetail, useUpdateFaq } from './hooks/useSettingData' import { useFormik } from 'formik' import { type CreateFaqType } from './types/Types' import { FaqPageEnum } from './enum/Enum' import * as Yup from 'yup' import { useNavigate } from 'react-router-dom' import Input from '../../components/Input' import Textarea from '../../components/Textarea' import Select from '../../components/Select' import Button from '../../components/Button' import { TickCircle } from 'iconsax-react' import { toast } from 'react-toastify' import { extractErrorMessage } from '@/helpers/utils' import { Pages } from '@/config/Pages' import PageLoading from '../../components/PageLoading' import Error from '../../components/Error' const FaqUpdate: FC = () => { const navigate = useNavigate() const { id } = useParams<{ id: string }>() const { data: faqDetail, isLoading: faqDetailLoading, error: faqDetailError } = useGetFaqDetail(id!) const updateFaq = useUpdateFaq() const formik = useFormik({ initialValues: { question: faqDetail?.results?.faq?.question || '', answer: faqDetail?.results?.faq?.answer || '', page: faqDetail?.results?.faq?.page as FaqPageEnum || FaqPageEnum.Faq, }, enableReinitialize: true, validationSchema: Yup.object({ question: Yup.string().required('سوال الزامی است'), answer: Yup.string().required('جواب الزامی است'), page: Yup.string().required('صفحه الزامی است'), }), onSubmit: (values) => { updateFaq.mutate({ id: id!, params: values }, { onSuccess: () => { toast.success('سوال متداول با موفقیت به‌روزرسانی شد') navigate(Pages.pages.faq) }, onError: (error) => { toast.error(extractErrorMessage(error)) } }) } }) if (faqDetailLoading) { return (
) } if (faqDetailError) { return (
) } const pageOptions = [ { value: FaqPageEnum.Faq, label: 'سوالات متداول' }, { value: FaqPageEnum.Seller, label: 'فروشندگان' }, { value: FaqPageEnum.ProductTag, label: 'برچسب محصول' }, { value: FaqPageEnum.ProductDescription, label: 'توضیحات محصول' }, { value: FaqPageEnum.ProductBenefit, label: 'مزایای محصول' }, { value: FaqPageEnum.ShipmentProcess, label: 'فرآیند ارسال' }, { value: FaqPageEnum.Policy, label: 'سیاست‌ها' }, ] return (

ویرایش سوال متداول

{/* اطلاعات اصلی */}

اطلاعات اصلی