import Button from "@/components/Button/Button"; import React, {useState} from "react"; import {CarModelItem, useCarModelContext} from "@/api/context/CarModel"; import {EngineItem, useEngineContext} from "@/api/context/Engine"; import {TrimItem, useTrimContext} from "@/api/context/Trim"; import {BodyTypeItem, useBodyTypeContext} from "@/api/context/BodyType"; import {CarColorItem, useCarColorContext} from "@/api/context/CarColor"; import {TransmissionItem, useTransmissionContext} from "@/api/context/Transmission"; import {OptionType, Select} from "@/components/Select/Select"; import {useModalContext} from "@/components/Modal/ModalContext"; import {add, update} from "@/api/cars"; import {useCarContext} from "@/api/context/Car"; import {SingleValue} from "react-select"; export default function Car({ initialData }: any) { const { carModel } = useCarModelContext(); const { engine } = useEngineContext(); const { trim } = useTrimContext(); const { bodyTypes } = useBodyTypeContext(); const { carColor } = useCarColorContext(); const { transmission } = useTransmissionContext(); const { fetchData } = useCarContext(); const { setContentModal } = useModalContext(); const carModelOptions = carModel?.map((model: CarModelItem) => ({ value: model.id, label: model.name })) || []; const engineOptions = engine?.map((engine: EngineItem) => ({ value: engine.id, label: engine.type })) || []; const trimOptions = trim?.map((trim: TrimItem) => ({ value: trim.id, label: trim.name })) || []; const bodyTypesOptions = bodyTypes?.map((bodyType: BodyTypeItem) => ({ value: bodyType.id, label: bodyType.name })) || []; const carColorOptions = carColor?.map((color: CarColorItem) => ({ value: color.id, label: color.name })) || []; const transmissionOptions = transmission?.map((transmission: TransmissionItem) => ({ value: transmission.id, label: transmission.type })) || []; const [formData, setFormData] = useState({ id: initialData?.id || null, car_models_id: initialData?.car_models_id || null, engines_id: initialData?.engines_id || null, trims_id: initialData?.trims_id || null, body_types_id: initialData?.body_types_id || null, car_colors_id: initialData?.car_colors_id || null, transmissions_id: initialData?.transmissions_id || null, }); const handleSubmit = async () => { if (formData.id === null) { await add(formData); } else { await update(formData); } fetchData(); setContentModal(null); }; return ( <> ) => { setFormData({ ...formData, engines_id: e ? e.value : null, }); }} name="engines_id"/> ) => { setFormData({ ...formData, body_types_id: e ? e.value : null, }); }} name="body_types_id"/> ) => { setFormData({ ...formData, transmissions_id: e ? e.value : null, }); }} name="transmissions_id"/> ); }