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:
@ -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}
|
||||||
|
|||||||
Reference in New Issue
Block a user