diff --git a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte index e7cbf63c..86157367 100644 --- a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte @@ -293,7 +293,7 @@ let input_ref_location: HTMLInputElement | undefined; let input_ref_pronouns: HTMLInputElement | undefined; let input_ref_allow_tracking: HTMLInputElement | undefined; - let select_ref_badge_type: HTMLSelectElement | undefined; + let select_ref_badge_type: HTMLSelectElement | undefined = $state(); $effect(() => { const field = active_field; diff --git a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte index b56478e4..973aeeaa 100644 --- a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte +++ b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte @@ -26,6 +26,9 @@ on_toggle }: Props = $props(); + // Uppercase alias required: Svelte 5 treats lowercase tags as HTML elements. + let Icon = $derived(icon); + function toggle_expand() { if (state === 'collapsed') { state = 'auto'; @@ -72,8 +75,7 @@ onclick={toggle_expand} >
- + {event_file_obj.extension} {#if result === null || result === false} { + * schema is already initialised from the app's first open). + * Single-argument form required: page.evaluate() passes exactly one arg. */ +async function inject_idb({ badge, template }: { badge: object; template: object }): Promise { const db = await new Promise((resolve, reject) => { const req = indexedDB.open('ae_events_db'); req.onsuccess = () => resolve(req.result as IDBDatabase); @@ -120,7 +121,7 @@ test.describe('Badge Print Page — print layout centering', () => { await page.waitForLoadState('domcontentloaded'); // Inject badge + template directly into IndexedDB so LiveQuery fires - await page.evaluate(inject_idb, [mock_badge, mock_template] as any); + await page.evaluate(inject_idb, { badge: mock_badge, template: mock_template }); // Wait for LiveQuery to render the badge wrapper await page.waitForSelector('.event_badge_wrapper', { timeout: 8000 }); @@ -154,7 +155,7 @@ test.describe('Badge Print Page — print layout centering', () => { await page.goto(`/events/${event_id}/badges/${badge_id}/print`); await page.waitForLoadState('domcontentloaded'); - await page.evaluate(inject_idb, [mock_badge, mock_template] as any); + await page.evaluate(inject_idb, { badge: mock_badge, template: mock_template }); await page.waitForSelector('.event_badge_wrapper', { timeout: 8000 }); await page.emulateMedia({ media: 'print' }); @@ -199,7 +200,7 @@ test.describe('Badge Print Page — print layout centering', () => { await page.goto(`/events/${event_id}/badges/${badge_id}/print`); await page.waitForLoadState('domcontentloaded'); - await page.evaluate(inject_idb, [mock_badge, mock_template] as any); + await page.evaluate(inject_idb, { badge: mock_badge, template: mock_template }); await page.waitForSelector('.event_badge_wrapper', { timeout: 8000 }); await page.emulateMedia({ media: 'print' });