Notechondria

Version: 0.1.72 Build Date: 2026-04-26T17:30

What's Changed

Apple-style two-level Settings menu (editor)

  • Spec: "Organized app preference setting widget, create second-level menu, organize the existing groups to: Editor settings, Backend settings, Local data, Recycle bin, Clear all data. Do not use round button in first level menu, use Apple- style setting UI with tooltip on secondary setting page".

  • The flat single-screen Settings layout that mixed "App preferences" + "Offline account" actions in one giant Card is replaced by a five-row grouped menu. Each row has an icon, a label, a one-line subtitle, and a chevron — same shape Apple's Settings app uses. Tap opens a dedicated sub-page; no round buttons in the top level.

    Top-level rows (in order):

    1. Editor settings — default editor mode, theme preset, theme mode. Each is a tap-to-open picker bottom sheet.
    2. Backend settings — offline-mode SwitchListTile + API base URL field (locked while signed in, with an info_outline tooltip explaining the lock).
    3. Local data — download / restore the .nchron archive plus "Restore template categories" action.
    4. Recycle bin — synced local drafts (recoverable) + cloud recycle bin, both surfaced as rows with item counts.
    5. Clear all data — destructive action, red text + warning icon, triggers the existing _confirmClearAllLocalData directly (no extra navigation step for a destructive op).

New file — settings_pages.dart

  • frontend/editor_app/lib/modules/settings_pages.dart (495 lines) hosts the four sub-pages: _EditorSettingsPage, _BackendSettingsPage, _LocalDataPage, _RecycleBinPage, plus _SettingsGroupCard / _SettingsCaption / _PickerOption helpers and a _pickFromList tap-to-pick bottom-sheet picker.

Removed dead code

  • _buildOfflinePreferencesSection (122 lines) removed; replaced by the new menu.
  • _hasPreferenceChanges getter + _cancelPreferenceChanges method removed (no longer needed — preferences auto-save on change in the new sub-pages).

Files Changed

  • frontend/editor_app/lib/modules/settings_pages.dart (new).
  • frontend/editor_app/lib/modules/settings.dart — top-level build() rewritten as the row-based menu; _buildSettingsMenu helper added.
  • frontend/editor_app/lib/modules/settings_build.dart_buildOfflinePreferencesSection deleted.
  • frontend/editor_app/lib/main.dartpart 'modules/settings_pages.dart'.

Notes

  • All editor module files still under the §1.5 1000-line cap after the additions. Editor smoke test passes.
  • The destructive "Clear all" stays at the top level (no extra tap needed for a one-shot wipe) but visually flagged red. The 3-second delay-confirm dialog from the prior round is preserved.