diff --git a/umap/static/umap/js/modules/rendering/template.js b/umap/static/umap/js/modules/rendering/template.js
index 19090b38..7f62acfa 100644
--- a/umap/static/umap/js/modules/rendering/template.js
+++ b/umap/static/umap/js/modules/rendering/template.js
@@ -35,6 +35,7 @@ class PopupTemplate {
feature.properties.description || '',
properties
)
+ properties.name = properties.name ?? feature.getDisplayName()
let content = Utils.greedyTemplate(template, properties)
content = Utils.toHTML(content, { target: target })
return Utils.loadTemplate(`
`)
diff --git a/umap/tests/integration/test_view_marker.py b/umap/tests/integration/test_view_marker.py
index b8fb30d5..b9363d49 100644
--- a/umap/tests/integration/test_view_marker.py
+++ b/umap/tests/integration/test_view_marker.py
@@ -57,6 +57,18 @@ def test_should_handle_locale_var_in_description(live_server, map, page):
expect(link).to_have_attribute("href", "https://domain.org/?locale=en")
+def test_should_use_custom_label_key_in_popup_default_template(live_server, map, page):
+ data = deepcopy(DATALAYER_DATA)
+ data["features"][0]["properties"] = {
+ "libellé": "my custom label",
+ }
+ data["_umap_options"] = {"labelKey": "libellé"}
+ DataLayerFactory(map=map, data=data)
+ page.goto(f"{live_server.url}{map.get_absolute_url()}")
+ page.locator(".leaflet-marker-icon").click()
+ expect(page.locator(".umap-popup h4")).to_have_text("my custom label")
+
+
def test_should_display_tooltip_with_variable(live_server, map, page, bootstrap):
map.settings["properties"]["showLabel"] = True
map.settings["properties"]["labelKey"] = "Foo {name}"