|
Some checks are pending
E2E / Playwright e2e (push) Waiting to run
- Introduced new ContactAvatar and ContactAvatarPicker components for enhanced avatar management in contact views. - Updated ContactDetailView and ContactFormView to utilize the new avatar components, improving user experience when adding or editing contacts. - Enhanced ContactHoverCard and ContactRow components to display avatars, providing a more visually appealing interface. - Added loading and error states in ContactsListView for better user feedback during data fetching. - Implemented a new ContactsLoadState component to handle loading and error scenarios in the contacts list. - Updated package.json to include @formkit/auto-animate for improved UI animations. |
||
|---|---|---|
| .. | ||
| account-store.ts | ||
| blocked-senders-store.ts | ||
| compose-identities-store.ts | ||
| debounced-json-storage.ts | ||
| hydration.ts | ||
| mail-search-store.ts | ||
| mail-settings-store.ts | ||
| mail-signatures-store.ts | ||
| mail-store.ts | ||
| mail-ui-store.ts | ||
| nav-store.ts | ||
| README.md | ||
| scheduled-store.ts | ||
| trusted-senders-store.ts | ||
Mail stores (Zustand)
Persisted (debounced-json-storage / persist)
mail-store— read/star/important overrides, label edits, recent folder visitsmail-settings-store— density, conversation mode, sort, display prefsnav-store— sidebar folder/label tree, disabled nav labelsaccount-store— active accountscheduled-store— scheduled send queue
Ephemeral UI (session only)
mail-search-store— search input, dropdown, filter chips before URL submitmail-ui-store— shell chrome: sidebar collapsed, mobile search overlay, folder unread badges
Rules
- URL is source of truth for folder, inbox tab, page, open message (
useMailRoute+mail-url.ts) - Search results use query params on
/mail/search(SearchParams); bar/overlay state syncs viasubmitMailSearchinlib/mail-search/navigate.ts - Do not persist ephemeral UI unless product explicitly requires it