From 10e9206ca4ae75925a274baafb211c30ca2d0676 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 6 Apr 2026 17:19:35 -0400 Subject: [PATCH] fix(leads): persist licensed auth across reloads; manage tab UX fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Session persistence bug** — leads_loc_defaults was missing __version: 1. store_versions.ts wipes ae_leads_loc when parsed.__version !== 1 (always true when the field is absent), so every page reload cleared auth_exhibit_kv and forced re-login. Adding __version: 1 to both the interface and defaults fixes this for all auth types. **Manage tab fixes:** - Description: collapsed by default with ChevronDown/Up toggle — same pattern as session_view.svelte. Avoids long promo copy dominating the manage screen. - Staff Passcode: removed duplicate green plain-text display for admins; the Element_ae_obj_field_editor already shows the value (was showing twice). - Booth Identifier: replaced static read-only display with Element_ae_obj_field_editor so the booth code (exhibit.code) is editable inline. Co-Authored-By: Claude Sonnet 4.6 --- .../ae_events_stores__leads_defaults.ts | 2 + .../[exhibit_id]/ae_tab__manage.svelte | 80 ++++++++++++------- 2 files changed, 51 insertions(+), 31 deletions(-) diff --git a/src/lib/stores/ae_events_stores__leads_defaults.ts b/src/lib/stores/ae_events_stores__leads_defaults.ts index 733fb96f..a5a89066 100644 --- a/src/lib/stores/ae_events_stores__leads_defaults.ts +++ b/src/lib/stores/ae_events_stores__leads_defaults.ts @@ -7,6 +7,7 @@ */ export interface LeadsLocState { + __version: number; show_option__paid_tab: boolean; show_content__scan_alert: boolean; show_content__scan_requirements: boolean; @@ -78,6 +79,7 @@ export interface LeadsSessState { // Persisted leads config — survives browser sessions. export const leads_loc_defaults: LeadsLocState = { + __version: 1, show_option__paid_tab: true, show_content__scan_alert: true, // Workaround for QR scanner edge-case bug. show_content__scan_requirements: true, diff --git a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte index a1f79a64..1b038944 100644 --- a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte +++ b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte @@ -17,6 +17,7 @@ import Comp_exhibit_payment from './ae_comp__exhibit_payment.svelte'; import { ChevronDown, ChevronRight, + ChevronUp, Clock, CreditCard, Database, @@ -62,6 +63,7 @@ let updating = $state(false); let show_license_mgmt = $state(false); let show_custom_questions = $state(false); let show_billing = $state(false); +let desc_expanded = $state(false); function handle_signout() { if (confirm('Sign out from this booth?')) { @@ -212,26 +214,40 @@ function handle_signout() {

- +
-
- (desc_expanded = !desc_expanded)} + aria-expanded={desc_expanded}> + Booth Description / Promo -
- - events_func.load_ae_obj_id__event_exhibit({ - api_cfg: $ae_api, - exhibit_id - })} /> + + {#if desc_expanded} + + {:else} + + {/if} + + + {#if desc_expanded} +
+ + events_func.load_ae_obj_id__event_exhibit({ + api_cfg: $ae_api, + exhibit_id + })} /> +
+ {/if}
@@ -256,14 +272,6 @@ function handle_signout() { Staff Passcode - - {#if $ae_loc.administrator_access} -
- {$lq__exhibit_obj?.staff_passcode || '----'} -
- {/if} -
-
+
+ class="mb-1 text-[10px] font-black tracking-widest uppercase opacity-40"> Booth Identifier
-
- #{$lq__exhibit_obj?.code || 'N/A'} -
+ + events_func.load_ae_obj_id__event_exhibit({ + api_cfg: $ae_api, + exhibit_id + })} />