Add rating filter/sort + fix isEmpty/isNotEmpty + fix combinedViewFilters (#6310)

## Context
- Adding RATING sort and filter capabilities.
- Fixing isEmpty/isNotEmpty filters
- Fixing combined view filters so it combines filters per field metadata
and not per filter id. This is more a product question but to me it does
not make sense to apply multiples filters on the same field IF the
operations is wrapped in a AND. If at some point we want to put a OR
instead then that would make more sense
This commit is contained in:
Weiko
2024-07-17 17:54:37 +02:00
committed by GitHub
parent 47ddc7be83
commit efd932e99b
12 changed files with 172 additions and 14 deletions

View File

@ -4,6 +4,7 @@ import { useRecoilValue } from 'recoil';
import { MultipleFiltersDropdownContent } from '@/object-record/object-filter-dropdown/components/MultipleFiltersDropdownContent';
import { useFilterDropdown } from '@/object-record/object-filter-dropdown/hooks/useFilterDropdown';
import { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
import { FilterOperand } from '@/object-record/object-filter-dropdown/types/FilterOperand';
import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown';
import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown';
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
@ -66,8 +67,11 @@ export const EditableFilterDropdownButton = ({
};
const handleDropdownClickOutside = useCallback(() => {
const { id: fieldId, value } = viewFilter;
if (!value) {
const { id: fieldId, value, operand } = viewFilter;
if (
!value &&
![FilterOperand.IsEmpty, FilterOperand.IsNotEmpty].includes(operand)
) {
removeCombinedViewFilter(fieldId);
}
}, [viewFilter, removeCombinedViewFilter]);