forked from mirror/crumbs-original
- Add sort mode selector (Updated/Created/Custom) with localStorage persistence - Sort notes client-side via derived stores based on selected mode - Enable drag-to-reorder in Custom mode via svelte-dnd-action on NoteGrid - Add POST /api/notes/reorder endpoint for bulk sortOrder updates - E2E tests for sorting by updated/created and persistence across reload Closes #12 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
25 lines
569 B
TypeScript
25 lines
569 B
TypeScript
import { writable } from 'svelte/store';
|
|
import { browser } from '$app/environment';
|
|
|
|
export type SortMode = 'updated' | 'created' | 'custom';
|
|
|
|
const STORAGE_KEY = 'crumbs-sort-mode';
|
|
|
|
function getInitial(): SortMode {
|
|
if (browser) {
|
|
const stored = localStorage.getItem(STORAGE_KEY);
|
|
if (stored === 'updated' || stored === 'created' || stored === 'custom') {
|
|
return stored;
|
|
}
|
|
}
|
|
return 'updated';
|
|
}
|
|
|
|
export const sortMode = writable<SortMode>(getInitial());
|
|
|
|
if (browser) {
|
|
sortMode.subscribe((value) => {
|
|
localStorage.setItem(STORAGE_KEY, value);
|
|
});
|
|
}
|