From 1d53ba3f9ca9efc091337a8de85d08045110bc97 Mon Sep 17 00:00:00 2001 From: Anton Tranelis Date: Mon, 29 Jul 2024 20:39:25 +0200 Subject: [PATCH] close new item form when switching layers --- .../Templates/OverlayItemsIndexPage.tsx | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/src/Components/Templates/OverlayItemsIndexPage.tsx b/src/Components/Templates/OverlayItemsIndexPage.tsx index 12ae18b7..1bfaea67 100644 --- a/src/Components/Templates/OverlayItemsIndexPage.tsx +++ b/src/Components/Templates/OverlayItemsIndexPage.tsx @@ -22,12 +22,6 @@ import { TagsControl } from '../Map/Subcomponents/Controls/TagsControl'; import { useFilterTags } from '../Map/hooks/useFilter'; -type breadcrumb = { - name: string, - path: string -} - - export const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButton = true }: { layerName: string, url: string, parameterField: string, plusButton?: boolean }) => { @@ -45,6 +39,11 @@ export const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButt scroll(); }, [addItemPopupType]) + useEffect(() => { + setAddItemPopupType(""); + }, [layerName]) + + const tags = useTags(); const addTag = useAddTag(); const { user } = useAuth(); @@ -120,42 +119,44 @@ export const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButt
{ items?.filter(i => i.layer?.name === layerName). - filter(item => - filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())))?. - sort((a, b) => { - // Convert date_created to milliseconds, handle undefined by converting to lowest possible date (0 milliseconds) - const dateA = a.date_updated ? new Date(a.date_updated).getTime() : a.date_created ? new Date(a.date_created).getTime() : 0; - const dateB = b.date_updated ? new Date(b.date_updated).getTime() : b.date_created ? new Date(b.date_created).getTime() : 0; - return dateB - dateA; // Subtracts milliseconds which are numbers - })?. - map((i, k) => ( -
- deleteItem(i)} /> -
- )) + filter(item => + filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())))?. + sort((a, b) => { + // Convert date_created to milliseconds, handle undefined by converting to lowest possible date (0 milliseconds) + const dateA = a.date_updated ? new Date(a.date_updated).getTime() : a.date_created ? new Date(a.date_created).getTime() : 0; + const dateB = b.date_updated ? new Date(b.date_updated).getTime() : b.date_created ? new Date(b.date_created).getTime() : 0; + return dateB - dateA; // Subtracts milliseconds which are numbers + })?. + map((i, k) => ( +
+ deleteItem(i)} /> +
+ )) } -
- {addItemPopupType == "place" && ( -
submitNewItem(e)}> -
- - - {layer?.itemType.show_start_end_input && } - -
- + {addItemPopupType == "place" && ( + submitNewItem(e)}> +
+ + + {layer?.itemType.show_start_end_input && } + +
+ +
-
- - )} + + )} +
+ {plusButton && { setAddItemPopupType("place"); scroll(); }} color={'#777'} collection='items' />} - )} + ) +}