Fix: keep the filter edition open if it is empty (#2986)
Co-authored-by: 曹志浩 <caozhihao@quyiyuan.com> Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
import { useEffect } from 'react';
|
import { useCallback, useEffect } from 'react';
|
||||||
|
|
||||||
import { MultipleFiltersDropdownContent } from '@/object-record/object-filter-dropdown/components/MultipleFiltersDropdownContent';
|
import { MultipleFiltersDropdownContent } from '@/object-record/object-filter-dropdown/components/MultipleFiltersDropdownContent';
|
||||||
import { useFilterDropdown } from '@/object-record/object-filter-dropdown/hooks/useFilterDropdown';
|
import { useFilterDropdown } from '@/object-record/object-filter-dropdown/hooks/useFilterDropdown';
|
||||||
@ -61,6 +61,13 @@ export const EditableFilterDropdownButton = ({
|
|||||||
removeViewFilter(viewFilter.fieldMetadataId);
|
removeViewFilter(viewFilter.fieldMetadataId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleDropdownClickOutside = useCallback(() => {
|
||||||
|
const { value, fieldMetadataId } = viewFilter;
|
||||||
|
if (!value) {
|
||||||
|
removeViewFilter(fieldMetadataId);
|
||||||
|
}
|
||||||
|
}, [viewFilter, removeViewFilter]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dropdown
|
<Dropdown
|
||||||
clickableComponent={
|
clickableComponent={
|
||||||
@ -74,6 +81,7 @@ export const EditableFilterDropdownButton = ({
|
|||||||
dropdownHotkeyScope={hotkeyScope}
|
dropdownHotkeyScope={hotkeyScope}
|
||||||
dropdownOffset={{ y: 8, x: 0 }}
|
dropdownOffset={{ y: 8, x: 0 }}
|
||||||
dropdownPlacement="bottom-start"
|
dropdownPlacement="bottom-start"
|
||||||
|
onClickOutside={handleDropdownClickOutside}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -209,11 +209,6 @@ export const useViewFilters = (viewScopeId: string) => {
|
|||||||
return filtersDraft;
|
return filtersDraft;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filterToUpsert.value === '') {
|
|
||||||
filtersDraft.splice(existingFilterIndex, 1);
|
|
||||||
return filtersDraft;
|
|
||||||
}
|
|
||||||
|
|
||||||
filtersDraft[existingFilterIndex] = {
|
filtersDraft[existingFilterIndex] = {
|
||||||
...filterToUpsert,
|
...filterToUpsert,
|
||||||
id: existingSavedFilterId,
|
id: existingSavedFilterId,
|
||||||
|
|||||||
Reference in New Issue
Block a user