import React from "react"; import { Box, Button } from "@mui/material"; import { WorkExperienceFormItem, WorkExperienceItemForm } from "./WorkExperienceForm"; export interface WorkExperienceSectionProps { value: WorkExperienceFormItem[]; onChange: (next: WorkExperienceFormItem[]) => void; } const emptyItem = (): WorkExperienceFormItem => ({ hasNoExperience: false, companyName: "", lastPosition: "", startYear: "", endYear: "", leavingReason: "", description: "", }); export function WorkExperienceSection({ value, onChange }: WorkExperienceSectionProps) { // رفع خطا: ایجاد تابع ایمن برای جلوگیری از "undefined is not a function" const safeOnChange = (next: WorkExperienceFormItem[]) => { if (typeof onChange === "function") { onChange(next); } else { console.error("onChange is missing in WorkExperienceSection parent!"); } }; const items = value && value.length > 0 ? value : [emptyItem()]; const handleAddItem = () => { safeOnChange([...items, emptyItem()]); }; const handleRemoveItem = (index: number) => { const next = items.filter((_, i) => i !== index); safeOnChange(next.length > 0 ? next : [emptyItem()]); }; const handleItemChange = (index: number, nextItem: WorkExperienceFormItem) => { // منطق اصلی: اگر یک آیتم "فاقد سابقه" شد، لیست باید فقط شامل همان یک آیتم باشد if (nextItem.hasNoExperience) { safeOnChange([nextItem]); } else { const nextItems = items.map((it, i) => (i === index ? nextItem : it)); safeOnChange(nextItems); } }; const hasNoExperienceSelected = items.some((x) => x.hasNoExperience); return ( {items.map((item, idx) => ( handleItemChange(idx, next)} onRemove={() => handleRemoveItem(idx)} disableRemove={items.length === 1} /> ))} ); }