Pass dropdownId to all closeDropdown calls in MatchColumnToFieldSelect (#13087)

Pass the dropdownId into every closeDropdown() call so the instance ID
is always defined and the error no longer occurs.

---------

Co-authored-by: prastoin <paul@twenty.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
Dmitry Moiseenko
2025-07-08 05:17:42 -04:00
committed by GitHub
parent f5835a77e5
commit 67f0b98002

View File

@ -38,12 +38,14 @@ export const MatchColumnToFieldSelect = ({
columnIndex, columnIndex,
}: MatchColumnToFieldSelectProps) => { }: MatchColumnToFieldSelectProps) => {
const dropdownId = `match-column-select-v2-dropdown-${columnIndex}`; const dropdownId = `match-column-select-v2-dropdown-${columnIndex}`;
const { closeDropdown } = useCloseDropdown(); const { closeDropdown } = useCloseDropdown();
const [selectedFieldMetadataItem, setSelectedFieldMetadataItem] = const [selectedFieldMetadataItem, setSelectedFieldMetadataItem] =
useState<FieldMetadataItem | null>(null); useState<FieldMetadataItem | null>(null);
const doNotImportOption = options.find(
(option) => option.value === DO_NOT_IMPORT_OPTION_KEY,
);
const handleFieldMetadataItemSelect = ( const handleFieldMetadataItemSelect = (
selectedFieldMetadataItem: FieldMetadataItem, selectedFieldMetadataItem: FieldMetadataItem,
) => { ) => {
@ -56,9 +58,8 @@ export const MatchColumnToFieldSelect = ({
if (isDefined(correspondingOption)) { if (isDefined(correspondingOption)) {
setSelectedFieldMetadataItem(null); setSelectedFieldMetadataItem(null);
onChange(correspondingOption); onChange(correspondingOption);
closeDropdown(); closeDropdown(dropdownId);
} }
} }
}; };
@ -79,7 +80,6 @@ export const MatchColumnToFieldSelect = ({
if (isDefined(correspondingOption)) { if (isDefined(correspondingOption)) {
setSelectedFieldMetadataItem(null); setSelectedFieldMetadataItem(null);
onChange(correspondingOption); onChange(correspondingOption);
closeDropdown(dropdownId); closeDropdown(dropdownId);
} }
@ -112,13 +112,9 @@ export const MatchColumnToFieldSelect = ({
closeDropdown(dropdownId); closeDropdown(dropdownId);
}; };
const doNotImportOption = options.find( const shouldShowSubField =
(option) => option.value === DO_NOT_IMPORT_OPTION_KEY, isDefined(selectedFieldMetadataItem) &&
); isCompositeFieldType(selectedFieldMetadataItem.type);
const shouldDisplaySubFieldMetadataItemSelect =
isDefined(selectedFieldMetadataItem?.type) &&
isCompositeFieldType(selectedFieldMetadataItem?.type);
return ( return (
<Dropdown <Dropdown
@ -133,7 +129,7 @@ export const MatchColumnToFieldSelect = ({
/> />
} }
dropdownComponents={ dropdownComponents={
shouldDisplaySubFieldMetadataItemSelect && selectedFieldMetadataItem ? ( shouldShowSubField ? (
<MatchColumnSelectSubFieldSelectDropdownContent <MatchColumnSelectSubFieldSelectDropdownContent
fieldMetadataItem={selectedFieldMetadataItem} fieldMetadataItem={selectedFieldMetadataItem}
onSubFieldSelect={handleSubFieldSelect} onSubFieldSelect={handleSubFieldSelect}