mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2025-12-13 07:46:10 +00:00
fix not showing items with grouptypes on maps not filtered
This commit is contained in:
parent
b640e2bc97
commit
ed3446dc13
@ -6,7 +6,7 @@ import { ItemViewPopup } from './Subcomponents/ItemViewPopup'
|
||||
import { useAllItemsLoaded, useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { ItemFormPopup } from './Subcomponents/ItemFormPopup'
|
||||
import { useFilterTags, useIsGroupTypeVisible, useIsLayerVisible } from './hooks/useFilter'
|
||||
import { useFilterTags, useIsGroupTypeVisible, useIsLayerVisible, useVisibleGroupType } from './hooks/useFilter'
|
||||
import { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/useTags'
|
||||
import { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'
|
||||
import { Popup } from 'leaflet'
|
||||
@ -81,6 +81,8 @@ export const Layer = ({
|
||||
|
||||
const isGroupTypeVisible = useIsGroupTypeVisible();
|
||||
|
||||
const visibleGroupTypes = useVisibleGroupType();
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
@ -149,7 +151,7 @@ export const Layer = ({
|
||||
filter(item =>
|
||||
filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())))?.
|
||||
filter(item => item.layer && isLayerVisible(item.layer)).
|
||||
filter(item => item.group_type && isGroupTypeVisible(item.group_type)||item.group_type==null).
|
||||
filter(item => item.group_type && isGroupTypeVisible(item.group_type)|| visibleGroupTypes.length == 0).
|
||||
map((item: Item) => {
|
||||
if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {
|
||||
|
||||
|
||||
@ -23,6 +23,7 @@ const FilterContext = createContext<UseFilterManagerResult>({
|
||||
filterTags: [],
|
||||
searchPhrase: "",
|
||||
visibleLayers: [],
|
||||
visibleGroupTypes: [],
|
||||
addFilterTag: () => { },
|
||||
removeFilterTag: () => { },
|
||||
resetFilterTags: () => { },
|
||||
@ -41,6 +42,7 @@ function useFilterManager(initialTags: Tag[]): {
|
||||
filterTags: Tag[];
|
||||
searchPhrase: string;
|
||||
visibleLayers: LayerProps[];
|
||||
visibleGroupTypes: string[];
|
||||
addFilterTag: (tag: Tag) => void;
|
||||
removeFilterTag: (name: string) => void;
|
||||
resetFilterTags: () => void;
|
||||
@ -117,11 +119,11 @@ function useFilterManager(initialTags: Tag[]): {
|
||||
if(exist2) return state.filter((groupType) => groupType != action.groupType);
|
||||
else return [... state, action.groupType];
|
||||
case "RESET_GROUP_TYPE":
|
||||
return initialLayers;
|
||||
return [];
|
||||
default:
|
||||
throw new Error();
|
||||
}
|
||||
}, initialLayers);
|
||||
},[]);
|
||||
|
||||
const [searchPhrase, searchPhraseSet] = React.useState<string>("");
|
||||
|
||||
@ -227,7 +229,7 @@ function useFilterManager(initialTags: Tag[]): {
|
||||
searchPhraseSet(phrase)
|
||||
}, []);
|
||||
|
||||
return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase, visibleLayers, toggleVisibleLayer, resetVisibleLayers, isLayerVisible, addVisibleLayer, addVisibleGroupType, toggleVisibleGroupType, isGroupTypeVisible };
|
||||
return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase, visibleLayers, toggleVisibleLayer, resetVisibleLayers, isLayerVisible, addVisibleLayer, visibleGroupTypes, addVisibleGroupType, toggleVisibleGroupType, isGroupTypeVisible };
|
||||
}
|
||||
|
||||
export const FilterProvider: React.FunctionComponent<{
|
||||
@ -309,4 +311,9 @@ export const useToggleVisibleGroupType = (): UseFilterManagerResult["toggleVisib
|
||||
export const useIsGroupTypeVisible = (): UseFilterManagerResult["isGroupTypeVisible"] => {
|
||||
const { isGroupTypeVisible } = useContext(FilterContext);
|
||||
return isGroupTypeVisible
|
||||
};
|
||||
|
||||
export const useVisibleGroupType = (): UseFilterManagerResult["visibleGroupTypes"] => {
|
||||
const { visibleGroupTypes } = useContext(FilterContext);
|
||||
return visibleGroupTypes;
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user