Use snapshots in some places

This commit is contained in:
Jon Staab
2025-02-03 20:43:18 -08:00
parent a0e97d5e5b
commit 7d4ba6c806
5 changed files with 29 additions and 16 deletions
+3 -1
View File
@@ -23,7 +23,9 @@
const saveEdit = () => {
const relays = ctx.app.router.FromUser().getUrls()
const template = isPublishedProfile(values) ? editProfile(values) : createProfile(values)
const template = isPublishedProfile(values)
? editProfile($state.snapshot(values))
: createProfile($state.snapshot(values))
const event = createEvent(template.kind, template)
publishThunk({event, relays})
+14 -4
View File
@@ -1,7 +1,7 @@
import {asClassComponent} from "svelte/legacy"
import type {Writable} from "svelte/store"
import {derived} from "svelte/store"
import {createEditor, SvelteNodeViewRenderer} from "svelte-tiptap"
import {derived, readable} from "svelte/store"
import {Editor, SvelteNodeViewRenderer} from "svelte-tiptap"
import {ctx} from "@welshman/lib"
import type {StampedEvent} from "@welshman/util"
import {signer, profileSearch} from "@welshman/app"
@@ -44,8 +44,10 @@ export const makeEditor = ({
submit: () => void
uploading?: Writable<boolean>
wordCount?: Writable<number>
}) =>
createEditor({
}) => {
let setter: (editor: Editor) => void
const _editor = new Editor({
content,
autofocus,
extensions: [
@@ -94,7 +96,15 @@ export const makeEditor = ({
}),
],
onUpdate({editor}) {
setter?.(editor)
wordCount?.set(editor.storage.wordCount.words)
charCount?.set(editor.storage.wordCount.chars)
},
})
return readable(_editor, set => {
setter = set
return () => _editor.destroy()
})
}