fix(editor): open existing notes in the user's default note mode

Existing notes initialised raw markdown mode from note.checklistMode
instead of the defaultNoteMode preference, so users with Markdown as
default always got the rich text editor when reopening a note.

Fixes #96

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017neWQAAxi6nZYmwRkDThsy
This commit is contained in:
Claude
2026-10-11 09:46:43 +02:00
committed by Fred Cabassut
parent 31732e8144
commit faf926c081
2 changed files with 26 additions and 2 deletions
+1 -1
View File
@@ -60,7 +60,7 @@
let showColorPicker = $state(false); let showColorPicker = $state(false);
let showImageUpload = $state(false); let showImageUpload = $state(false);
// svelte-ignore state_referenced_locally // svelte-ignore state_referenced_locally
let rawMarkdownMode = $state(note ? (note.checklistMode ?? false) : prefs.defaultNoteMode === 'markdown'); let rawMarkdownMode = $state(prefs.defaultNoteMode === 'markdown');
let textareaEl: HTMLTextAreaElement | undefined = $state(); let textareaEl: HTMLTextAreaElement | undefined = $state();
let tiptapEditor: Editor | undefined = $state(); let tiptapEditor: Editor | undefined = $state();
let editorTick = $state(0); let editorTick = $state(0);
+25 -1
View File
@@ -1,4 +1,4 @@
import { test, expect } from './helpers/fixtures.js'; import { test, expect, noteCard } from './helpers/fixtures.js';
import type { Page } from '@playwright/test'; import type { Page } from '@playwright/test';
const DEFAULT_PREFS = { const DEFAULT_PREFS = {
@@ -81,6 +81,30 @@ test.describe('Settings — Preferences', () => {
await expect(page.getByTestId('note-content-input')).toBeVisible(); await expect(page.getByTestId('note-content-input')).toBeVisible();
}); });
test('Scenario: Default note mode applies when reopening an existing note', async ({
authenticatedPage: page
}) => {
await resetPreferences(page);
// Given a note titled "Existing Markdown Note" exists
const title = `Existing Markdown Note ${Date.now()}`;
await page.request.post('/api/notes', { data: { title, content: 'Some **bold** text' } });
// And the user's default note mode is Markdown
await gotoWithStablePrefs(page, '/settings/preferences');
const putResponse = page.waitForResponse((res) => res.url().includes('/api/preferences') && res.request().method() === 'PUT');
await page.getByTestId('pref-mode-markdown').click();
await putResponse;
// When the user opens the note
await gotoWithStablePrefs(page, '/');
await noteCard(page, title).click();
// Then the note editor opens in markdown mode showing the raw source
await expect(page.getByTestId('note-content-input')).toBeVisible();
await expect(page.getByTestId('note-content-input')).toHaveValue('Some **bold** text');
});
test('Scenario: Footer toggle hides and shows footer', async ({ test('Scenario: Footer toggle hides and shows footer', async ({
authenticatedPage: page authenticatedPage: page
}) => { }) => {