Compare commits

...
4 Commits
Author SHA1 Message Date
jakob48 cb83ee4cc5 merge upstream 2026-10-12 10:29:42 +02:00
github-actions[bot] a0f663d9d6 chore: pin docker-compose to v0.35.2 [skip ci] 2026-10-11 07:56:13 +00:00
github-actions[bot] 9cf0c0285b chore: bump version to 0.35.2 2026-10-11 07:49:40 +00:00
Claude faf926c081 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
2026-10-11 09:46:43 +02:00
5 changed files with 29 additions and 5 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
services: services:
crumbs: crumbs:
image: ghcr.io/bretzel-app/crumbs:0.35.1 image: ghcr.io/bretzel-app/crumbs:0.35.2
container_name: crumbs container_name: crumbs
ports: ports:
- "3000:3000" - "3000:3000"
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "crumbs", "name": "crumbs",
"private": true, "private": true,
"version": "0.35.1", "version": "0.35.2",
"type": "module", "type": "module",
"packageManager": "pnpm@9.15.9", "packageManager": "pnpm@9.15.9",
"license": "MIT", "license": "MIT",
+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
}) => { }) => {
+1 -1
View File
@@ -292,7 +292,7 @@
<li><a href="https://github.com/bretzel-app/crumbs/blob/main/docs/DEPLOYMENT.md" target="_blank" rel="noopener">Docs</a></li> <li><a href="https://github.com/bretzel-app/crumbs/blob/main/docs/DEPLOYMENT.md" target="_blank" rel="noopener">Docs</a></li>
<li><a href="https://github.com/bretzel-app/crumbs/blob/main/LICENSE" target="_blank" rel="noopener">License</a></li> <li><a href="https://github.com/bretzel-app/crumbs/blob/main/LICENSE" target="_blank" rel="noopener">License</a></li>
</ul> </ul>
<span class="footer-version">v0.35.1</span> <span class="footer-version">v0.35.2</span>
</div> </div>
</footer> </footer>