From 998c48b1d3aab1def072fc2f2c0c0c0712ba0b1e Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 5 Sep 2025 17:32:01 -0700 Subject: [PATCH] Wait for thunk errors --- src/app/components/AlertAdd.svelte | 4 ++-- src/app/components/RoomCreate.svelte | 8 ++++---- src/app/components/SignUpComplete.svelte | 3 +++ src/app/core/commands.ts | 4 ++-- src/routes/spaces/[relay]/[room]/+page.svelte | 6 +++--- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/app/components/AlertAdd.svelte b/src/app/components/AlertAdd.svelte index 07e6b59c..9dadde51 100644 --- a/src/app/components/AlertAdd.svelte +++ b/src/app/components/AlertAdd.svelte @@ -14,7 +14,7 @@ } from "@welshman/util" import type {Filter} from "@welshman/util" import {makeIntersectionFeed, makeRelayFeed, feedFromFilters} from "@welshman/feeds" - import {pubkey, signer, getThunkError} from "@welshman/app" + import {pubkey, signer, waitForThunkError} from "@welshman/app" import Icon from "@lib/components/Icon.svelte" import Button from "@lib/components/Button.svelte" import FieldInline from "@lib/components/FieldInline.svelte" @@ -145,7 +145,7 @@ await attemptAuth(NOTIFIER_RELAY) const thunk = await publishAlert(params) - const error = await getThunkError(thunk) + const error = await waitForThunkError(thunk) if (error) { return pushToast({ diff --git a/src/app/components/RoomCreate.svelte b/src/app/components/RoomCreate.svelte index 797d1367..7b4640d0 100644 --- a/src/app/components/RoomCreate.svelte +++ b/src/app/components/RoomCreate.svelte @@ -2,7 +2,7 @@ import {goto} from "$app/navigation" import {uniqBy, nth} from "@welshman/lib" import {displayRelayUrl, makeRoomMeta} from "@welshman/util" - import {deriveRelay, getThunkError, createRoom, editRoom, joinRoom} from "@welshman/app" + import {deriveRelay, waitForThunkError, createRoom, editRoom, joinRoom} from "@welshman/app" import {preventDefault} from "@lib/html" import Field from "@lib/components/Field.svelte" import Spinner from "@lib/components/Spinner.svelte" @@ -24,19 +24,19 @@ const tryCreate = async () => { room.tags = uniqBy(nth(0), [...room.tags, ["name", name]]) - const createMessage = await getThunkError(createRoom(url, room)) + const createMessage = await waitForThunkError(createRoom(url, room)) if (createMessage && !createMessage.match(/^duplicate:|already a member/)) { return pushToast({theme: "error", message: createMessage}) } - const editMessage = await getThunkError(editRoom(url, room)) + const editMessage = await waitForThunkError(editRoom(url, room)) if (editMessage) { return pushToast({theme: "error", message: editMessage}) } - const joinMessage = await getThunkError(joinRoom(url, room)) + const joinMessage = await waitForThunkError(joinRoom(url, room)) if (joinMessage && !joinMessage.includes("already")) { return pushToast({theme: "error", message: joinMessage}) diff --git a/src/app/components/SignUpComplete.svelte b/src/app/components/SignUpComplete.svelte index deebf613..697a4558 100644 --- a/src/app/components/SignUpComplete.svelte +++ b/src/app/components/SignUpComplete.svelte @@ -7,6 +7,7 @@ import Button from "@lib/components/Button.svelte" import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" + import {clearModals} from "@app/util/modal" import {PROTECTED} from "@app/core/state" type Props = { @@ -31,6 +32,8 @@ // Don't publish anywhere yet, wait until they join a space publishThunk({event, relays: []}) + + clearModals() } diff --git a/src/app/core/commands.ts b/src/app/core/commands.ts index c42aa568..f806dae1 100644 --- a/src/app/core/commands.ts +++ b/src/app/core/commands.ts @@ -65,7 +65,7 @@ import { dropSession, tagEventForComment, tagEventForQuote, - getThunkError, + waitForThunkError, } from "@welshman/app" import type {SettingsValues} from "@app/core/state" import { @@ -249,7 +249,7 @@ export const checkRelayAccess = async (url: string, claim = "") => { await attemptAuth(url) const thunk = publishJoinRequest({url, claim}) - const error = await getThunkError(thunk) + const error = await waitForThunkError(thunk) if (error) { const message = diff --git a/src/routes/spaces/[relay]/[room]/+page.svelte b/src/routes/spaces/[relay]/[room]/+page.svelte index f88c5d0a..fbdc2527 100644 --- a/src/routes/spaces/[relay]/[room]/+page.svelte +++ b/src/routes/spaces/[relay]/[room]/+page.svelte @@ -15,7 +15,7 @@ ROOM_ADD_USER, ROOM_REMOVE_USER, } from "@welshman/util" - import {pubkey, publishThunk, getThunkError, joinRoom, leaveRoom} from "@welshman/app" + import {pubkey, publishThunk, waitForThunkError, joinRoom, leaveRoom} from "@welshman/app" import {slide, fade, fly} from "@lib/transition" import Icon from "@lib/components/Icon.svelte" import Button from "@lib/components/Button.svelte" @@ -69,7 +69,7 @@ joining = true try { - const message = await getThunkError(joinRoom(url, makeRoomMeta({id: room}))) + const message = await waitForThunkError(joinRoom(url, makeRoomMeta({id: room}))) if (message && !message.startsWith("duplicate:")) { return pushToast({theme: "error", message}) @@ -85,7 +85,7 @@ const leave = async () => { leaving = true try { - const message = await getThunkError(leaveRoom(url, makeRoomMeta({id: room}))) + const message = await waitForThunkError(leaveRoom(url, makeRoomMeta({id: room}))) if (message && !message.startsWith("duplicate:")) { pushToast({theme: "error", message})