formbuilder

This commit is contained in:
hamid zarghami
2026-01-29 10:24:41 +03:30
parent 2234c44202
commit f9899f108c
6 changed files with 48 additions and 30 deletions
+14 -10
View File
@@ -1,37 +1,39 @@
import { useFormik } from 'formik'
import { useEffect, type FC } from 'react'
import type { CreateAttributeType } from '../types/Types'
import { FieldTypeEnum } from '../enum/Enum'
import type { CreateFieldType } from './types/Types'
import { FieldTypeEnum } from './enum/Enum'
import * as Yup from 'yup'
import Button from '@/components/Button'
import { AddSquare } from 'iconsax-react'
import Input from '@/components/Input'
import Select from '@/components/Select'
import SwitchComponent from '@/components/Switch'
import { useGetAttributeDetail, useUpdateAttribute } from '../hooks/useProductData'
import { useGetFieldDetail, useUpdateField } from './hooks/useFormBuilderData'
import { useNavigate, useParams } from 'react-router-dom'
import { toast } from 'react-toastify'
import { extractErrorMessage } from '@/config/func'
const UpdateAttribute: FC = () => {
const FormBuilderUpdate: FC = () => {
const { id } = useParams()
const navigate = useNavigate()
const { data, refetch } = useGetAttributeDetail(Number(id))
const { mutate: createAttribute, isPending } = useUpdateAttribute()
const { data, refetch } = useGetFieldDetail(Number(id))
const { mutate: createField, isPending } = useUpdateField()
const formik = useFormik<CreateAttributeType>({
const formik = useFormik<CreateFieldType>({
initialValues: {
name: '',
isRequired: true,
order: 1,
type: FieldTypeEnum.text,
entityType: 'product',
multiple: false
},
validationSchema: Yup.object({
name: Yup.string().required('این فیلد اجباری می باشد')
}),
onSubmit: (values) => {
createAttribute({ id: Number(id), params: values }, {
createField({ id: Number(id), params: values }, {
onSuccess: () => {
toast.success('با موفقیت ذخیره شد')
refetch()
@@ -51,7 +53,9 @@ const UpdateAttribute: FC = () => {
isRequired: data?.data?.isRequired,
name: data?.data?.name,
order: data?.data?.order,
type: data?.data?.type
type: data?.data?.type,
entityType: data?.data?.entityType,
multiple: data?.data?.multiple
})
}
@@ -140,4 +144,4 @@ const UpdateAttribute: FC = () => {
)
}
export default UpdateAttribute
export default FormBuilderUpdate