diff --git a/front/src/components/table/table-header/FilterDropdownButton.tsx b/front/src/components/table/table-header/FilterDropdownButton.tsx
index bd9e5e46f..ffb78f5c4 100644
--- a/front/src/components/table/table-header/FilterDropdownButton.tsx
+++ b/front/src/components/table/table-header/FilterDropdownButton.tsx
@@ -53,6 +53,77 @@ export function FilterDropdownButton({
setSelectedFilterOperand(filterOperands[0]);
}, []);
+ const renderSelectOptionItems = filterOperands.map((filterOperand, index) => (
+ {
+ setSelectedFilterOperand(filterOperand);
+ setIsOptionUnfolded(false);
+ }}
+ >
+ {filterOperand.label}
+
+ ));
+
+ const renderSelectFilterITems = availableFilters.map((filter, index) => (
+ {
+ setSelectedFilter(filter);
+ }}
+ >
+
+ {filter.icon && }
+
+ {filter.label}
+
+ ));
+
+ function renderFilterDropdown(selectedFilter: FilterType) {
+ return [
+ setSelectedFilter(undefined)}
+ >
+
+ {selectedFilter.icon && (
+
+ )}
+
+ {selectedFilter.label}
+
+ ,
+ setIsOptionUnfolded(true)}
+ >
+ {selectedFilterOperand.label}
+
+
+ ,
+ someFieldRandomValue.map((value, index) => (
+ {
+ setFilters([
+ {
+ id: value,
+ operand: selectedFilterOperand,
+ label: selectedFilter.label,
+ value: value,
+ icon: selectedFilter.icon,
+ },
+ ]);
+ setIsUnfolded(false);
+ setSelectedFilter(undefined);
+ }}
+ >
+ {value}
+
+ )),
+ ];
+ }
+
return (
{selectedFilter
? isOptionUnfolded
- ? filterOperands.map((filterOperand, index) => (
- {
- setSelectedFilterOperand(filterOperand);
- setIsOptionUnfolded(false);
- }}
- >
- {filterOperand.label}
-
- ))
- : [
- setSelectedFilter(undefined)}
- >
-
- {selectedFilter.icon && (
-
- )}
-
- {selectedFilter.label}
-
- ,
- setIsOptionUnfolded(true)}
- >
- {selectedFilterOperand.label}
-
-
- ,
- someFieldRandomValue.map((value, index) => (
- {
- setFilters([
- {
- id: value,
- operand: selectedFilterOperand,
- label: selectedFilter.label,
- value: value,
- icon: selectedFilter.icon,
- },
- ]);
- setIsUnfolded(false);
- setSelectedFilter(undefined);
- }}
- >
- {value}
-
- )),
- ]
- : availableFilters.map((filter, index) => (
- {
- setSelectedFilter(filter);
- }}
- >
-
- {filter.icon && }
-
- {filter.label}
-
- ))}
+ ? renderSelectOptionItems
+ : renderFilterDropdown(selectedFilter)
+ : renderSelectFilterITems}
);
}