From 96c6a64e46133e152853f849ca14dace548e8474 Mon Sep 17 00:00:00 2001 From: Ben Gotow Date: Mon, 7 Oct 2019 14:00:34 -0500 Subject: [PATCH] Build ContactBook concept to track which accounts have sync running --- .../account-sidebar/lib/account-commands.ts | 2 +- .../contacts/lib/AddContactToolbar.tsx | 6 +- .../contacts/lib/ContactDetailToolbar.tsx | 4 +- .../contacts/lib/ContactPerspectivesList.tsx | 198 +++++++++++------- app/internal_packages/contacts/lib/Store.ts | 26 ++- app/internal_packages/contacts/lib/main.tsx | 8 +- app/keymaps/base.json | 3 +- app/menus/darwin.js | 28 ++- app/menus/linux.js | 26 ++- app/menus/win32.js | 22 +- app/src/browser/application-menu.ts | 27 +-- app/src/components/outline-view.tsx | 4 +- app/src/flux/models/contact-book.ts | 32 +++ app/src/flux/models/contact-group.ts | 5 +- app/src/global/mailspring-component-kit.d.ts | 2 +- app/src/global/mailspring-exports.d.ts | 3 + app/src/global/mailspring-exports.js | 1 + app/src/menu-helpers.ts | 27 +-- mailsync | 2 +- 19 files changed, 267 insertions(+), 159 deletions(-) create mode 100644 app/src/flux/models/contact-book.ts diff --git a/app/internal_packages/account-sidebar/lib/account-commands.ts b/app/internal_packages/account-sidebar/lib/account-commands.ts index 1424d1f3b..ed81fb83b 100644 --- a/app/internal_packages/account-sidebar/lib/account-commands.ts +++ b/app/internal_packages/account-sidebar/lib/account-commands.ts @@ -110,7 +110,7 @@ export function registerMenuItems(accounts: Account[], sidebarAccountIds: string return; } - const idx = submenu.findIndex(({ type }) => type === 'separator'); + const idx = submenu.findIndex(({ id }) => id === 'account-shortcuts-separator'); if (!(idx > 0)) { return; } diff --git a/app/internal_packages/contacts/lib/AddContactToolbar.tsx b/app/internal_packages/contacts/lib/AddContactToolbar.tsx index 793c9a8d1..5ccc70326 100644 --- a/app/internal_packages/contacts/lib/AddContactToolbar.tsx +++ b/app/internal_packages/contacts/lib/AddContactToolbar.tsx @@ -31,7 +31,11 @@ class AddContactToolbarWithData extends React.Component tabIndex={-1} disabled={!enabled} className={`btn btn-toolbar btn-new-contact ${!enabled && 'btn-disabled'}`} - title={localized('New contact in %@', acct ? acct.label : 'account')} + title={ + acct + ? localized('New contact in %@', acct.label) + : localized('Select an account to add a contact.') + } onClick={enabled ? this.onAdd : undefined} > diff --git a/app/internal_packages/contacts/lib/ContactDetailToolbar.tsx b/app/internal_packages/contacts/lib/ContactDetailToolbar.tsx index 814a6167d..0a069258f 100644 --- a/app/internal_packages/contacts/lib/ContactDetailToolbar.tsx +++ b/app/internal_packages/contacts/lib/ContactDetailToolbar.tsx @@ -86,6 +86,7 @@ class ContactDetailToolbarWithData extends React.Component 0 ? this._onRemoveFromSource : undefined} > @@ -94,14 +95,15 @@ class ContactDetailToolbarWithData extends React.Component 0 ? this._onDelete : undefined} >