([]);
@@ -37,9 +38,10 @@
// Re-initialize whenever pageId changes (SvelteKit reuses component on param navigation)
$effect(() => {
const id = pageId; // track reactively
+ const openInEdit = page.url.searchParams.get('edit') === '1';
currentPage = undefined;
titleInitialized = false;
- editing = false;
+ editing = openInEdit;
notebooks = [];
backlinks = [];
db.pages.get(id).then(p => {
@@ -58,6 +60,10 @@
if (currentPage && !titleInitialized) {
titleInput = currentPage.title;
titleInitialized = true;
+ if (editing) {
+ // focus title on next tick so the input is rendered
+ setTimeout(() => titleInputEl?.focus(), 0);
+ }
}
});
@@ -88,6 +94,14 @@
currentPage = { ...currentPage!, title };
}
+ async function addPage() {
+ const newPage = await createPage('Neue Seite', scope === 'private');
+ for (const nb of notebooks) {
+ await assignPageToNotebook(newPage.id, nb.id);
+ }
+ goto(`/wiki/${newPage.id}?edit=1`);
+ }
+
async function handleDelete() {
await softDeletePage(pageId);
goto('/wiki');
@@ -118,6 +132,7 @@
{#if editing}
{editing ? '✓ Fertig' : '✎ Bearbeiten'}
+ {#if !editing}
+
+ {/if}
{#if editing}
{savedState === 'saved' ? '✓ gespeichert' : savedState === 'saving' ? '…' : '● ungespeichert'}
@@ -204,7 +226,8 @@
{#if editing}
-