From b8aa7709e8a43017eb9c705033ea8702364ff6f7 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 11 Oct 2024 22:56:28 -0700 Subject: socket improvements --- src/lib/socket.ts | 18 ++++++++++++------ src/routes/(app)/[username]/(profile)/+page.svelte | 6 +++--- src/routes/(app)/invoice/[id]/+page.svelte | 22 ++++++++++------------ src/routes/(app)/invoice/[id]/tip/+page.svelte | 1 - 4 files changed, 25 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/lib/socket.ts b/src/lib/socket.ts index c82810c9..26ab543c 100644 --- a/src/lib/socket.ts +++ b/src/lib/socket.ts @@ -1,17 +1,24 @@ import { navigating } from "$app/stores"; import { get } from "svelte/store"; import { event, invoice, request, last } from "$lib/store"; -import { success, sat, sleep } from "$lib/utils"; +import { success, sat, sleep, wait } from "$lib/utils"; import { PUBLIC_SOCKET } from "$env/static/public"; import { invalidate } from "$app/navigation"; -let socket, token; +let socket; +let token; export const auth = () => token && send("login", token); -export const send = (type, data) => { - socket?.readyState === 1 && socket.send(JSON.stringify({ type, data })); - return true; +export const send = async (type, data) => { + try { + await wait(() => socket && socket.readyState === 1, 100, 10); + } catch (e: any) { + if (e.message === "timeout") reconnectToWebsocket(); + } + + await wait(() => socket.readyState === 1, 100, 10); + socket.send(JSON.stringify({ type, data })); }; export const messages = (data) => ({ @@ -32,7 +39,6 @@ export const messages = (data) => ({ async payment() { let { amount, confirmed } = data; - invalidate("app:user"); invalidate("app:invoice"); invalidate("app:payments"); diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index 94ef439a..c95bb64c 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -93,11 +93,11 @@ class="contents" > diff --git a/src/routes/(app)/invoice/[id]/+page.svelte b/src/routes/(app)/invoice/[id]/+page.svelte index b59b3f77..5495e118 100644 --- a/src/routes/(app)/invoice/[id]/+page.svelte +++ b/src/routes/(app)/invoice/[id]/+page.svelte @@ -1,17 +1,7 @@