diff --git a/components/email/thread-conversation-view.tsx b/components/email/thread-conversation-view.tsx index 27908391..86fa0ce2 100644 --- a/components/email/thread-conversation-view.tsx +++ b/components/email/thread-conversation-view.tsx @@ -88,6 +88,7 @@ export function ThreadConversationView({ const trustedSendersAddressBook = useSettingsStore((state) => state.trustedSendersAddressBook); const isTrustedAddressBookSender = useContactStore((state) => state.isTrustedAddressBookSender); const addToTrustedSendersBook = useContactStore((state) => state.addToTrustedSendersBook); + const { client } = useAuthStore(); // Track which emails are expanded (most recent by default) const [expandedIds, setExpandedIds] = useState>(new Set()); diff --git a/lib/demo/demo-client.ts b/lib/demo/demo-client.ts index ef3e28c5..2870a074 100644 --- a/lib/demo/demo-client.ts +++ b/lib/demo/demo-client.ts @@ -481,6 +481,12 @@ export class DemoJMAPClient implements IJMAPClient { async getAddressBooks(): Promise { return [...this.data.addressBooks]; } async getAllAddressBooks(): Promise { return [...this.data.addressBooks]; } + async createAddressBook(name: string): Promise { + const book: AddressBook = { id: `demo-book-${Date.now()}`, name }; + this.data.addressBooks.push(book); + return book; + } + async updateAddressBook(addressBookId: string, updates: Partial): Promise { const book = this.data.addressBooks.find(b => b.id === addressBookId); if (book) Object.assign(book, updates);