diff options
Diffstat (limited to 'src/lib/socket.js')
| -rw-r--r-- | src/lib/socket.js | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/lib/socket.js b/src/lib/socket.js index 6aa5498c..98d42ead 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -1,6 +1,7 @@ +import { navigating } from "$app/stores"; import { get } from "svelte/store"; import { event, invoice, request, newPayment, last } from "$lib/store"; -import { success, sat } from "$lib/utils"; +import { success, sat, sleep } from "$lib/utils"; import { PUBLIC_SOCKET } from "$env/static/public"; import { invalidate } from "$app/navigation"; import { browser } from "$app/environment"; @@ -33,13 +34,9 @@ export const messages = (data) => ({ async payment() { let { amount, confirmed } = data; - // without setTimeout, invalidate seems to break redirections from actions - let delay = amount > 0 ? 0 : 2500; - setTimeout(() => { - invalidate("app:user"); - invalidate("app:invoice"); - invalidate("app:payments"); - }, delay); + invalidate("app:user"); + invalidate("app:invoice"); + invalidate("app:payments"); if (amount > 0) { success(`${confirmed ? "Received" : "Detected"} ${sat(amount)}!`); @@ -69,8 +66,10 @@ export function close() { if (socket) socket.close(); } -function onWebsocketMessage(msg) { +async function onWebsocketMessage(msg) { let { type, data } = JSON.parse(msg.data); + if (get(navigating)) await sleep(2000); + messages(data)[type] && messages(data)[type](); } |
