diff --git a/src/lib/app_components/e_app_url_builder.svelte b/src/lib/app_components/e_app_url_builder.svelte index 7a270bc2..84df4bcc 100644 --- a/src/lib/app_components/e_app_url_builder.svelte +++ b/src/lib/app_components/e_app_url_builder.svelte @@ -1,45 +1,62 @@ -
-

+
+ +

URL Param Builder

- -
+ +
+

Core

- - - + + @@ -103,9 +122,9 @@
- - - + + - - + + @@ -124,45 +143,81 @@
- - + +
-
- -
- - + +
+

Launcher

+ + +
+ + + +
+ + +
+ + + +
+ + +
+ + + +
- -
- (e.target as HTMLInputElement).select()} - title="Click to select all" - /> - + +
+
+ + +
+ +
+ (e.target as HTMLInputElement).select()} + title="Click to select all" + /> + +
+
diff --git a/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte b/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte index 33a126da..48ad8a2e 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte @@ -147,6 +147,22 @@ if (param_launcher_footer === 'hide') $events_loc.launcher.hide__launcher_footer = true; else if (param_launcher_footer === 'show') $events_loc.launcher.hide__launcher_footer = false; }); + + // Strip launcher display params from the URL after applying them — same pattern + // as root layout does for ?theme / ?theme_mode. These are "one-shot" apply params; + // keeping them in the URL is misleading because toggling the CFG panel would desync. + // ?iframe is intentionally left in the URL because it is a persistent mode flag. + if (param_launcher_menu || param_launcher_header || param_launcher_footer) { + const clean_url = new URL(data.url.href); + clean_url.searchParams.delete('launcher_menu'); + clean_url.searchParams.delete('launcher_header'); + clean_url.searchParams.delete('launcher_footer'); + goto(clean_url.pathname + clean_url.search + clean_url.hash, { + replaceState: true, + noScroll: true, + keepFocus: true + }); + } }); // String-Only ID Vision: Sync the device ID from the native environment