Fix: system bar hide logic for iframe and menu param overrides (IDAA embed reliability)

This commit is contained in:
Scott Idem
2026-03-25 15:49:41 -04:00
parent fd244720a7
commit 0ad36a74b2
6 changed files with 113 additions and 87 deletions

View File

@@ -276,6 +276,8 @@ $effect(() => {
// Iframe Detection
let iframe = data.url.searchParams.get('iframe');
// let iframe = $derived(data.url.searchParams.get('iframe'));
if (iframe === 'true') {
$ae_loc.iframe = true;
// Hide the AE system bar by default in iframe embeds — it's nav chrome
@@ -289,10 +291,22 @@ $effect(() => {
// show_menu=true — override to show the AE system bar even inside an iframe.
// Intended for trusted/admin users who need menu access while testing an embed.
// hide_menu=true — explicitly hide the bar outside of iframe contexts.
// const menu_override = data.url.searchParams.get('show_menu');
// if (menu_override === 'true') $ae_loc.sys_menu.hide = false;
// else if (data.url.searchParams.get('hide_menu') === 'true')
// $ae_loc.sys_menu.hide = true;
const menu_override = data.url.searchParams.get('show_menu');
if (menu_override === 'true') $ae_loc.sys_menu.hide = false;
else if (data.url.searchParams.get('hide_menu') === 'true')
if (menu_override === 'true') {
$ae_loc.sys_menu.hide = false;
} else if (data.url.searchParams.get('hide_menu') === 'true') {
$ae_loc.sys_menu.hide = true;
} else if (data.url.searchParams.get('iframe') === 'true') {
$ae_loc.sys_menu.hide = true;
} else if (data.url.searchParams.get('iframe') === 'false') {
$ae_loc.sys_menu.hide = false;
}
// console.log('iframe:', $ae_loc.iframe, 'sys_menu.hide:', $ae_loc.sys_menu.hide);
// Theme URL params — ?theme=AE_Firefly_SteelBlue&theme_mode=dark
// Applied once on load, then silently removed from the URL (no history entry).
@@ -397,7 +411,7 @@ $effect(() => {
</div>
{/if}
{#if browser && (!$ae_loc?.iframe || $ae_loc?.trusted_access)}
{#if browser && (!$ae_loc?.iframe || $ae_loc?.administrator_access || ($ae_loc?.trusted_access && $ae_loc.edit_mode))}
<!-- print:hidden wrapper: sys/debug menus are fixed overlays — must not appear on printed pages -->
<div class="print:hidden">
<E_app_sys_bar