Merge branch 'main' into feat/palettes

# Conflicts:
#	web/src/store/settings.ts
This commit is contained in:
2026-09-02 00:19:22 -07:00
10 changed files with 480 additions and 4 deletions
+13
View File
@@ -2,6 +2,7 @@ import { useEffect, useState } from "react";
import { create } from "zustand";
import { hasCachedJson, loadJson, saveJson } from "@/lib/storage";
import { effectiveMode, legacyTheme, migrateTheme, type Mode, type PaletteId } from "@/lib/palette";
import type { SortLevel, SortPreset } from "@/lib/listSort";
import { pendingSettingsKeys, queueSettingsPush } from "@/lib/settingsSync";
import { setDateTimePrefs, setUiLanguageForFormatting, type DateFormat, type TimeFormat } from "@/lib/datetime";
import type { SwipeAction } from "@/lib/swipe";
@@ -151,6 +152,15 @@ export interface Settings {
* dates nobody put there is a surprise rather than a feature.
*/
birthdayCalendar: boolean;
/** What order the message list is in. See lib/listSort.ts. */
listSortPreset: SortPreset;
listSortLevels: SortLevel[];
/**
* Which folders it covers. Inbox-only is the useful default rather than a
* timid one: unread-first is what people want where they triage, and
* confusing in Sent, where everything is read.
*/
listSortScope: "inbox" | "all";
fontSize: "small" | "medium" | "large";
templates: Template[];
labels: Label[];
@@ -257,6 +267,9 @@ export const DEFAULT_SETTINGS: Settings = {
timeZone: null,
labelsSidebar: true,
birthdayCalendar: false,
listSortPreset: "newest",
listSortLevels: [],
listSortScope: "inbox",
fontSize: "medium",
templates: [],
labels: [],