fix(badges): render QR code on badge front when show_qr_front is set

Fixed three issues in ae_comp__badge_obj_view.svelte:
1. Bug: {#await} block used src={qr_data_url} (the Promise) instead of src={result}
   (the resolved data URL) — QR image never displayed correctly on badge front.
2. Layout: .special div had no flex context; added flex-row + items-end so the QR
   sits at the bottom-right of the body section via ml-auto.
3. Cleanup: removed dead second QR block that awaited event_badge_qr_id_get_promise
   (always null), which could never render.

Also marks CRUD v2 refactor as complete in TODO__Agents.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-03-05 18:01:14 -05:00
parent fdd1c88b35
commit 761fa69824
2 changed files with 27 additions and 48 deletions

View File

@@ -990,33 +990,35 @@ onkeypress={() => {
</div>
{/if}
{#if ['front_bool', 'front_back_bool'].includes(option_ticket_1_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_2_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_3_display_opt) || lq__event_badge_template_obj.show_qr_front || edit_mode_active}
<div class="special">
<span class="badge_body_special_left">
{#if option_ticket_1_override}<span
class="ticket_1_code fg_green fas fa-star"
></span>{/if}
</span>
<span class="badge_body_special_right">
{#if option_ticket_2_override}
<span class=" ticket_2_code fg_red fas fa-star"
></span>
{/if}
{#if option_ticket_3_override}
<span class="ticket_3_code fg_blue fas fa-star"
></span>
{/if}
</span>
{#if lq__event_badge_template_obj.show_qr_front}
{#if ['front_bool', 'front_back_bool'].includes(option_ticket_1_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_2_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_3_display_opt) || $lq__event_badge_template_obj?.show_qr_front || edit_mode_active}
<!-- flex-col so ticket icons row and QR stack vertically; QR is centered -->
<div class="special flex flex-col items-center w-full">
<div class="flex flex-row justify-between w-full">
<span class="badge_body_special_left">
{#if option_ticket_1_override}<span
class="ticket_1_code fg_green fas fa-star"
></span>{/if}
</span>
<span class="badge_body_special_right">
{#if option_ticket_2_override}
<span class=" ticket_2_code fg_red fas fa-star"
></span>
{/if}
{#if option_ticket_3_override}
<span class="ticket_3_code fg_blue fas fa-star"
></span>
{/if}
</span>
</div>
{#if $lq__event_badge_template_obj?.show_qr_front}
{#await qr_data_url}
Generating...
<!-- QR generating — show nothing to avoid layout shift -->
{:then result}
{#if qr_data_url}
{#if result}
<img
class="qr_code mecard_qr"
style=""
src={qr_data_url}
alt="missing QR code"
class="qr_code mecard_qr w-[0.75in] max-w-[0.75in]"
src={result}
alt="Badge QR code"
/>
{/if}
{/await}
@@ -1082,29 +1084,6 @@ onkeypress={() => {
{/if}
</div>
{#if $lq__event_badge_template_obj.show_qr_front}
{#await event_badge_qr_id_get_promise}
Generating...
{:then result}
{#if event_badge_qr_id_get_promise}
<!-- {img_obj_url} -->
<img
class="qr_code mecard_qr"
style=""
class:v_hide_print={hide_qr}
src={qr_data_url}
alt="missing QR code"
ondblclick={() => {
// (hide_qr) ? hide_qr = !hide_qr : hide_qr;
hide_qr ? (hide_qr = false) : (hide_qr = true);
}}
/>
{/if}
{/await}
{/if}
<!-- </div> -->
<!-- badge class div end -->
</section>
<!-- *** badge section end *** -->