Adapt email notifications to upstream APIs post-merge
All checks were successful
CI / lint-check-build (pull_request) Successful in 4m38s
All checks were successful
CI / lint-check-build (pull_request) Successful in 4m38s
- mail adapter: publish kind 30390 / DELETE subscriptions via @app/core's Publisher (publisher.get().publish(...).settled()) instead of the removed thunks API; report first failure via getError(). - push/adapters/common.ts: import writable (used by emailNotificationState). - prettier-format the merged settings.ts + alerts page.
This commit is contained in:
parent
91c17b5e0c
commit
72bb22a42f
4 changed files with 8 additions and 12 deletions
|
|
@ -4,7 +4,7 @@ import {Address, DELETE, MESSAGE, makeEvent, makeHttpAuth, makeHttpAuthHeader} f
|
||||||
import {merged} from "@welshman/store"
|
import {merged} from "@welshman/store"
|
||||||
import {Relays, User} from "@welshman/app"
|
import {Relays, User} from "@welshman/app"
|
||||||
import {buildUrl} from "@lib/util"
|
import {buildUrl} from "@lib/util"
|
||||||
import {app, messagingRelayLists, roomLists, thunks} from "@app/core"
|
import {app, messagingRelayLists, publisher, roomLists} from "@app/core"
|
||||||
import {EMAIL_NOTIFICATION_SERVER, PUSH_BRIDGE} from "@app/env"
|
import {EMAIL_NOTIFICATION_SERVER, PUSH_BRIDGE} from "@app/env"
|
||||||
import {ensureEmailSalt, userSettingsValues} from "@app/settings"
|
import {ensureEmailSalt, userSettingsValues} from "@app/settings"
|
||||||
import {emailNotificationState} from "@app/push/adapters/common"
|
import {emailNotificationState} from "@app/push/adapters/common"
|
||||||
|
|
@ -376,7 +376,7 @@ export class MailNotifications {
|
||||||
|
|
||||||
const identifier = await this._getSubscriptionIdentifier(relay, key)
|
const identifier = await this._getSubscriptionIdentifier(relay, key)
|
||||||
|
|
||||||
const thunk = thunks.get().publish({
|
const publication = publisher.get().publish({
|
||||||
relays: [url],
|
relays: [url],
|
||||||
event: makeEvent(30390, {
|
event: makeEvent(30390, {
|
||||||
tags: [
|
tags: [
|
||||||
|
|
@ -389,8 +389,8 @@ export class MailNotifications {
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
await publication.settled()
|
||||||
const error = await thunk.waitForError()
|
const error = publication.getError()
|
||||||
if (error) {
|
if (error) {
|
||||||
console.warn(`Failed to subscribe ${relay} to email notifications:`, error)
|
console.warn(`Failed to subscribe ${relay} to email notifications:`, error)
|
||||||
}
|
}
|
||||||
|
|
@ -406,11 +406,9 @@ export class MailNotifications {
|
||||||
const identifier = await this._getSubscriptionIdentifier(relay, key)
|
const identifier = await this._getSubscriptionIdentifier(relay, key)
|
||||||
const address = new Address(30390, $pubkey, identifier).toString()
|
const address = new Address(30390, $pubkey, identifier).toString()
|
||||||
const event = makeEvent(DELETE, {tags: [["a", address]]})
|
const event = makeEvent(DELETE, {tags: [["a", address]]})
|
||||||
const error = await thunks
|
const publication = publisher.get().publish({relays: [url], event})
|
||||||
.get()
|
await publication.settled()
|
||||||
.publish({relays: [url], event})
|
const error = publication.getError()
|
||||||
.waitForError()
|
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.warn(`Failed to unsubscribe ${relay} from email notifications:`, error)
|
console.warn(`Failed to unsubscribe ${relay} from email notifications:`, error)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import type {Subscriber, Unsubscriber} from "svelte/store"
|
import {writable, type Subscriber, type Unsubscriber} from "svelte/store"
|
||||||
import {Capacitor} from "@capacitor/core"
|
import {Capacitor} from "@capacitor/core"
|
||||||
import {call, ms, now, on, parseJson, poll, spec, throttle, uniq} from "@welshman/lib"
|
import {call, ms, now, on, parseJson, poll, spec, throttle, uniq} from "@welshman/lib"
|
||||||
import {LOCAL_RELAY_URL} from "@welshman/net"
|
import {LOCAL_RELAY_URL} from "@welshman/net"
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,6 @@ export const notificationSettings = withGetter(
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
export const publishSettings = async (params: Partial<SettingsValues>) => {
|
export const publishSettings = async (params: Partial<SettingsValues>) => {
|
||||||
const $app = app.get()
|
const $app = app.get()
|
||||||
const reader = await settings.get().forceLoad(User.require($app).pubkey)
|
const reader = await settings.get().forceLoad(User.require($app).pubkey)
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,6 @@
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
pushToast({theme: "error", message: "Failed to save your alert settings."})
|
pushToast({theme: "error", message: "Failed to save your alert settings."})
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
loading = false
|
loading = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue