diff --git a/ceremony/src/lib/components/Install.svelte b/ceremony/src/lib/components/Install.svelte index 2c631250f2..0142408dd8 100644 --- a/ceremony/src/lib/components/Install.svelte +++ b/ceremony/src/lib/components/Install.svelte @@ -12,9 +12,9 @@ const copy = () => {
+
-
+
$
diff --git a/ceremony/src/lib/supabase/index.ts b/ceremony/src/lib/supabase/index.ts
index 60709bec3d..a78daefb57 100644
--- a/ceremony/src/lib/supabase/index.ts
+++ b/ceremony/src/lib/supabase/index.ts
@@ -2,10 +2,32 @@ import { user } from "$lib/stores/user.svelte.ts"
import {
getContribution,
getContributor,
+ getQueueCount,
getSubmittedContribution,
getUserQueuePosition
} from "$lib/supabase/queries.ts"
import type { ContributionStatus } from "$lib/supabase/types.ts"
+import { supabase } from "$lib/supabase/client.ts"
+
+export const callJoinQueue = async (codeId: string) => {
+ const userId = user.session?.user.id
+ if (!userId) {
+ throw new Error("User is not logged in")
+ }
+
+ try {
+ const { data, error } = await supabase.rpc("join_queue", { code_id: codeId })
+
+ if (error) {
+ console.error("Error calling join_queue:", error)
+ return
+ }
+
+ console.log("Successfully joined queue:", data)
+ } catch (error) {
+ console.error("Unexpected error:", error)
+ }
+}
export const getUserQueueInfo = async () => {
const userId = user.session?.user.id
@@ -13,7 +35,8 @@ export const getUserQueueInfo = async () => {
throw new Error("User is not logged in")
}
- const { data, count, error } = await getUserQueuePosition(userId)
+ const { data, error } = await getUserQueuePosition(userId)
+ const { count, error: countError } = await getQueueCount()
if (error) {
console.error("Error getting user queue position:", error)
diff --git a/ceremony/src/lib/supabase/queries.ts b/ceremony/src/lib/supabase/queries.ts
index 40d2e986bd..2bcd9c5ba8 100644
--- a/ceremony/src/lib/supabase/queries.ts
+++ b/ceremony/src/lib/supabase/queries.ts
@@ -34,11 +34,7 @@ export const getContribution = async (userId: string) => {
}
export const getUserQueuePosition = async (userId: string) => {
- const { data, error, count } = await supabase
- .from("current_queue")
- .select("*", { count: "exact" })
- .eq("id", userId)
- .single()
+ const { data, error } = await supabase.from("current_queue").select("*").eq("id", userId).single()
if (error) {
if (error.code === "PGRST116") {
@@ -48,7 +44,7 @@ export const getUserQueuePosition = async (userId: string) => {
return { data: undefined, error }
}
- return { data, count, error: undefined }
+ return { data, error: undefined }
}
export const getQueueCount = async () => {
diff --git a/ceremony/src/routes/+layout.svelte b/ceremony/src/routes/+layout.svelte
index fddec4a7c5..1c92247467 100644
--- a/ceremony/src/routes/+layout.svelte
+++ b/ceremony/src/routes/+layout.svelte
@@ -63,7 +63,7 @@ onMount(() => {
}
app
- .load("https://draft.spline.design/r6WgY2-52aHVU2TZ/scene.splinecode")
+ .load("https://prod.spline.design/6An57q5Kr37gF2k0/scene.splinecode")
.then(splineScene => {
loading = false
})
@@ -93,7 +93,7 @@ const queryClient = new QueryClient()
diff --git a/ceremony/src/routes/app/+page.svelte b/ceremony/src/routes/app/+page.svelte
index ab940adadd..e8ab2dbd49 100644
--- a/ceremony/src/routes/app/+page.svelte
+++ b/ceremony/src/routes/app/+page.svelte
@@ -6,7 +6,6 @@ import Spinner from "$lib/components/Spinner.svelte"
import { reactiveQueryArgs } from "$lib/utils/utils.svelte.ts"
import H2 from "$lib/components/typography/H2.svelte"
import { checkContributionStatus, getUserQueueInfo } from "$lib/supabase"
-import Button from "$lib/components/Button.svelte"
import { checkStatus, start } from "$lib/client"
import Install from "$lib/components/Install.svelte"
@@ -46,18 +45,19 @@ let {
} = $derived($contributionQuery)
let { data: client, isLoading: clientLoading, error: clientError } = $derived($clientQuery)
-//TODO SAVE IN LOCAL STORAGE AND ADD INFO TEXT ABOUT HAVING THE BROWSER OPEN
-let auto = $state(false)
-
+// this calls contribute every query now, we can add a check so if downloading, uploading or contributing we stop it.
+// but the client will return 503 if you try after it started.
+// handle empty contribution and after expire
$effect(() => {
- if (auto) {
- if (contribute?.canContribute && contribute?.shouldContribute) {
- if (client) {
- start()
- }
- }
+ if (contribute?.canContribute && contribute?.shouldContribute && client) {
+ start()
}
})
+
+window.addEventListener("beforeunload", (e: BeforeUnloadEvent) => {
+ e.preventDefault()
+ e.returnValue = ""
+})
@@ -65,33 +65,25 @@ $effect(() => {
USER: {user?.session?.user.email}
-
-
{#if queueLoading}
- {:else if queue.inQueue}
+ {:else if queue?.inQueue}
You are in queue
- Position: {queue.position}/{queue.count + 1}
+ Position: {queue?.position}/{queue?.count}
- {:else if contribute?.canContribute && contribute?.shouldContribute}
+ {:else if !contribute?.canContribute && !contribute?.shouldContribute}
{#if clientError}
Client connected?
-
+
{:else if clientLoading}
{:else if client}
{client.status}
-
{:else}
Waiting for client...
{/if}
- Auto contribute
{:else if contribute?.isVerifying}
@@ -103,4 +95,4 @@ $effect(() => {
{/if}
-