mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 22:34:56 +00:00
Accessibility: - All components: data-testid, aria-label, aria-pressed, aria-current - ComposeWindow: role=dialog, aria-modal, focus trap, Escape handler - EmailCard: role=article, keyboard nav (Enter/Space), aria-current - ThreadList: role=list with listitem wrappers, role=status empty state - FolderNavigation: role=navigation, role=list, aria-current - RecipientInput: role=group, aria-label per type, onKeyPress→onKeyDown - BodyEditor: role=toolbar, aria-pressed on mode buttons - StarButton: MaterialIcon (star/star_border), dynamic aria-label - MarkAsReadCheckbox: dynamic label based on read state - EmailHeader: role=banner, <time> element, data-testids Component decomposition: - Extract useEmailClient hook (state + callbacks) - Extract demo-emails.ts (data constants) - EmailClientContent.tsx: 267→127 LOC (composition only) New: useKeyboardShortcuts hook (Gmail-style, 47 LOC) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
14 lines
741 B
TypeScript
14 lines
741 B
TypeScript
/**
|
|
* Email custom hooks for React
|
|
* Provides hooks for email synchronization, storage, accounts, and message management
|
|
* @packageDocumentation
|
|
*/
|
|
|
|
export { useEmailSync, type UseEmailSyncResult } from './useEmailSync'
|
|
export { useEmailStore, type UseEmailStoreResult, type StoredMessage } from './useEmailStore'
|
|
export { useMailboxes, type UseMailboxesResult, type Folder } from './useMailboxes'
|
|
export { useAccounts, type UseAccountsResult, type EmailAccount } from './useAccounts'
|
|
export { useCompose, type UseComposeResult, type EmailDraft } from './useCompose'
|
|
export { useMessages, type UseMessagesResult, type Message } from './useMessages'
|
|
export { useKeyboardShortcuts, type KeyboardShortcutMap } from './useKeyboardShortcuts'
|