- Implemented a 'Search Guard' pattern in '+page.svelte' that snapshots search criteria and bails out of redundant executions. - Stabilized reactivity by removing immediate list clearing in Remote First mode, ensuring a consistent data stream. - Isolated all search-driven state updates with 'untrack' to prevent circular dependency triggers. - Hardened the 'lq__journal_entry_obj_li' observable to ensure stable result emission.
Journals Module
The Journals module provides a user-facing application for creating and managing personal journals. It can be used for various purposes such as a personal diary, a blog, a notebook, or any other form of chronological or topical record-keeping.
This directory (src/routes/journals) contains the Svelte components and pages that constitute the user interface for the Journals feature.
Features
- Journal & Entry Management: The UI allows for full CRUD (Create, Read, Update, Delete) functionality for both journals and their entries.
- Rich Content Editing: Journal entries can be written using Markdown for rich text formatting.
- Encryption: The UI provides an interface for setting and using passcodes to encrypt and decrypt journal entries.
- Offline Support: The application uses a local IndexedDB cache (via Dexie.js) for all data, allowing for offline access and faster interactions. Data is synchronized with the backend API.
UI Components & Pages
+page.svelte: The main landing page that displays a list of all journals for the current user.[journal_id]/+page.svelte: The page for viewing a single journal and its list of entries.ae_comp__journal_obj_li.svelte: A component that renders the list of journals.ae_comp__journal_obj_id_view.svelte: A component for viewing the details of a selected journal.ae_comp__journal_entry_obj_li.svelte: A component that renders the list of entries for a journal.ae_comp__journal_entry_obj_id_view.svelte: A component for viewing the content of a single journal entry.ae_comp__journal_obj_id_edit.svelte: A modal component for creating and editing journals.
Core Logic
The underlying data models, API interactions, and database logic for this module are located in src/lib/ae_journals/.