From 2b9497f8300ee40c556abe9cf2e0ed3a2ea1c068 Mon Sep 17 00:00:00 2001 From: gourav Date: Mon, 5 Jan 2026 14:36:53 +0530 Subject: [PATCH 01/22] fix/drawers-replaced-with-component --- .../src/routes/(app)/scan-qr/+page.svelte | 318 +++++++++--------- .../scan-qr/components/AuthDrawer.svelte | 83 ++--- 2 files changed, 197 insertions(+), 204 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte index 9b17a9969..8a07082b3 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte @@ -1,149 +1,161 @@ @@ -173,18 +185,22 @@ function handleRevealDrawerOpenChange(value: boolean) { - +{#if $codeScannedDrawerOpen} +
+ +
+{/if} -import { Drawer } from "$lib/ui"; -import * as Button from "$lib/ui/Button"; -import { QrCodeIcon } from "@hugeicons/core-free-icons"; -import { HugeiconsIcon } from "@hugeicons/svelte"; + import * as Button from "$lib/ui/Button"; + import { QrCodeIcon } from "@hugeicons/core-free-icons"; + import { HugeiconsIcon } from "@hugeicons/svelte"; -export let isOpen: boolean; -export let platform: string | null | undefined; -export let hostname: string | null | undefined; -export let scannedContent: string | undefined; -export let isSigningRequest: boolean; -export let authError: string | null | undefined; -export let authLoading: boolean | undefined; -export let onConfirm: () => void; -export let onDecline: () => void; -export let onOpenChange: (value: boolean) => void; - -let internalOpen = isOpen; -let lastReportedOpen = internalOpen; - -$: if (isOpen !== internalOpen) { - internalOpen = isOpen; -} - -$: if (internalOpen !== lastReportedOpen) { - lastReportedOpen = internalOpen; - onOpenChange?.(internalOpen); -} + export let platform: string | null | undefined; + export let hostname: string | null | undefined; + export let scannedContent: string | undefined; + export let isSigningRequest: boolean; + export let authError: string | null | undefined; + export let authLoading: boolean | undefined; + export let onConfirm: () => void; + export let onDecline: () => void; -
-
+
@@ -49,25 +34,25 @@ $: if (internalOpen !== lastReportedOpen) { />
-

Code scanned!

+

Code scanned!

You're trying to access the following site

-

Platform Name

+

Platform Name

{platform ?? "Unable to get name"}

-

Website URL

-

+

Website URL

+

{hostname ?? scannedContent}

{#if authError} -
+

Error

-
- {authError} -
+
{authError}
{/if} - -
+ +
{#if authError} - + Okay {:else} @@ -110,9 +89,9 @@ $: if (internalOpen !== lastReportedOpen) { > Decline - @@ -128,10 +107,8 @@ $: if (internalOpen !== lastReportedOpen) { {#if isSigningRequest === false}

- After confirmation, you may return to {platform} and continue - there + After confirmation, you may return to {platform} and continue there

{/if} - - +
From c6afb2243b43ba13af9bf5b62c7c6370315383e7 Mon Sep 17 00:00:00 2001 From: gourav Date: Mon, 5 Jan 2026 16:10:59 +0530 Subject: [PATCH 02/22] fix: all drawers converted into components --- .../src/routes/(app)/scan-qr/+page.svelte | 161 +++++----- .../scan-qr/components/AuthDrawer.svelte | 2 +- .../scan-qr/components/LoggedInDrawer.svelte | 50 ++-- .../scan-qr/components/RevealDrawer.svelte | 107 +++---- .../scan-qr/components/SigningDrawer.svelte | 275 ++++++++---------- 5 files changed, 281 insertions(+), 314 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte index 8a07082b3..b49455500 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte @@ -58,6 +58,13 @@ initialize, } = actions; + let isOverlayActive = $derived( + $codeScannedDrawerOpen || + $loggedInDrawerOpen || + $signingDrawerOpen || + $isRevealRequest, + ); + const pathProps: SVGAttributes = { stroke: "white", "stroke-width": 7, @@ -156,86 +163,94 @@ function handleRevealDrawerOpenChange(value: boolean) { setRevealRequestOpen(value); } + + $effect(() => { + if (isOverlayActive) { + console.log("Overlay is now active, camera should be hidden."); + } + }); -
- - - - - - - -

- Point the camera at the code -

-
- -{#if $codeScannedDrawerOpen} + + + + + + + +

+ Point the camera at the code +

+
+{:else}
- + {#if $codeScannedDrawerOpen} + + {:else if $loggedInDrawerOpen} + + {:else if $signingDrawerOpen} + + {:else if $isRevealRequest} + + {/if}
{/if} - - - - - - diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte index be7587dbe..66d86aa1f 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte @@ -14,7 +14,7 @@
-import { Drawer } from "$lib/ui"; -import * as Button from "$lib/ui/Button"; -import { QrCodeIcon } from "@hugeicons/core-free-icons"; -import { HugeiconsIcon } from "@hugeicons/svelte"; + import * as Button from "$lib/ui/Button"; + import { QrCodeIcon } from "@hugeicons/core-free-icons"; + import { HugeiconsIcon } from "@hugeicons/svelte"; -export let isOpen: boolean; -export let platform: string | null | undefined; -export let redirect: string | null | undefined; -export let onConfirm: () => void; -export let onOpenChange: (value: boolean) => void; - -let internalOpen = isOpen; -let lastReportedOpen = internalOpen; - -$: if (isOpen !== internalOpen) { - internalOpen = isOpen; -} - -$: if (internalOpen !== lastReportedOpen) { - lastReportedOpen = internalOpen; - onOpenChange?.(internalOpen); -} + export let platform: string | null | undefined; + export let redirect: string | null | undefined; + export let onConfirm: () => void; -
-
+
@@ -44,12 +29,14 @@ $: if (internalOpen !== lastReportedOpen) { />
-

You're logged in!

-

You're now connected to {platform}

+

You're logged in!

+

+ You're now connected to {platform ?? "the platform"} +

-
+
{#if redirect && platform} -
+

You may return to {platform} and continue there

@@ -60,5 +47,4 @@ $: if (internalOpen !== lastReportedOpen) { Ok
- - +
diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte index a9010e566..c8e6f6b83 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte @@ -1,47 +1,50 @@ - {#if revealSuccess && revealedVoteData} -
-

- You voted for: {revealedVoteData.chosenOption} +

+
+
+ +
+ +

Vote Revealed

+ +
+

+ You voted for:
+ + {revealedVoteData.chosenOption} +

-

+

Poll ID: {revealedVoteData.pollId}

@@ -55,7 +58,9 @@ $: if (internalOpen !== lastReportedOpen) {
-
+
@@ -68,27 +73,30 @@ $: if (internalOpen !== lastReportedOpen) { />
-

Reveal Your Blind Vote

-

- You're about to reveal your blind vote for poll: {revealPollId} +

Reveal Your Blind Vote

+

+ You're about to reveal your blind vote for poll:
+ {revealPollId}

-
-

- Note: Revealing your vote will show your choice locally - in this wallet. This action cannot be undone. +

+

+ Note: This action cannot be undone. It will decrypt + and show your choice locally in this wallet.

{#if revealError} -
-

+

+

{revealError}

{/if} -
+
{/if} - - +
diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte index 387364a07..5c78d1a31 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte @@ -1,60 +1,39 @@ - {#if showSigningSuccess}
-
+
@@ -67,7 +46,7 @@ $: hasPollDetails = />
-

+

{#if isBlindVotingRequest} Blind Vote Submitted Successfully! {:else if signingData?.pollId} @@ -76,10 +55,11 @@ $: hasPollDetails = Message Signed Successfully! {/if}

-

+ +

{#if isBlindVotingRequest} - Your blind vote has been submitted and is now completely hidden using - cryptographic commitments. + Your blind vote has been submitted and is now completely hidden + using cryptographic commitments. {:else if signingData?.pollId} Your vote has been signed and submitted to the voting system. {:else} @@ -100,7 +80,9 @@ $: hasPollDetails =

-
+
@@ -113,7 +95,7 @@ $: hasPollDetails = />
-

+

{#if isBlindVotingRequest} Blind Vote Request {:else if signingData?.pollId} @@ -122,7 +104,8 @@ $: hasPollDetails = Sign Message Request {/if}

-

+ +

{#if isBlindVotingRequest} You're being asked to submit a blind vote for the following poll {:else if signingData?.pollId} @@ -134,152 +117,128 @@ $: hasPollDetails = {#if signingData?.pollId && signingData?.voteData}

-

Poll ID

+

Poll ID

{signingData?.pollId ?? "Unknown"}

{:else if isBlindVotingRequest && hasPollDetails} -
-

Blind Voting

- +
{#if blindVoteError}
-
-
- - - -
-
-

- Error -

-
- {blindVoteError} -
+ + + +
+

+ Error +

+
+ {blindVoteError}
{/if} -
-

- Poll: {signingData?.pollDetails?.title || "Unknown"} +
+

+ {signingData?.pollDetails?.title || "Unknown Poll"}

-

+

Creator: {signingData?.pollDetails?.creatorName || "Unknown"}

-
- - Select your vote: - - {#each signingData?.pollDetails?.options || [] as option, index} - - {/each} +
+ Select your vote: +
+ {#each signingData?.pollDetails?.options || [] as option, index} + + {/each} +
- +

{:else} -
-

Message

-

+

+

Message

+

{signingData?.message ?? "No message provided"}

-
-

Session ID

-

+

+

Session ID

+

{signingData?.sessionId?.slice(0, 8) ?? "Unknown"}...

{#if signingError} -
-
-
- - - -
-
-

Error

-
- {signingError} -
-
+
+ + + +
+

Error

+
{signingError}
{/if} {/if} -
+
{#if !isBlindVotingRequest} {#if signingError} {#if loading} @@ -314,5 +274,4 @@ $: hasPollDetails = {/if}
{/if} - - +
From 474176a6afd976143bc9849001cd6fcde5fb0fce Mon Sep 17 00:00:00 2001 From: gourav Date: Mon, 5 Jan 2026 16:23:58 +0530 Subject: [PATCH 03/22] fix: cancel scan still not stop the stream while drawer is open --- .../eid-wallet/src/routes/(app)/scan-qr/+page.svelte | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte index b49455500..02569ddb6 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte @@ -169,6 +169,15 @@ console.log("Overlay is now active, camera should be hidden."); } }); + + $effect(() => { + const shouldStop = isOverlayActive; + if (shouldStop) { + cancelScan(); + } else { + startScan(); + } + }); From 0779ecd3f2b140b8b793037eae37a0e00e0bfd42 Mon Sep 17 00:00:00 2001 From: gourav Date: Mon, 5 Jan 2026 17:18:59 +0530 Subject: [PATCH 04/22] fix: format --- .../src/routes/(app)/scan-qr/+page.svelte | 308 +++++++++--------- .../scan-qr/components/AuthDrawer.svelte | 22 +- .../scan-qr/components/LoggedInDrawer.svelte | 12 +- .../scan-qr/components/RevealDrawer.svelte | 22 +- .../scan-qr/components/SigningDrawer.svelte | 41 ++- 5 files changed, 202 insertions(+), 203 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte index 02569ddb6..69e4f641d 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte @@ -1,183 +1,183 @@ diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte index 66d86aa1f..393c13bb6 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte @@ -1,16 +1,16 @@
- import * as Button from "$lib/ui/Button"; - import { QrCodeIcon } from "@hugeicons/core-free-icons"; - import { HugeiconsIcon } from "@hugeicons/svelte"; +import * as Button from "$lib/ui/Button"; +import { QrCodeIcon } from "@hugeicons/core-free-icons"; +import { HugeiconsIcon } from "@hugeicons/svelte"; - export let platform: string | null | undefined; - export let redirect: string | null | undefined; - export let onConfirm: () => void; +export let platform: string | null | undefined; +export let redirect: string | null | undefined; +export let onConfirm: () => void;
- import * as Button from "$lib/ui/Button"; - import { QrCodeIcon } from "@hugeicons/core-free-icons"; - import { HugeiconsIcon } from "@hugeicons/svelte"; - import type { RevealedVoteData } from "../scanLogic"; +import * as Button from "$lib/ui/Button"; +import { QrCodeIcon } from "@hugeicons/core-free-icons"; +import { HugeiconsIcon } from "@hugeicons/svelte"; +import type { RevealedVoteData } from "../scanLogic"; - export let revealSuccess: boolean; - export let revealedVoteData: RevealedVoteData | null; - export let revealPollId: string | null; - export let revealError: string | null; - export let isRevealingVote: boolean; - export let onCancel: () => void; - export let onReveal: () => void; +export let revealSuccess: boolean; +export let revealedVoteData: RevealedVoteData | null; +export let revealPollId: string | null; +export let revealError: string | null; +export let isRevealingVote: boolean; +export let onCancel: () => void; +export let onReveal: () => void;
- import * as Button from "$lib/ui/Button"; - import { QrCodeIcon } from "@hugeicons/core-free-icons"; - import { HugeiconsIcon } from "@hugeicons/svelte"; - import type { SigningData } from "../scanLogic"; +import * as Button from "$lib/ui/Button"; +import { QrCodeIcon } from "@hugeicons/core-free-icons"; +import { HugeiconsIcon } from "@hugeicons/svelte"; +import type { SigningData } from "../scanLogic"; - export let showSigningSuccess: boolean; - export let isBlindVotingRequest: boolean; - export let signingData: SigningData | null; - export let blindVoteError: string | null; - export let selectedBlindVoteOption: number | null; - export let isSubmittingBlindVote: boolean; - export let loading: boolean; - export let signingError: string | null | undefined; - export let onDecline: () => void; - export let onSign: () => void; - export let onBlindVoteOptionChange: (value: number) => void; - export let onSubmitBlindVote: () => void; - export let onSuccessOkay: () => void; +export let showSigningSuccess: boolean; +export let isBlindVotingRequest: boolean; +export let signingData: SigningData | null; +export let blindVoteError: string | null; +export let selectedBlindVoteOption: number | null; +export let isSubmittingBlindVote: boolean; +export let loading: boolean; +export let signingError: string | null | undefined; +export let onDecline: () => void; +export let onSign: () => void; +export let onBlindVoteOptionChange: (value: number) => void; +export let onSubmitBlindVote: () => void; +export let onSuccessOkay: () => void; - let hasPollDetails = false; - $: hasPollDetails = - signingData?.pollId !== undefined && - signingData?.pollDetails !== undefined; +let hasPollDetails = false; +$: hasPollDetails = + signingData?.pollId !== undefined && signingData?.pollDetails !== undefined;
Date: Tue, 6 Jan 2026 11:38:24 +0530 Subject: [PATCH 05/22] fix: media stream stopage --- .../src/routes/(app)/scan-qr/+page.svelte | 206 ++++----- .../scan-qr/components/AuthDrawer.svelte | 207 +++++---- .../scan-qr/components/LoggedInDrawer.svelte | 85 ++-- .../scan-qr/components/RevealDrawer.svelte | 211 +++++---- .../scan-qr/components/SigningDrawer.svelte | 429 ++++++++---------- 5 files changed, 571 insertions(+), 567 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte index 69e4f641d..ed11a3d6a 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/+page.svelte @@ -58,13 +58,6 @@ const { initialize, } = actions; -let isOverlayActive = $derived( - $codeScannedDrawerOpen || - $loggedInDrawerOpen || - $signingDrawerOpen || - $isRevealRequest, -); - const pathProps: SVGAttributes = { stroke: "white", "stroke-width": 7, @@ -106,15 +99,9 @@ $effect(() => { }); async function handleAuthDrawerDecline() { - // If there's an error, "Okay" button closes modal and navigates to main - if ($authError) { - setCodeScannedDrawerOpen(false); - await goto("/main"); - } else { - // Otherwise, "Decline" closes modal and restarts scanning - setCodeScannedDrawerOpen(false); - startScan(); - } + // Cancel button always navigates to main + setCodeScannedDrawerOpen(false); + await goto("/main"); } function handleAuthDrawerOpenChange(value: boolean) { @@ -133,15 +120,9 @@ function handleLoggedInDrawerOpenChange(value: boolean) { } async function handleSigningDrawerDecline() { - // If there's an error, "Okay" button closes modal and navigates to main - if ($signingError) { - setSigningDrawerOpen(false); - await goto("/main"); - } else { - // Otherwise, "Decline" closes modal and restarts scanning - setSigningDrawerOpen(false); - startScan(); - } + // Cancel button always navigates to main + setSigningDrawerOpen(false); + await goto("/main"); } function handleSigningDrawerOpenChange(value: boolean) { @@ -163,103 +144,88 @@ function handleRevealDrawerCancel() { function handleRevealDrawerOpenChange(value: boolean) { setRevealRequestOpen(value); } - -$effect(() => { - if (isOverlayActive) { - console.log("Overlay is now active, camera should be hidden."); - } -}); - -$effect(() => { - const shouldStop = isOverlayActive; - if (shouldStop) { - cancelScan(); - } else { - startScan(); - } -}); -{#if !isOverlayActive} -
- - - - - - - -

- Point the camera at the code -

-
-{:else} -
+ - {#if $codeScannedDrawerOpen} - - {:else if $loggedInDrawerOpen} - - {:else if $signingDrawerOpen} - - {:else if $isRevealRequest} - - {/if} -
-{/if} + + + + + + +

+ Point the camera at the code +

+
+ + + + + + + + + + diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte index 393c13bb6..3155f1e0f 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte @@ -3,6 +3,7 @@ import * as Button from "$lib/ui/Button"; import { QrCodeIcon } from "@hugeicons/core-free-icons"; import { HugeiconsIcon } from "@hugeicons/svelte"; +export let isOpen: boolean; export let platform: string | null | undefined; export let hostname: string | null | undefined; export let scannedContent: string | undefined; @@ -11,104 +12,138 @@ export let authError: string | null | undefined; export let authLoading: boolean | undefined; export let onConfirm: () => void; export let onDecline: () => void; +export let onOpenChange: (value: boolean) => void; + +let internalOpen = isOpen; +let lastReportedOpen = internalOpen; + +// Preserve original reactive sync for scanner logic +$: if (isOpen !== internalOpen) { + internalOpen = isOpen; +} + +$: if (internalOpen !== lastReportedOpen) { + lastReportedOpen = internalOpen; + onOpenChange?.(internalOpen); +} -
+{#if internalOpen}
-
- -
+ class="w-full max-w-md flex flex-col gap-4 items-start justify-center" + > +
+
+
+ +
-

Code scanned!

-

You're trying to access the following site

+

Code scanned!

+

+ You're trying to access the following site +

-
-

Platform Name

-

- {platform ?? "Unable to get name"} -

-
+
+

Platform Name

+

+ {platform ?? "Unable to get name"} +

+
-
-

Website URL

-

- {hostname ?? scannedContent} -

-
+
+

Website URL

+

+ {hostname ?? scannedContent} +

+
- {#if authError} -
-
-
- - - + {#if authError} +
+
+
+ + + +
+
+

+ Error +

+
+ {authError} +
+
+
-
-

Error

-
{authError}
-
-
-
- {/if} + {/if} -
- {#if authError} - - Okay - - {:else} - - Decline - - - {#if authLoading} - Authenticating... +
+ {#if authError} + + Okay + {:else} - Confirm + + Decline + + + {#if authLoading} + Authenticating... + {:else} + Confirm + {/if} + {/if} - - {/if} -
+
- {#if isSigningRequest === false} -
-

- After confirmation, you may return to {platform} and continue there -

+ {#if isSigningRequest === false} +
+

+ After confirmation, you may return to {platform} and continue there +

+
+ {/if}
- {/if} -
+
+{/if} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte index 7ce51fb6a..832bdf11b 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte @@ -3,48 +3,63 @@ import * as Button from "$lib/ui/Button"; import { QrCodeIcon } from "@hugeicons/core-free-icons"; import { HugeiconsIcon } from "@hugeicons/svelte"; +export let isOpen: boolean; export let platform: string | null | undefined; export let redirect: string | null | undefined; export let onConfirm: () => void; +export let onOpenChange: (value: boolean) => void; + +let internalOpen = isOpen; +let lastReportedOpen = internalOpen; + +// Preserve your original sync functionality +$: if (isOpen !== internalOpen) { + internalOpen = isOpen; +} + +$: if (internalOpen !== lastReportedOpen) { + lastReportedOpen = internalOpen; + onOpenChange?.(internalOpen); +} -
+{#if internalOpen}
-
- -
+ class="flex justify-center mb-4 relative items-center overflow-hidden bg-gray rounded-xl p-4 h-[72px] w-[72px]" + > +
+
+ +
+ +

You're logged in!

+

You're now connected to {platform}

+ +
+ {#if redirect && platform} +
+

+ You may return to {platform} and continue there +

+
+ {/if} -

You're logged in!

-

- You're now connected to {platform ?? "the platform"} -

- -
- {#if redirect && platform} -
-

- You may return to {platform} and continue there -

-
- {/if} - - - Ok - + + Ok + +
-
+{/if} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte index 2fc24b27c..b61dd9b9a 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte @@ -2,8 +2,10 @@ import * as Button from "$lib/ui/Button"; import { QrCodeIcon } from "@hugeicons/core-free-icons"; import { HugeiconsIcon } from "@hugeicons/svelte"; + import type { RevealedVoteData } from "../scanLogic"; +export let isOpen: boolean; export let revealSuccess: boolean; export let revealedVoteData: RevealedVoteData | null; export let revealPollId: string | null; @@ -11,111 +13,128 @@ export let revealError: string | null; export let isRevealingVote: boolean; export let onCancel: () => void; export let onReveal: () => void; - +export let onOpenChange: (value: boolean) => void; -
- {#if revealSuccess && revealedVoteData} -
-
-
- -
+let internalOpen = isOpen; +let lastReportedOpen = internalOpen; -

Vote Revealed

+// Preserve original reactive sync for scanner logic hardware triggers +$: if (isOpen !== internalOpen) { + internalOpen = isOpen; +} -
-

- You voted for:
- - {revealedVoteData.chosenOption} - -

-

- Poll ID: {revealedVoteData.pollId} -

-
+$: if (internalOpen !== lastReportedOpen) { + lastReportedOpen = internalOpen; + onOpenChange?.(internalOpen); +} + -
- - Okay - -
- {:else} +{#if internalOpen} +
-
-
- -
- -

Reveal Your Blind Vote

-

- You're about to reveal your blind vote for poll:
- {revealPollId} -

+ {#if revealSuccess && revealedVoteData} +
+

+ Vote Decrypted +

+

+ You voted for:
+ {revealedVoteData.chosenOption} +

+
+

+ Poll ID: {revealedVoteData.pollId} +

+
-
-

- Note: This action cannot be undone. It will decrypt - and show your choice locally in this wallet. -

-
+
+ + Okay + +
+ {:else} +
+
+
+ +
- {#if revealError} -
-

- {revealError} +

Reveal Your Blind Vote

+

+ You're about to reveal your blind vote for poll:
+ {revealPollId}

-
- {/if} -
- - Cancel - - - {#if isRevealingVote} - Revealing... - {:else} - Reveal Vote +
+

+ Note: This action will decrypt your choice + locally. This cannot be undone and will be visible on this + screen. +

+
+ + {#if revealError} +
+

+ {revealError} +

+
{/if} -
+ +
+ + Cancel + + + {#if isRevealingVote} + Revealing... + {:else} + Reveal Vote + {/if} + +
+ {/if}
- {/if} -
+
+{/if} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte index 131f2ca75..eab7b8bd9 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte @@ -4,6 +4,7 @@ import { QrCodeIcon } from "@hugeicons/core-free-icons"; import { HugeiconsIcon } from "@hugeicons/svelte"; import type { SigningData } from "../scanLogic"; +export let isOpen: boolean; export let showSigningSuccess: boolean; export let isBlindVotingRequest: boolean; export let signingData: SigningData | null; @@ -17,260 +18,228 @@ export let onSign: () => void; export let onBlindVoteOptionChange: (value: number) => void; export let onSubmitBlindVote: () => void; export let onSuccessOkay: () => void; +export let onOpenChange: (value: boolean) => void; + +let internalOpen = isOpen; +let lastReportedOpen = internalOpen; + +// Preserve original reactive sync for scanner logic +$: if (isOpen !== internalOpen) { + internalOpen = isOpen; +} + +$: if (internalOpen !== lastReportedOpen) { + lastReportedOpen = internalOpen; + onOpenChange?.(internalOpen); +} let hasPollDetails = false; $: hasPollDetails = signingData?.pollId !== undefined && signingData?.pollDetails !== undefined; -
- {#if showSigningSuccess} +{#if internalOpen} +
-
-
- -
- -

- {#if isBlindVotingRequest} - Blind Vote Submitted Successfully! - {:else if signingData?.pollId} - Vote Signed Successfully! - {:else} - Message Signed Successfully! - {/if} -

- -

- {#if isBlindVotingRequest} - Your blind vote has been submitted and is now completely hidden - using cryptographic commitments. - {:else if signingData?.pollId} - Your vote has been signed and submitted to the voting system. - {:else} - Your message has been signed and submitted successfully. - {/if} -

- -
- - Okay - -
- {:else} -
-
-
- -
- -

- {#if isBlindVotingRequest} - Blind Vote Request - {:else if signingData?.pollId} - Sign Vote Request - {:else} - Sign Message Request - {/if} -

- -

- {#if isBlindVotingRequest} - You're being asked to submit a blind vote for the following poll - {:else if signingData?.pollId} - You're being asked to sign a vote for the following poll - {:else} - You're being asked to sign the following message - {/if} -

- - {#if signingData?.pollId && signingData?.voteData} -
-

Poll ID

-

- {signingData?.pollId ?? "Unknown"} -

-
- {:else if isBlindVotingRequest && hasPollDetails} -
- {#if blindVoteError} + {#if showSigningSuccess} +
- - - -
-

- Error -

-
- {blindVoteError} -
-
-
- {/if} - -
-

- {signingData?.pollDetails?.title || "Unknown Poll"} -

-

- Creator: {signingData?.pollDetails?.creatorName || - "Unknown"} -

+ class="bg-green-500 h-[16px] w-[200px] -rotate-45 absolute top-1" + >
+
+
-
- Select your vote: -
- {#each signingData?.pollDetails?.options || [] as option, index} - - {/each} -
-
- - - {#if isSubmittingBlindVote} - Submitting... +

+ {#if isBlindVotingRequest} + Blind Vote Submitted! + {:else if signingData?.pollId} + Vote Signed! {:else} - Submit Blind Vote + Message Signed! + {/if} +

+

+ {#if isBlindVotingRequest} + Your blind vote has been submitted and is now completely + hidden using cryptographic commitments. + {:else if signingData?.pollId} + Your vote has been signed and submitted to the voting + system. + {:else} + Your message has been signed and submitted successfully. {/if} - -

- {:else} -
-

Message

-

- {signingData?.message ?? "No message provided"} -

-
- -
-

Session ID

-

- {signingData?.sessionId?.slice(0, 8) ?? "Unknown"}...

-
- - {#if signingError} -
- - - -
-

Error

-
{signingError}
-
-
- {/if} - {/if} -
- {#if !isBlindVotingRequest} - {#if signingError} +
Okay +
+ {:else} +
+
+
+ +
+ +

+ {#if isBlindVotingRequest} + Blind Vote Request + {:else if signingData?.pollId} + Sign Vote Request + {:else} + Sign Message Request + {/if} +

+

+ {#if isBlindVotingRequest} + You're being asked to submit a blind vote for the + following poll + {:else if signingData?.pollId} + You're being asked to sign a vote for the following poll + {:else} + You're being asked to sign the following message + {/if} +

+ + {#if signingData?.pollId && signingData?.voteData} +
+

+ Poll ID +

+

+ {signingData?.pollId ?? "Unknown"} +

+
+ {:else if isBlindVotingRequest && hasPollDetails} +
+

+ Poll: {signingData?.pollDetails?.title || "Unknown"} +

+ + {#if blindVoteError} +
+ {blindVoteError} +
+ {/if} + +
+ {#each signingData?.pollDetails?.options || [] as option, index} + + {/each} +
+ + +
{:else} - - Decline - - +

+ Message +

+

+ {signingData?.message ?? "No message provided"} +

+
+ {/if} + + {#if signingError} +
- {#if loading} - Signing... - {:else if signingData?.pollId} - Sign Vote + {signingError} +
+ {/if} + +
+ {#if !isBlindVotingRequest} + {#if signingError} + Okay {:else} - Sign Message + Decline + + {loading + ? "Signing..." + : signingData?.pollId + ? "Sign Vote" + : "Sign Message"} + {/if} - - {/if} + {/if} +
{/if}
- {/if} -
+
+{/if} From 66fad6e58266d92d660c897ca67eded6d03142d7 Mon Sep 17 00:00:00 2001 From: gourav Date: Wed, 7 Jan 2026 10:45:30 +0530 Subject: [PATCH 06/22] fix: styling of the drawers --- .../scan-qr/components/AuthDrawer.svelte | 211 +++++++++--------- .../scan-qr/components/LoggedInDrawer.svelte | 71 +++--- 2 files changed, 149 insertions(+), 133 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte index 3155f1e0f..08379e265 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte @@ -17,7 +17,6 @@ export let onOpenChange: (value: boolean) => void; let internalOpen = isOpen; let lastReportedOpen = internalOpen; -// Preserve original reactive sync for scanner logic $: if (isOpen !== internalOpen) { internalOpen = isOpen; } @@ -29,121 +28,127 @@ $: if (internalOpen !== lastReportedOpen) { {#if internalOpen} -
+
-
+
-
- -
- -

Code scanned!

-

- You're trying to access the following site -

+ class="flex justify-center mb-4 relative items-center overflow-hidden bg-gray rounded-xl p-4 h-[72px] w-[72px]" + > +
+
+ +
-
-

Platform Name

-

- {platform ?? "Unable to get name"} +

Code scanned!

+

+ You're trying to access the following site

-
-
-

Website URL

-

- {hostname ?? scannedContent} -

-
+
+
+

Platform Name

+

+ {platform ?? "Unable to get name"} +

+
- {#if authError} -
-
-
- - - -
-
-

- Error -

-
- {authError} +
+

Website URL

+

+ {hostname ?? scannedContent} +

+
+ + {#if authError} +
+
+
+ + + +
+
+

+ Error +

+
+ {authError} +
+
-
+ {/if}
- {/if} - -
- {#if authError} - - Okay - - {:else} - - Decline - - - {#if authLoading} - Authenticating... - {:else} - Confirm - {/if} - - {/if}
- {#if isSigningRequest === false} -
-

- After confirmation, you may return to {platform} and continue there -

+
+
+ {#if authError} + + Okay + + {:else} + + Decline + + + {#if authLoading} + Authenticating... + {:else} + Confirm + {/if} + + {/if}
- {/if} + + {#if isSigningRequest === false} +
+

+ After confirmation, you may return to {platform} and continue there +

+
+ {/if} +
{/if} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte index 832bdf11b..d04859aed 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte @@ -12,7 +12,6 @@ export let onOpenChange: (value: boolean) => void; let internalOpen = isOpen; let lastReportedOpen = internalOpen; -// Preserve your original sync functionality $: if (isOpen !== internalOpen) { internalOpen = isOpen; } @@ -25,41 +24,53 @@ $: if (internalOpen !== lastReportedOpen) { {#if internalOpen}
-
-
- -
- -

You're logged in!

-

You're now connected to {platform}

+
+
+
+
+ +
-
- {#if redirect && platform} -
-

- You may return to {platform} and continue there -

+

You're logged in!

+

You're now connected to {platform}

+
+ {#if redirect && platform} +
+

+ You may return to {platform} and + continue there +

+
+ {/if}
- {/if} +
- - Ok - +
+ + Ok + +
{/if} From ff6f753fdcb529599bcb2384c47d51faa0295da1 Mon Sep 17 00:00:00 2001 From: gourav Date: Wed, 7 Jan 2026 13:47:11 +0530 Subject: [PATCH 07/22] fix: design of drawers --- .../scan-qr/components/RevealDrawer.svelte | 186 ++++++----- .../scan-qr/components/SigningDrawer.svelte | 289 +++++++++--------- 2 files changed, 251 insertions(+), 224 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte index b61dd9b9a..b6f85afb6 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte @@ -2,7 +2,6 @@ import * as Button from "$lib/ui/Button"; import { QrCodeIcon } from "@hugeicons/core-free-icons"; import { HugeiconsIcon } from "@hugeicons/svelte"; - import type { RevealedVoteData } from "../scanLogic"; export let isOpen: boolean; @@ -18,7 +17,6 @@ export let onOpenChange: (value: boolean) => void; let internalOpen = isOpen; let lastReportedOpen = internalOpen; -// Preserve original reactive sync for scanner logic hardware triggers $: if (isOpen !== internalOpen) { internalOpen = isOpen; } @@ -30,111 +28,139 @@ $: if (internalOpen !== lastReportedOpen) { {#if internalOpen} -
+
- {#if revealSuccess && revealedVoteData} +
-

- Vote Decrypted -

-

- You voted for:
- {revealedVoteData.chosenOption} -

-
-

- Poll ID: {revealedVoteData.pollId} -

-
- -
- - Okay - -
- {:else} -
-

Reveal Your Blind Vote

-

- You're about to reveal your blind vote for poll:
- {revealPollId} -

+ {#if revealSuccess && revealedVoteData} +

+ Vote Decrypted +

+

+ Your selection has been successfully retrieved. +

-
-

- Note: This action will decrypt your choice - locally. This cannot be undone and will be visible on this - screen. +

+
+

+ Selection +

+

+ {revealedVoteData.chosenOption} +

+
+

+ Poll ID: {revealedVoteData.pollId} +

+
+
+ {:else} +

Reveal Your Blind Vote

+

+ You're about to reveal your choice for poll:

-
- {#if revealError} -
-

- {revealError} -

+
+
+

+ Poll ID +

+

+ {revealPollId ?? "Unknown"} +

+
+ +
+

+ Note: This action will decrypt your + choice locally. This cannot be undone and will be + visible on this screen. +

+
+ + {#if revealError} +
+

+ {revealError} +

+
+ {/if}
{/if} +
-
- - Cancel - +
+ {#if revealSuccess} - {#if isRevealingVote} - Revealing... - {:else} - Reveal Vote - {/if} + Okay -
- {/if} + {:else} +
+ + Cancel + + + {isRevealingVote ? "Revealing..." : "Reveal"} + +
+ {/if} +
{/if} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte index eab7b8bd9..a0a5b6a55 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte @@ -23,7 +23,6 @@ export let onOpenChange: (value: boolean) => void; let internalOpen = isOpen; let lastReportedOpen = internalOpen; -// Preserve original reactive sync for scanner logic $: if (isOpen !== internalOpen) { internalOpen = isOpen; } @@ -39,91 +38,70 @@ $: hasPollDetails = {#if internalOpen} -
+
- {#if showSigningSuccess} +
-

- {#if isBlindVotingRequest} - Blind Vote Submitted! - {:else if signingData?.pollId} - Vote Signed! - {:else} - Message Signed! - {/if} -

-

- {#if isBlindVotingRequest} - Your blind vote has been submitted and is now completely - hidden using cryptographic commitments. - {:else if signingData?.pollId} - Your vote has been signed and submitted to the voting - system. - {:else} - Your message has been signed and submitted successfully. - {/if} -

- -
- - Okay - -
- {:else} -
-
-
- -
- -

- {#if isBlindVotingRequest} - Blind Vote Request - {:else if signingData?.pollId} - Sign Vote Request + {#if showSigningSuccess} + {isBlindVotingRequest + ? "Blind Vote Submitted!" + : signingData?.pollId + ? "Vote Signed!" + : "Message Signed!"} {:else} - Sign Message Request + {isBlindVotingRequest + ? "Blind Vote Request" + : signingData?.pollId + ? "Sign Vote Request" + : "Sign Message Request"} {/if}

-

- {#if isBlindVotingRequest} + +

+ {#if showSigningSuccess} + {#if isBlindVotingRequest} + Your blind vote has been submitted and is now + completely hidden using cryptographic commitments. + {:else if signingData?.pollId} + Your vote has been signed and submitted to the + voting system. + {:else} + Your message has been signed and submitted + successfully. + {/if} + {:else if isBlindVotingRequest} You're being asked to submit a blind vote for the following poll {:else if signingData?.pollId} @@ -133,97 +111,120 @@ $: hasPollDetails = {/if}

- {#if signingData?.pollId && signingData?.voteData} -
-

- Poll ID -

-

- {signingData?.pollId ?? "Unknown"} -

-
- {:else if isBlindVotingRequest && hasPollDetails} -
-

- Poll: {signingData?.pollDetails?.title || "Unknown"} -

- - {#if blindVoteError} -
- {blindVoteError} +
+ {#if !showSigningSuccess} + {#if signingData?.pollId && signingData?.voteData} +
+

+ Poll ID +

+

+ {signingData?.pollId ?? "Unknown"} +

- {/if} + {:else if isBlindVotingRequest && hasPollDetails} +
+

+ Poll: {signingData?.pollDetails?.title || + "Unknown"} +

+ + {#if blindVoteError} +
+ {blindVoteError} +
+ {/if} -
- {#each signingData?.pollDetails?.options || [] as option, index} -
+
+ {:else} +
+

- - onBlindVoteOptionChange(index)} - class="mr-3 h-4 w-4" - /> - {option} - - {/each} - + Message +

+

+ {signingData?.message ?? + "No message provided"} +

+
+ {/if} + {/if} - -
- {:else} -
-

- Message -

-

- {signingData?.message ?? "No message provided"} -

-
- {/if} + {signingError} +
+ {/if} +
+
- {#if signingError} -
+ {#if showSigningSuccess} + - {signingError} -
- {/if} - -
- {#if !isBlindVotingRequest} + Okay + + {:else if isBlindVotingRequest && hasPollDetails} + + {:else} +
{#if signingError} Okay + Okay + {:else} Decline + Decline + {/if} - {/if} -
- {/if} +
+ {/if} +
{/if} From 479f23f565251e9a9bfba49f8ef8b6ec4d1ddfc8 Mon Sep 17 00:00:00 2001 From: gourav Date: Wed, 7 Jan 2026 15:26:53 +0530 Subject: [PATCH 08/22] fix: design change tables added to show data --- .../scan-qr/components/AuthDrawer.svelte | 108 +++++---- .../scan-qr/components/RevealDrawer.svelte | 40 ++-- .../scan-qr/components/SigningDrawer.svelte | 212 ++++++++++-------- 3 files changed, 206 insertions(+), 154 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte index 08379e265..b07a2fc17 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/AuthDrawer.svelte @@ -52,60 +52,80 @@ $: if (internalOpen !== lastReportedOpen) {

Code scanned!

-

- You're trying to access the following site +

+ Please review the connection details below.

-
-
-

Platform Name

-

- {platform ?? "Unable to get name"} -

-
- -
-

Website URL

-

- {hostname ?? scannedContent} -

-
+
+ + + + + - {#if authError} -
-
-
- + +
- - -
-
-

+
- Error -

-
- {authError} + {hostname ?? scannedContent}
+ + +
+
+
+ Platform Name +
+
+ {platform ?? "Unable to get name"} +
+
+
+ + {#if authError} +
+
+
+ + + +
+
+

+ Error +

+
+ {authError}
- {/if} -
+
+ {/if}
-
+
{#if authError} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte index b6f85afb6..e0c547f82 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/RevealDrawer.svelte @@ -72,7 +72,7 @@ $: if (internalOpen !== lastReportedOpen) { class="bg-green-50 rounded-2xl p-6 border border-green-200 w-full text-left" >

Selection

@@ -92,21 +92,31 @@ $: if (internalOpen !== lastReportedOpen) { {:else}

Reveal Your Blind Vote

- You're about to reveal your choice for poll: + Please review the request details below.

-
-

- Poll ID -

-

- {revealPollId ?? "Unknown"} -

+
+ + + + + + +
+
+ Poll ID +
+
+ {revealPollId ?? "Unknown"} +
+
-
+
{#if revealSuccess} diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte index a0a5b6a55..48182e618 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/SigningDrawer.svelte @@ -91,111 +91,137 @@ $: hasPollDetails =

{#if showSigningSuccess} - {#if isBlindVotingRequest} - Your blind vote has been submitted and is now - completely hidden using cryptographic commitments. - {:else if signingData?.pollId} - Your vote has been signed and submitted to the - voting system. - {:else} - Your message has been signed and submitted - successfully. - {/if} - {:else if isBlindVotingRequest} - You're being asked to submit a blind vote for the - following poll - {:else if signingData?.pollId} - You're being asked to sign a vote for the following poll + Your request was processed successfully. {:else} - You're being asked to sign the following message + Please review the details below before proceeding. {/if}

-
- {#if !showSigningSuccess} - {#if signingData?.pollId && signingData?.voteData} -
-

- Poll ID -

-

- {signingData?.pollId ?? "Unknown"} -

-
- {:else if isBlindVotingRequest && hasPollDetails} -
-

- Poll: {signingData?.pollDetails?.title || - "Unknown"} -

+
+ + + {#if signingData?.pollId} + + + + {/if} - {#if blindVoteError} -
- {blindVoteError} -
- {/if} + {#if isBlindVotingRequest && hasPollDetails} + + + + {/if} -
- {#each signingData?.pollDetails?.options || [] as option, index} -
+ + + + + {/if} + +
+
+ Poll ID +
+
+ {signingData.pollId} +
+
+
+ Poll Title +
+
+ {signingData?.pollDetails?.title} +
+
+
- - onBlindVoteOptionChange( - index, - )} - class="mr-3 h-4 w-4" - /> - {option} - - {/each} - -
- {:else} -
-

- Message -

-

- {signingData?.message ?? - "No message provided"} -

+ Message +
+
+ {signingData.message} +
+
+
+ Session Id +
+
+ {signingData?.sessionId} +
+
+
+ + {#if !showSigningSuccess && isBlindVotingRequest && hasPollDetails} +
+

+ Select Option +

+ {#if blindVoteError} +
+ {blindVoteError}
{/if} - {/if} +
+ {#each signingData?.pollDetails?.options || [] as option, index} + + {/each} +
+
+ {/if} - {#if signingError} -
- {signingError} -
- {/if} -
+ {#if signingError} +
+ {signingError} +
+ {/if}
-
+
{#if showSigningSuccess} Okay - Okay - {:else if isBlindVotingRequest && hasPollDetails}

You're logged in!

-

You're now connected to {platform}

+

+ You're now connected to {platform ?? "the platform"} +

{#if redirect && platform}
From e776cd8ddbaa998809008dc5eb1e1dfaec222993 Mon Sep 17 00:00:00 2001 From: gourav Date: Thu, 8 Jan 2026 11:19:32 +0530 Subject: [PATCH 11/22] fix: button --- .../scan-qr/components/LoggedInDrawer.svelte | 34 +++++++++---------- .../src/routes/(protected)/+layout.svelte | 4 +-- .../(protected)/group/[id]/+page.svelte | 8 ++--- .../routes/(protected)/messages/+page.svelte | 4 +-- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte index 7a6fb7212..09a2e1bd7 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte @@ -1,25 +1,25 @@ {#if internalOpen} diff --git a/platforms/pictique/src/routes/(protected)/+layout.svelte b/platforms/pictique/src/routes/(protected)/+layout.svelte index 63dd40ce0..2de8e230f 100644 --- a/platforms/pictique/src/routes/(protected)/+layout.svelte +++ b/platforms/pictique/src/routes/(protected)/+layout.svelte @@ -197,8 +197,8 @@ core concepts of the W3DS ecosystem.

- It is not a production-grade platform and may lack full reliability, performance, - and security guarantees. + It is not a production-grade platform and may lack full reliability, performance, and + security guarantees.

We strongly recommend that you avoid sharing sensitive or private content, diff --git a/platforms/pictique/src/routes/(protected)/group/[id]/+page.svelte b/platforms/pictique/src/routes/(protected)/group/[id]/+page.svelte index 3db8438df..76048abff 100644 --- a/platforms/pictique/src/routes/(protected)/group/[id]/+page.svelte +++ b/platforms/pictique/src/routes/(protected)/group/[id]/+page.svelte @@ -156,13 +156,13 @@ {@const nextMessage = index < messages.length - 1 ? messages[index + 1] : null} {@const isHeadNeeded = Boolean( !prevMessage || - prevMessage.isOwn !== msg.isOwn || - (prevMessage.senderId && msg.senderId && prevMessage.senderId !== msg.senderId) + prevMessage.isOwn !== msg.isOwn || + (prevMessage.senderId && msg.senderId && prevMessage.senderId !== msg.senderId) )} {@const isTimestampNeeded = Boolean( !nextMessage || - nextMessage.isOwn !== msg.isOwn || - (nextMessage.senderId && msg.senderId && nextMessage.senderId !== msg.senderId) + nextMessage.isOwn !== msg.isOwn || + (nextMessage.senderId && msg.senderId && nextMessage.senderId !== msg.senderId) )}

{signingData?.pollDetails?.title}
@@ -146,7 +146,7 @@ Message
{signingData.message}
@@ -160,7 +160,7 @@ Session Id
{signingData?.sessionId}
From ff1db0e04a1e46a7992b531a3667b31653c8c944 Mon Sep 17 00:00:00 2001 From: gourav Date: Thu, 8 Jan 2026 12:25:41 +0530 Subject: [PATCH 17/22] fix: code rabbit suggestions --- .../scan-qr/components/LoggedInDrawer.svelte | 7 ++++++- .../(app)/scan-qr/components/SigningDrawer.svelte | 15 +++++++++++++-- platforms/group-charter-manager/next-env.d.ts | 6 ------ 3 files changed, 19 insertions(+), 9 deletions(-) delete mode 100644 platforms/group-charter-manager/next-env.d.ts diff --git a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte index 10c381b17..bf198e5a8 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/scan-qr/components/LoggedInDrawer.svelte @@ -24,6 +24,9 @@ $: if (internalOpen !== lastReportedOpen) { {#if internalOpen}