import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { Input, Select, Switch } from "@calcom/ui/components/form"; import { ArrowRightIcon, LinkIcon } from "@coss/ui/icons"; import { getDefaultFieldMapping } from "@calcom/features/ee/integration-attribute-sync/lib/fieldMappingHelpers"; import type { IFieldMappingFormState, IFieldMappingWithOptionalId, } from "@calcom/features/ee/integration-attribute-sync/repositories/IIntegrationAttributeSyncRepository"; type AttributeOptions = { label: string; value: string; }[]; interface FieldMappingBuilderProps { value: IFieldMappingFormState; onChange: (value: IFieldMappingFormState) => void; attributeOptions: AttributeOptions; isLoadingAttributes?: boolean; } interface MappingRowProps { mapping: IFieldMappingWithOptionalId; onChange: (mapping: IFieldMappingWithOptionalId) => void; onRemove: () => void; attributeOptions: AttributeOptions; isLoading?: boolean; error?: string; } const MappingRow = ({ mapping, onChange, onRemove, attributeOptions, isLoading, error }: MappingRowProps) => { const { t } = useLocale(); const selectedAttribute = attributeOptions.find((opt) => opt.value === mapping.attributeId); const handleFieldNameChange = (e: React.ChangeEvent) => { onChange({ ...mapping, integrationFieldName: e.target.value, }); }; const handleAttributeChange = (selected: { value: string; label: string } | null) => { if (!selected) return; onChange({ ...mapping, attributeId: selected.value, }); }; const handleEnabledChange = (checked: boolean) => { onChange({ ...mapping, enabled: checked, }); }; return (