import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '../../components/Input' import Button from '../../components/Button' import SwitchComponent from '../../components/Switch' import { TickCircle, Link2 } from 'iconsax-react' import DatePickerComponent from '../../components/DatePicker' import { useFormik } from 'formik' import { AdsDisplayLocation, CreateAdsType } from './types/AdsTypes' import * as Yup from 'yup' import UploadBoxDraggble from '../../components/UploadBoxDraggble' import CheckBoxComponent from '../../components/CheckBoxComponent' import { useSingleUpload } from '../service/hooks/useServiceData' import { useCreateAds } from './hooks/useAdsData' import { ErrorType } from '../../helpers/types' import { toast } from 'react-toastify' import { clx } from '../../helpers/utils' import { useNavigate } from 'react-router-dom' import { Pages } from '../../config/Pages' import moment from 'moment-jalaali' const CreateAd: FC = () => { const navigate = useNavigate() const { t } = useTranslation('global') const [file, setFile] = useState() const singleUpload = useSingleUpload() const createAds = useCreateAds() const formik = useFormik({ initialValues: { displayLocation: '', endDate: '', imageUrl: '', isActive: true, link: '', serviceId: undefined, startDate: '', title: '' }, validationSchema: Yup.object().shape({ title: Yup.string().required(t('errors.required')), displayLocation: Yup.string().required(t('errors.required')), endDate: Yup.string().required(t('errors.required')), link: Yup.string().required(t('errors.required')), startDate: Yup.string().required(t('errors.required')) }), onSubmit: async (values) => { if (file) { const formData = new FormData() formData.append('file', file) await singleUpload.mutateAsync(formData, { onSuccess: (data) => { values.imageUrl = data?.data?.url }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) createAds.mutate(values, { onSuccess: () => { toast.success(t('success')) navigate(Pages.ads.list) }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) } else { toast.error(t('ads.file_error')) } } }) return (
{t('ads.new_ads')}
formik.setFieldValue('startDate', moment(value, 'jYYYY-jMM-jDD').format('YYYY-MM-DD'))} placeholder='' error_text={formik.touched.startDate && formik.errors.startDate ? formik.errors.startDate : ''} /> formik.setFieldValue('endDate', moment(value, 'jYYYY-jMM-jDD').format('YYYY-MM-DD'))} placeholder='' error_text={formik.touched.endDate && formik.errors.endDate ? formik.errors.endDate : ''} />

وضعیت تبلیغ

{t('ads.deactive')}
formik.setFieldValue('isActive', value)} />

{t('ads.location')}

{Object.values(AdsDisplayLocation).map((location) => (
formik.setFieldValue('displayLocation', location)} />
{t(`ads.${location}`)}
))}
setFile(value[0])} />
) } export default CreateAd