diff --git a/assets/views/base.html b/assets/views/base.html
index b538b7a..7ee821a 100644
--- a/assets/views/base.html
+++ b/assets/views/base.html
@@ -109,7 +109,9 @@
+ screens (a compact copy lives in the mobile menu panel below), and on
+ the shop page (whose listing toolbar carries its own search box). -->
+ {% if not on_shop | default(value=false) %}
+ {% endif %}
@@ -210,6 +213,7 @@
underline focus), active state via data-nav + markActiveNav() -->
+ {% if not on_shop | default(value=false) %}
-
+ {% endif %}
- {{ t(key="nav-home", lang=lang | default(value='sk')) }}
- {{ t(key="nav-shop", lang=lang | default(value='sk')) }}
{% if logged_in_admin %}
diff --git a/src/controllers/shop.rs b/src/controllers/shop.rs
index f9f35cf..d1827f5 100644
--- a/src/controllers/shop.rs
+++ b/src/controllers/shop.rs
@@ -340,6 +340,11 @@ async fn index(
let mut context = run_search(&ctx, user.as_ref(), &SearchParams::default(), &cur).await?;
let c = guard::chrome_from(&ctx, user.as_ref());
add_chrome(&mut context, &c, ¤t_lang(&jar));
+ // The shop page carries its own search box in the listing toolbar, so the
+ // header search bar is redundant here — flag it so base.html can hide it.
+ if let Some(map) = context.as_object_mut() {
+ map.insert("on_shop".into(), json!(true));
+ }
format::view(&v, "shop/index.html", context)
}
@@ -377,6 +382,11 @@ async fn search(
let c = guard::chrome_from(&ctx, user.as_ref());
add_chrome(&mut context, &c, &lang);
+ // The shop page carries its own search box in the listing toolbar, so the
+ // header search bar is redundant here — flag it so base.html can hide it.
+ if let Some(map) = context.as_object_mut() {
+ map.insert("on_shop".into(), json!(true));
+ }
format::view(&v, "shop/index.html", context)
}