Use user blossom server list for settings, add InputList

This commit is contained in:
Jon Staab
2025-04-29 11:04:39 -07:00
parent 8c71b7d9b9
commit 5a7750a91b
8 changed files with 133 additions and 38 deletions
+8 -13
View File
@@ -2,22 +2,15 @@ import {mount} from "svelte"
import type {Writable} from "svelte/store"
import {get} from "svelte/store"
import type {StampedEvent} from "@welshman/util"
import {getTagValue, getListTags} from "@welshman/util"
import {Router} from "@welshman/router"
import {signer, profileSearch} from "@welshman/app"
import {signer, profileSearch, userBlossomServers} from "@welshman/app"
import {Editor, MentionSuggestion, WelshmanExtension} from "@welshman/editor"
import {getSetting, userSettingValues} from "@app/state"
import {makeMentionNodeView} from "./MentionNodeView"
import ProfileSuggestion from "./ProfileSuggestion.svelte"
export const getUploadType = () => getSetting<"nip96" | "blossom">("upload_type")
export const getUploadUrl = () => {
const {upload_type, nip96_urls, blossom_urls} = userSettingValues.get()
return upload_type === "nip96"
? nip96_urls[0] || "https://nostr.build"
: blossom_urls[0] || "https://cdn.satellite.earth"
}
export const getUploadUrl = () =>
getTagValue("server", getListTags(userBlossomServers.get())) || "https://cdn.satellite.earth"
export const signWithAssert = async (template: StampedEvent) => {
const event = await signer.get().sign(template)
@@ -33,6 +26,7 @@ export const makeEditor = ({
placeholder = "",
url,
submit,
uploadUrl = getUploadUrl(),
uploading,
wordCount,
}: {
@@ -43,6 +37,7 @@ export const makeEditor = ({
placeholder?: string
url?: string
submit: () => void
uploadUrl?: string
uploading?: Writable<boolean>
wordCount?: Writable<number>
}) =>
@@ -54,8 +49,8 @@ export const makeEditor = ({
WelshmanExtension.configure({
submit,
sign: signWithAssert,
defaultUploadType: getUploadType(),
defaultUploadUrl: getUploadUrl(),
defaultUploadType: "blossom",
defaultUploadUrl: uploadUrl,
extensions: {
placeholder: {
config: {
+2
View File
@@ -41,6 +41,7 @@ import {
loadMutes,
loadFollows,
loadProfile,
loadBlossomServers,
loadRelaySelections,
loadInboxRelaySelections,
} from "@welshman/app"
@@ -392,6 +393,7 @@ export const loadUserData = async (pubkey: string, relays: string[] = []) => {
sleep(3000),
Promise.all([
loadInboxRelaySelections(pubkey, relays),
loadBlossomServers(pubkey, relays),
loadMembership(pubkey, relays),
loadSettings(pubkey, relays),
loadProfile(pubkey, relays),
-6
View File
@@ -297,9 +297,6 @@ export type Settings = {
report_usage: boolean
report_errors: boolean
send_delay: number
upload_type: "nip96" | "blossom"
nip96_urls: string[]
blossom_urls: string[]
}
}
@@ -309,9 +306,6 @@ export const defaultSettings = {
report_usage: true,
report_errors: false,
send_delay: 3000,
upload_type: "nip96",
nip96_urls: ["https://nostr.build"],
blossom_urls: ["https://cdn.satellite.earth"],
}
export const settings = deriveEventsMapped<Settings>(repository, {