'use client'; import { useRouter, useParams } from 'next/navigation'; import { useQuery, useMutation } from 'react-query'; import { Form, Input, Button, notification, Select, Spin } from 'antd'; import { ExtendedJobData, JobData } from '@/types/types'; import { useEffect } from 'react'; import { fetchJobById, updateJob } from '@/api/api'; import { Option } from 'antd/es/mentions'; import style from './EditVacancy.module.scss' interface EditVacancyProps { id: number; } const EditVacancy: React.FC = ({id}) => { const router = useRouter(); const [form] = Form.useForm(); const { data, error, isLoading } = useQuery( ['job', id], () => fetchJobById(Number(id)), { enabled: !!id, } ); useEffect(() => { if (data) { form.setFieldsValue({ Job_name: data.Job_name || '', Year: data.Year || '', Qualification: data.Qualification || false, Time: data.Time || [''], Soft_skills: data.Soft_skills || '', Salary: data.Salary || 0, Email: data.Email || '', Archive: data.Archive || false, Responsibilities: data.Responsibilities || '', Hardskills: ['React', 'JavaScript'], }); } }, [data]); const mutation = useMutation((updatedJob: JobData) => updateJob(Number(id), updatedJob), { onSuccess: () => { notification.success({ message: 'Обновление прошло успешно', description: 'Вакансия была успешно обновлена.', }); router.push('/view'); // Перенаправление обратно на страницу списка вакансий }, onError: () => { notification.error({ message: 'Не удалось выполнить обновление', description: 'Произошла ошибка при обновлении вакансии.', }); }, }); const onFinish = (values: JobData) => { mutation.mutate({ ...values}); // Обновление данных вакансии }; if (isLoading) return ; if (error) return
Error loading job data
; return (

Редактировать вакансию

); }; export default EditVacancy;