import { type FC, useState } from 'react' // import { useTranslation } from 'react-i18next' import Button from '../../components/Button' import { useFormik } from 'formik' import { type CategoryLearningType, type CreateLearningType } from './hooks/useLearningData' import * as Yup from 'yup' import { useCreateLearning, useGetCategory } from './hooks/useLearningData' // import { useSingleUpload } from '../service/hooks/useServiceData' import { TickCircle } from 'iconsax-react' import Input from '../../components/Input' import Select from '../../components/Select' import Textarea from '../../components/Textarea' import DefaultTableSkeleton from '../../components/DefaultTableSkeleton' import CreateLearningSidebar from './components/CreateLearningSidebar' // import { ErrorType } from '../../helpers/types' // Define ErrorType inline since we're using static data type ErrorType = { response?: { data?: { error: { message: string[]; }; }; }; }; import { toast } from 'react-toastify' import { useNavigate } from 'react-router-dom' import { Paths } from '../../config/Paths' const CreateLearning: FC = () => { const navigate = useNavigate() // const { t } = useTranslation('global') const t = (key: string) => key; // Mock translation function // const singleUpload = useSingleUpload() // Mock upload hook const singleUpload = { mutateAsync: (formData: FormData) => { return Promise.resolve({ data: { url: "/src/assets/images/new_order.png" // Mock URL } }); }, isPending: false }; const createLearning = useCreateLearning() const getCategory = useGetCategory() const [videoFile, setVideoFile] = useState() const [coverFile, setCoverFile] = useState() const formik = useFormik({ initialValues: { title: '', description: '', coverUrl: '', videoUrl: '', videoDuration: '', categoryId: '' }, validationSchema: Yup.object().shape({ title: Yup.string().required(t('errors.required')), description: Yup.string().required(t('errors.required')), videoDuration: Yup.string().required(t('errors.required')), categoryId: Yup.string().required(t('errors.required')) }), onSubmit: async (values) => { return /* if (videoFile && coverFile) { const formData = new FormData() formData.append('file', videoFile) await singleUpload.mutateAsync(formData, { onSuccess: (data) => { values.videoUrl = data?.data?.url }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) const formDataCover = new FormData() formDataCover.append('file', coverFile) await singleUpload.mutateAsync(formDataCover, { onSuccess: (data) => { values.coverUrl = data?.data?.url }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) createLearning.mutate(values, { onSuccess: () => { toast.success('با موفقیت ثبت شد') navigate(Paths.learning.list) }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) } else { toast.error('لطفا ویدیو و کاور را انتخاب کنید') } */ } }) return (
آموزش جدید
{ getCategory.isPending ? :
توضیحات