|
Some checks failed
E2E / Playwright e2e (push) Has been cancelled
Move mail, compose, contacts, and accounts off mocks onto REST + WS. Add client, auth store, IDB-backed query cache, offline queue, and sync bar; hybrid Zustand for UI-only state. Settings still local until backend has preferences API. |
||
|---|---|---|
| .. | ||
| compose | ||
| contacts | ||
| contacts-page | ||
| email-list | ||
| email-view | ||
| mail-search | ||
| quick-settings | ||
| sidebar | ||
| account-avatar.tsx | ||
| account-switcher-dropdown.tsx | ||
| calendar-invitation-preview.tsx | ||
| compact-inbox-category-tabs.tsx | ||
| compose-modal.tsx | ||
| contact-hover-card.tsx | ||
| email-label-picker-block.tsx | ||
| email-list.tsx | ||
| email-view.tsx | ||
| header-account-actions.tsx | ||
| header.tsx | ||
| invitation-time-chip-text.tsx | ||
| mail-date-text.tsx | ||
| mail-folder-stack-indicator.tsx | ||
| mail-inbox-category-tab-icons.tsx | ||
| mail-label-pills.tsx | ||
| mail-list-swipe-row.tsx | ||
| mail-search-bar.tsx | ||
| mail-theme-applier.tsx | ||
| mail-toaster.tsx | ||
| mobile-bottom-bar.tsx | ||
| mobile-search-overlay.tsx | ||
| mobile-xs-bulk-sheets.tsx | ||
| move-drag-indicator.tsx | ||
| move-to-menu-items.tsx | ||
| README.md | ||
| right-panel.tsx | ||
| sidebar.tsx | ||
| sync-status-bar.tsx | ||
Composants Gmail — arborescence
Point d’entrée publics (re-exports à la racine) :
| Fichier racine | Module réel |
|---|---|
email-list.tsx |
email-list/ |
sidebar.tsx |
sidebar/ |
compose-modal.tsx |
compose/ |
compose-toolbar.tsx |
compose/ |
email-view.tsx |
email-view/ + lecture |
Dossiers par fonctionnalité
components/gmail/
├── compose/ # Rédaction (fenêtre, manager, toolbar, destinataires)
├── email-list/ # Liste des messages
│ ├── hooks/ # data, labels, selection, reading
│ ├── attachments/
│ └── …
├── email-view/ # Lecture d’un message
├── mail-search/ # Recherche avancée (desktop + mobile)
├── sidebar/ # Navigation latérale
├── contacts/ # Carnet d’adresses
├── quick-settings/ # Réglages rapides
└── *.tsx # Chrome global (header, search bar, swipe, …)
email-list/
email-list.tsx— orchestration (hooks → layout)hooks/use-email-list-data.ts— filtrage, pagination, pull-refreshhooks/use-email-list-labels.ts— libellés / déplacerhooks/use-email-list-selection.ts— sélection, actions bulkhooks/use-email-list-reading.ts— vue message, navigation clavieremail-list-layout.tsx— structure split / toolbarsemail-list-body.tsx— zone scroll + lignesemail-list-toolbar.tsx— barre d’outilsemail-list-row.tsx— une ligne
sidebar/
sidebar.tsx— shell<aside>use-sidebar-state.ts— état local + effetssidebar-header.tsx— logo, compose, réglagessidebar-nav-panel.tsx— nav principale, dossiers, libelléssidebar-folder-row-expanded.tsx,sidebar-label-item-row.tsx, …
compose/
compose-window.tsx— UI fenêtreuse-compose-window.ts— éditeur TipTap, envoi, pièces jointescompose-modal-manager.tsx— pile de fenêtres / sheet mobilecompose-recipients.tsx,compose-editor-chrome.tsx,compose-toolbar.tsx