criticisms
This commit is contained in:
@@ -1,24 +1,23 @@
|
|||||||
import { type FC } from 'react'
|
import { useState, type FC } from 'react'
|
||||||
import Input from '../../components/Input'
|
import Input from '../../components/Input'
|
||||||
import Textarea from '../../components/Textarea'
|
import Textarea from '../../components/Textarea'
|
||||||
import UploadBox from '../../components/UploadBox'
|
import UploadBox from '../../components/UploadBox'
|
||||||
import Button from '../../components/Button'
|
import Button from '../../components/Button'
|
||||||
import { TickCircle, TickSquare } from 'iconsax-react'
|
import { TickCircle, TickSquare } from 'iconsax-react'
|
||||||
// import { useMultiUpload } from '../ticket/hooks/useTicketData'
|
|
||||||
import { useFormik } from 'formik'
|
import { useFormik } from 'formik'
|
||||||
import type { CreateCriticismsTypes } from './types/CriticismsTypes'
|
import type { CreateCriticismsTypes } from './types/CriticismsTypes'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { toast } from '../../shared/toast'
|
import { toast } from '../../shared/toast'
|
||||||
// import type { ErrorType } from '../../helpers/types'
|
import type { ErrorType } from '../../helpers/types'
|
||||||
// import { useCreateCriticisms } from './hooks/useCriticismsData'
|
import { useCreateCriticisms } from './hooks/useCriticismsData'
|
||||||
import { t } from '../../locale'
|
import { t } from '../../locale'
|
||||||
|
import { useMultiUpload } from '../uploader/hooks/useUploader'
|
||||||
|
|
||||||
const AddCriticisms: FC = () => {
|
const AddCriticisms: FC = () => {
|
||||||
|
|
||||||
// const [files, setFiles] = useState<File[]>([])
|
const [files, setFiles] = useState<File[]>([])
|
||||||
// const [percent, setPercent] = useState<number>(0)
|
const multiUpload = useMultiUpload()
|
||||||
// const multiUpload = useMultiUpload(setPercent)
|
const createCriticisms = useCreateCriticisms()
|
||||||
// const createCriticisms = useCreateCriticisms()
|
|
||||||
|
|
||||||
const formik = useFormik<CreateCriticismsTypes>({
|
const formik = useFormik<CreateCriticismsTypes>({
|
||||||
initialValues: {
|
initialValues: {
|
||||||
@@ -31,41 +30,33 @@ const AddCriticisms: FC = () => {
|
|||||||
content: Yup.string().required(t('errors.required')),
|
content: Yup.string().required(t('errors.required')),
|
||||||
}),
|
}),
|
||||||
onSubmit: async (values: CreateCriticismsTypes) => {
|
onSubmit: async (values: CreateCriticismsTypes) => {
|
||||||
// کامنت شده - بخش ارتباط با سرور
|
|
||||||
console.log('Form submitted:', values)
|
|
||||||
toast(t('success'), 'success')
|
|
||||||
formik.resetForm()
|
|
||||||
|
|
||||||
// if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
// const images = new FormData()
|
await multiUpload.mutateAsync(files, {
|
||||||
// files.forEach(file => {
|
onSuccess: async (data) => {
|
||||||
// images.append('files', file)
|
values.files = await data.data.map((item: { url: string }) => item?.url)
|
||||||
// })
|
},
|
||||||
// await multiUpload.mutateAsync(images, {
|
onError: (error: ErrorType) => {
|
||||||
// onSuccess: async (data) => {
|
toast(error.response?.data?.error?.message[0], 'error')
|
||||||
// values.files = await data.data.map((item: { url: string }) => item?.url)
|
}
|
||||||
// },
|
})
|
||||||
// onError: (error: ErrorType) => {
|
|
||||||
// toast(error.response?.data?.error?.message[0], 'error')
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
|
|
||||||
// } else {
|
} else {
|
||||||
// delete values.files
|
delete values.files
|
||||||
// }
|
}
|
||||||
|
|
||||||
// createCriticisms.mutate(values, {
|
createCriticisms.mutate(values, {
|
||||||
// onSuccess: () => {
|
onSuccess: () => {
|
||||||
// toast(t('success'), 'success')
|
toast(t('success'), 'success')
|
||||||
// formik.resetForm()
|
formik.resetForm()
|
||||||
// setTimeout(() => {
|
setTimeout(() => {
|
||||||
// window.location.reload()
|
window.location.reload()
|
||||||
// }, 1000);
|
}, 1000);
|
||||||
// },
|
},
|
||||||
// onError: (error: ErrorType) => {
|
onError: (error: ErrorType) => {
|
||||||
// toast(error.response?.data?.error?.message[0], 'error')
|
toast(error.response?.data?.error?.message[0], 'error')
|
||||||
// }
|
}
|
||||||
// })
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -107,7 +98,7 @@ const AddCriticisms: FC = () => {
|
|||||||
<UploadBox
|
<UploadBox
|
||||||
label={t('attach')}
|
label={t('attach')}
|
||||||
isMultiple
|
isMultiple
|
||||||
onChange={() => { }}
|
onChange={setFiles}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -116,8 +107,7 @@ const AddCriticisms: FC = () => {
|
|||||||
<Button
|
<Button
|
||||||
className='xl:max-w-[100px]'
|
className='xl:max-w-[100px]'
|
||||||
onClick={() => formik.handleSubmit()}
|
onClick={() => formik.handleSubmit()}
|
||||||
isLoading={false}
|
isLoading={createCriticisms.isPending}
|
||||||
percentage={0}
|
|
||||||
>
|
>
|
||||||
<div className='flex gap-2 items-center'>
|
<div className='flex gap-2 items-center'>
|
||||||
<TickCircle size={20} color='black' />
|
<TickCircle size={20} color='black' />
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ import axios from "../../../config/axios";
|
|||||||
import { type CreateCriticismsTypes } from "../types/CriticismsTypes";
|
import { type CreateCriticismsTypes } from "../types/CriticismsTypes";
|
||||||
|
|
||||||
export const createCriticisms = async (params: CreateCriticismsTypes) => {
|
export const createCriticisms = async (params: CreateCriticismsTypes) => {
|
||||||
const { data } = await axios.post(`/criticisms`, params);
|
const { data } = await axios.post(`/public/criticisms`, params);
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user