diff --git a/frontend/public/img/icon-filter.svg b/frontend/public/img/icon-filter.svg new file mode 100644 index 00000000..aa48b16f --- /dev/null +++ b/frontend/public/img/icon-filter.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/frontend/src/components/Filterbar.tsx b/frontend/src/components/Filterbar.tsx index 71b84811..7d24aefd 100644 --- a/frontend/src/components/Filterbar.tsx +++ b/frontend/src/components/Filterbar.tsx @@ -5,6 +5,7 @@ import iconSubstract from '/img/icon-substract.svg'; import iconGridView from '/img/icon-gridview.svg'; import iconListView from '/img/icon-listview.svg'; import iconTableView from '/img/icon-tableview.svg'; +import iconFilter from '/img/icon-filter.svg'; import { useUserConfigStore } from '../stores/UserConfigStore'; import { ViewStyleNamesType, ViewStylesEnum } from '../configuration/constants/ViewStyle'; import updateUserConfig, { UserConfigType } from '../api/actions/updateUserConfig'; @@ -27,7 +28,8 @@ const Filterbar = ({ viewStyle, showSort = true, showTypeFilter = false }: Filte const { userConfig, setUserConfig } = useUserConfigStore(); const [showHidden, setShowHidden] = useState(false); - const { filterHeight, setFilterHeight } = useFilterBarTempConf(); + const { filterHeight, setFilterHeight, showFilterItems, setShowFilterItems } = + useFilterBarTempConf(); const currentViewStyle = userConfig[viewStyle]; const isGridView = currentViewStyle === ViewStylesEnum.Grid; @@ -55,39 +57,48 @@ const Filterbar = ({ viewStyle, showSort = true, showTypeFilter = false }: Filte return (
-
- - {showTypeFilter && ( - +
+ {showFilterItems && ( + <> + + {showTypeFilter && ( + + )} + setFilterHeight(e.target.value)} + /> + )} - setFilterHeight(e.target.value)} + icon filter setShowFilterItems(!showFilterItems)} />
diff --git a/frontend/src/stores/FilterbarTempConf.ts b/frontend/src/stores/FilterbarTempConf.ts index 045f0691..3f32113e 100644 --- a/frontend/src/stores/FilterbarTempConf.ts +++ b/frontend/src/stores/FilterbarTempConf.ts @@ -5,9 +5,13 @@ import { create } from 'zustand'; interface FilterbarTempConfInterface { filterHeight: string; setFilterHeight: (filterHeight: string) => void; + showFilterItems: boolean; + setShowFilterItems: (filterItems: boolean) => void; } export const useFilterBarTempConf = create(set => ({ filterHeight: '', setFilterHeight: (filterHeight: string) => set({ filterHeight }), + showFilterItems: false, + setShowFilterItems: (showFilterItems: boolean) => set({ showFilterItems }), }));