diff --git a/assets/layers/grave/grave.json b/assets/layers/grave/grave.json index 0c72cb6247..011b3b122a 100644 --- a/assets/layers/grave/grave.json +++ b/assets/layers/grave/grave.json @@ -13,7 +13,12 @@ "ca": "Les tombes (i les tombes) indiquen on va ser enterrada una persona. En aquest mapa, es poden gravar i es pot fer un enllaç a la Viquipèdia" }, "source": { - "osmTags": "historic=tomb" + "osmTags": { + "or": [ + "historic=tomb", + "cemetery=grave" + ] + } }, "minzoom": 15, "title": { @@ -44,16 +49,15 @@ "presets": [ { "title": { - "en": "a tombstone", - "de": "ein Grabstein", - "es": "una lápida", - "ca": "una làpida" + "en": "a grave", + "nl": "een grafsteen", + "de": "ein Grabstein" }, "tags": [ - "historic=tomb" + "cemetery=grave" ], "description": { - "en": "A tombstone is a physical object which indicates that one or more persons are buried here. It generally has the name, birth date and death date of the person or persons as inscription.", + "en": "A grave is a physical object which indicates that one or more persons are buried here. It generally has the name, birth date and death date of the person or persons as inscription.", "de": "Ein Grabstein ist ein physischer Gegenstand, der anzeigt, dass eine oder mehrere Personen hier begraben sind. Er trägt in der Regel den Namen, das Geburts- und das Sterbedatum der Person oder Personen als Inschrift.", "uk": "Надгробок - це фізичний об'єкт, який вказує на те, що тут похована одна або кілька осіб. Як правило, на ньому викарбувано ім'я, дату народження та дату смерті особи чи осіб.", "es": "Una lápida es un objeto físico que indica que una o más personas están enterradas aquí. Generalmente tiene el nombre, la fecha de nacimiento y la fecha de defunción de la persona o personas como inscripción.", diff --git a/assets/layers/tree_node/tree_node.json b/assets/layers/tree_node/tree_node.json index d97812fb06..13c3cbfec4 100644 --- a/assets/layers/tree_node/tree_node.json +++ b/assets/layers/tree_node/tree_node.json @@ -222,7 +222,7 @@ } ], "tagRenderings": [ - "images", + "images_no_blur", { "id": "plantnet", "render": "{plantnet_detection()}" diff --git a/src/Logic/State/SearchState.ts b/src/Logic/State/SearchState.ts index 59b59d9bb0..cb9992775b 100644 --- a/src/Logic/State/SearchState.ts +++ b/src/Logic/State/SearchState.ts @@ -70,7 +70,17 @@ export default class SearchState { const themeSearch = ThemeSearchIndex.fromState(state) this.themeSuggestions = this.searchTerm.mapD( - (query) => themeSearch.data.search(query, 3), + (query) => { + const results = themeSearch.data.search(query, 3) + const deduped: MinimalThemeInformation[] = [] + for (const result of results) { + if (deduped.some(th => th.id === result.id)) { + continue + } + deduped.push(result) + } + return deduped + }, [themeSearch] ) diff --git a/src/UI/BigComponents/ThemesList.svelte b/src/UI/BigComponents/ThemesList.svelte index 7bd9d9f6fd..c53da0ac1e 100644 --- a/src/UI/BigComponents/ThemesList.svelte +++ b/src/UI/BigComponents/ThemesList.svelte @@ -14,6 +14,16 @@ export let state: { osmConnection: OsmConnection } export let onlyIcons: boolean = false export let hasSelection: boolean = true + let themesFiltered: MinimalThemeInformation[] = [] + for (const theme of themes) { + if (!theme) { + continue + } + if (themesFiltered.some(th => th.id === theme.id)) { + continue + } + themesFiltered.push(theme) + }
@@ -23,7 +33,7 @@ ? "flex flex-wrap items-center justify-center gap-x-2" : "theme-list my-2 gap-4 md:grid md:grid-flow-row md:grid-cols-2 lg:grid-cols-3"} > - {#each Utils.NoNull(themes) as theme (theme.id)} + {#each Utils.NoNull(themesFiltered) as theme (theme.id)} {#if $search && hasSelection && themes?.[0] === theme}