diff --git a/src/Models/FilteredLayer.ts b/src/Models/FilteredLayer.ts index a3cb5e413..fef7acdcf 100644 --- a/src/Models/FilteredLayer.ts +++ b/src/Models/FilteredLayer.ts @@ -24,7 +24,9 @@ export default class FilteredLayer { /** * Indicates if some filter is set. - * If this is the case, adding a new element of this type might be a bad idea + * If this is the case, adding a new element of this type might be a bad idea. + * + * Does not include the global filters */ readonly hasFilter: Store diff --git a/src/Models/MenuState.ts b/src/Models/MenuState.ts index e313899d3..a7c37901f 100644 --- a/src/Models/MenuState.ts +++ b/src/Models/MenuState.ts @@ -72,6 +72,12 @@ export class MenuState { } }) } + + this.pageStates.filter.addCallback(opened => { + if(!opened){ + this.highlightedLayerInFilters.set(undefined) + } + }) } public openMenuIfNeeded(shouldShowWelcomeMessage: boolean, themeid: string) { diff --git a/src/UI/Popup/AddNewPoint/CreateCopy.svelte b/src/UI/Popup/AddNewPoint/CreateCopy.svelte index f0a0eb0a0..4100824de 100644 --- a/src/UI/Popup/AddNewPoint/CreateCopy.svelte +++ b/src/UI/Popup/AddNewPoint/CreateCopy.svelte @@ -22,6 +22,9 @@ import Loading from "../../Base/Loading.svelte" import CreateNewNodeAction from "../../../Logic/Osm/Actions/CreateNewNodeAction" import DocumentDuplicate from "@babeard/svelte-heroicons/solid/DocumentDuplicate" + import type { GlobalFilter } from "../../../Models/GlobalFilter" + import { EyeOffIcon } from "@rgossiaux/svelte-heroicons/solid" + import Layers from "../../../assets/svg/Layers.svelte" export let state: ThemeViewState export let layer: LayerConfig @@ -46,6 +49,8 @@ let creatingCopy = new UIEventSource(false) const t = Translations.t.copy + let globalFilter: UIEventSource = state.layerState.globalFilters + let hasFilter = state.layerState.filteredLayers.get(layer.id).hasFilter async function createCopy() { creatingCopy.set(true) @@ -84,12 +89,45 @@ state.mapProperties.location.setData(location) } + + async function abort(){ + showPopup.set(false) + } - {#if $creatingCopy} + {#if $globalFilter?.length >0 } + {#if $hasFilter} + +
+ + +
+
+ + +
+ {:else if $creatingCopy}