fix: resolve deep-link merge issues and restore settings/page scrolling

This commit is contained in:
Bhavishy
2026-04-08 02:05:47 +05:30
parent 1d6e2fab59
commit 12512c58a0
4 changed files with 26 additions and 6 deletions
+22 -2
View File
@@ -18,8 +18,14 @@
import {pushToast} from "@app/util/toast" import {pushToast} from "@app/util/toast"
import {PROTECTED} from "@app/core/state" import {PROTECTED} from "@app/core/state"
import {makeEditor} from "@app/editor" import {makeEditor} from "@app/editor"
import {DraftKey} from "@app/util/drafts"
import {canEnforceNip70} from "@app/core/commands" import {canEnforceNip70} from "@app/core/commands"
type Values = {
content?: string | object
title?: string
}
type Props = { type Props = {
url: string url: string
h?: string h?: string
@@ -28,6 +34,9 @@
const {url, h, initialContent = ""}: Props = $props() const {url, h, initialContent = ""}: Props = $props()
const draftKey = new DraftKey<Values>(`thread:${url}:${h ?? ""}`)
const initialValues = initialContent ? {content: initialContent} : draftKey.get()
const shouldProtect = canEnforceNip70(url) const shouldProtect = canEnforceNip70(url)
const uploading = writable(false) const uploading = writable(false)
@@ -71,18 +80,29 @@
event: makeEvent(THREAD, {content, tags}), event: makeEvent(THREAD, {content, tags}),
}) })
draftKey.clear()
history.back() history.back()
} }
let title: string = $state(initialValues?.title ?? "")
let content: string | object = $state(initialValues?.content ?? "")
const onChange = (json: object) => {
content = json
}
const editor = makeEditor({ const editor = makeEditor({
content: initialContent,
url, url,
submit, submit,
uploading, uploading,
onChange,
placeholder: "What's on your mind?", placeholder: "What's on your mind?",
content,
}) })
let title: string = $state("") $effect(() => {
draftKey.set({title, content})
})
</script> </script>
<Modal tag="form" onsubmit={preventDefault(submit)}> <Modal tag="form" onsubmit={preventDefault(submit)}>
+1 -1
View File
@@ -9,6 +9,6 @@
<div <div
data-component="Page" data-component="Page"
class="relative flex-grow flex flex-col min-w-0 ml-sai mb-sai mt-sai mr-sai bg-base-200 md:ml-0 md:mb-0 {props.class}"> class="scroll-container relative flex-grow flex min-h-0 flex-col min-w-0 overflow-y-auto overflow-x-hidden ml-sai mb-sai mt-sai mr-sai bg-base-200 md:ml-0 md:mb-0 {props.class}">
{@render props.children?.()} {@render props.children?.()}
</div> </div>
+1 -1
View File
@@ -19,7 +19,7 @@
if (term) { if (term) {
pubkeys = Array.from(new Set($profileSearch.searchValues(term))) pubkeys = Array.from(new Set($profileSearch.searchValues(term)))
} else { } else {
pubkeys = Array.from(new Set($bootstrapPubkeys)) pubkeys = $bootstrapPubkeys
} }
}) })
+1 -1
View File
@@ -67,6 +67,6 @@
</SecondaryNavSection> </SecondaryNavSection>
</SecondaryNav> </SecondaryNav>
<Page class="scroll-container overflow-y-auto overflow-x-hidden"> <Page>
{@render children?.()} {@render children?.()}
</Page> </Page>