From 8705d07b88cebb24abeff192a679010855337f8c Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 26 Sep 2024 01:48:16 +0200 Subject: [PATCH] feat(ceremony): save terminal progress --- .../components/Terminal/Contributors.svelte | 27 ++++++---------- .../Terminal/Install/SelectOS.svelte | 19 +++++------- .../src/lib/components/Terminal/Thanks.svelte | 16 ++++------ .../src/lib/components/Terminal/index.svelte | 31 ++++++------------- ceremony/src/lib/state/contributor.svelte.ts | 12 +------ ceremony/src/lib/state/terminal.svelte.ts | 2 -- ceremony/src/lib/supabase/index.ts | 2 +- .../src/routes/0____0/[hash]/+page.svelte | 2 +- 8 files changed, 36 insertions(+), 75 deletions(-) diff --git a/ceremony/src/lib/components/Terminal/Contributors.svelte b/ceremony/src/lib/components/Terminal/Contributors.svelte index f858ea05421..dac9439e79d 100644 --- a/ceremony/src/lib/components/Terminal/Contributors.svelte +++ b/ceremony/src/lib/components/Terminal/Contributors.svelte @@ -27,23 +27,16 @@ onMount(() => { unsubscribe = terminal.keys.subscribe(event => { if (event) { if (event.type === "keydown") { - switch (event.key) { - case "ArrowUp": { - selectedIndex = - (selectedIndex - 1 + contributions.data.length) % contributions.data.length - buttons[selectedIndex]?.focus() - break - } - case "ArrowDown": { - selectedIndex = (selectedIndex + 1) % contributions.data.length - buttons[selectedIndex]?.focus() - break - } - case "Enter": { - if (buttons[selectedIndex]) { - fireEvent(contributions.data[selectedIndex]) - } - break + if (event.key === "ArrowUp") { + selectedIndex = + (selectedIndex - 1 + contributions.data.length) % contributions.data.length + buttons[selectedIndex]?.focus() + } else if (event.key === "ArrowDown") { + selectedIndex = (selectedIndex + 1) % contributions.data.length + buttons[selectedIndex]?.focus() + } else if (event.key === "Enter") { + if (buttons[selectedIndex]) { + fireEvent(contributions.data[selectedIndex]) } } } diff --git a/ceremony/src/lib/components/Terminal/Install/SelectOS.svelte b/ceremony/src/lib/components/Terminal/Install/SelectOS.svelte index f0a761fe9a7..a567f55f3cf 100644 --- a/ceremony/src/lib/components/Terminal/Install/SelectOS.svelte +++ b/ceremony/src/lib/components/Terminal/Install/SelectOS.svelte @@ -22,18 +22,13 @@ onMount(() => { function handleKeyDown(event: KeyEvent) { if (event.type === "keydown") { - switch (event.key) { - case "ArrowUp": - currentFocusIndex = (currentFocusIndex - 1 + selections.length) % selections.length - break - case "ArrowDown": - currentFocusIndex = (currentFocusIndex + 1) % selections.length - break - case "Enter": { - showButtons = false - select(selections[currentFocusIndex]) - break - } + if (event.key === "ArrowUp") { + currentFocusIndex = (currentFocusIndex - 1 + selections.length) % selections.length + } else if (event.key === "ArrowDown") { + currentFocusIndex = (currentFocusIndex + 1) % selections.length + } else if (event.key === "Enter") { + showButtons = false + select(selections[currentFocusIndex]) } } } diff --git a/ceremony/src/lib/components/Terminal/Thanks.svelte b/ceremony/src/lib/components/Terminal/Thanks.svelte index b6e39f1a034..47cdb4399e3 100644 --- a/ceremony/src/lib/components/Terminal/Thanks.svelte +++ b/ceremony/src/lib/components/Terminal/Thanks.svelte @@ -28,16 +28,12 @@ onMount(() => { unsubscribe = terminal.keys.subscribe(event => { if (event) { if (event.type === "keydown" && terminal.tab === 1) { - switch (event.key) { - case "ArrowUp": - selectedButton = (selectedButton - 1 + buttons.length) % buttons.length - break - case "ArrowDown": - selectedButton = (selectedButton + 1) % buttons.length - break - case "Enter": - triggerAction(selectedButton) - break + if (event.key === "ArrowUp") { + selectedButton = (selectedButton - 1 + buttons.length) % buttons.length + } else if (event.key === "ArrowDown") { + selectedButton = (selectedButton + 1) % buttons.length + } else if (event.key === "Enter") { + triggerAction(selectedButton) } } } diff --git a/ceremony/src/lib/components/Terminal/index.svelte b/ceremony/src/lib/components/Terminal/index.svelte index 98c2eba61d6..344d91a7d8c 100644 --- a/ceremony/src/lib/components/Terminal/index.svelte +++ b/ceremony/src/lib/components/Terminal/index.svelte @@ -27,27 +27,16 @@ const changeTab = async (tab: number) => { const unsubscribe = terminal.keys.subscribe(event => { if (event) { if (event.type === "keydown" && (event.shiftKey || event.ctrlKey)) { - switch (event.key) { - case "!": { - changeTab(1) - break - } - case "@": { - changeTab(2) - break - } - case "#": { - changeTab(3) - break - } - case "$": { - changeTab(4) - break - } - case "X": { - logout(terminal) - break - } + if (event.key === "!") { + changeTab(1) + } else if (event.key === "@") { + changeTab(2) + } else if (event.key === "#") { + changeTab(3) + } else if (event.key === "$") { + changeTab(4) + } else if (event.key === "X") { + logout(terminal) } } } diff --git a/ceremony/src/lib/state/contributor.svelte.ts b/ceremony/src/lib/state/contributor.svelte.ts index 2067022c03b..81aa2653700 100644 --- a/ceremony/src/lib/state/contributor.svelte.ts +++ b/ceremony/src/lib/state/contributor.svelte.ts @@ -142,20 +142,10 @@ export class Contributor { } this.pollingState = "stopped" - this.stopClientStatePolling() this.stopQueueInfoPolling() this.stopContributionStatePolling() } - - private stopClientStatePolling() { - if (this.pollIntervals.client) { - clearInterval(this.pollIntervals.client) - this.pollIntervals.client = null - } - } - - private startQueueInfoPolling() { this.pollQueueInfo() this.pollIntervals.queue = setInterval( @@ -206,7 +196,6 @@ export class Contributor { } } - private updateQueueInfo(queueInfo: QueueInfoResult) { if (queueInfo.inQueue) { this.queueState = { @@ -238,6 +227,7 @@ export class Contributor { private updateState() { if (this.contributionState === "contribute") { + this.state = "contribute" } else if (this.queueState.position !== null) { this.state = "inQueue" } else if (this.contributionState === "contributed") { diff --git a/ceremony/src/lib/state/terminal.svelte.ts b/ceremony/src/lib/state/terminal.svelte.ts index c4a71c68f68..dd126dfe6d5 100644 --- a/ceremony/src/lib/state/terminal.svelte.ts +++ b/ceremony/src/lib/state/terminal.svelte.ts @@ -76,8 +76,6 @@ export class Terminal { setContribution(contribution: any) { this.contribution = contribution } - - private updateState() {} } const TERMINAL_KEY = Symbol("TERMINAL") diff --git a/ceremony/src/lib/supabase/index.ts b/ceremony/src/lib/supabase/index.ts index fc0295fe2fd..346d97fd99f 100644 --- a/ceremony/src/lib/supabase/index.ts +++ b/ceremony/src/lib/supabase/index.ts @@ -121,11 +121,11 @@ export const getCurrentUserState = async (userId: string | undefined): Promise { diff --git a/ceremony/src/routes/0____0/[hash]/+page.svelte b/ceremony/src/routes/0____0/[hash]/+page.svelte index 321924d41be..22d108b5a92 100644 --- a/ceremony/src/routes/0____0/[hash]/+page.svelte +++ b/ceremony/src/routes/0____0/[hash]/+page.svelte @@ -10,7 +10,7 @@ const { terminal } = getState() let hash = $derived($page.params.hash) -onMount(async () => { +onMount(() => { terminal.setTab(4) terminal.setHash(hash) })