Summary: This will address the longstanding concern in #417
Test Plan: No new tests
Reviewers: juan, evan
Reviewed By: juan, evan
Maniphest Tasks: T7065
Differential Revision: https://phab.nylas.com/D3322
Summary:
Threads can now be opened in separate windows. This can be done via the popout
icon next to the print icon, or by double-clicking the thread when in double-
pane mode. Note that the single-click action is still fired, which is why
double-clicking does not work in single-pane mode. The popout icon changes to a
pop-in icon while in the popout window, to allow users to collapse it back into
the main window.
Test Plan: Tested locally
Reviewers: evan, juan
Reviewed By: juan
Subscribers: sdw
Differential Revision: https://phab.nylas.com/D3332
Summary:
Switch to electron-spellchecker, which will allow N1 to
spellcheck more intelligently across languages. It auto-
detects languages and downloads dictionaries on the fly.
Test Plan: Specs, manual testing
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3319
Summary:
Move the old bar notifications to the sidebar, and only display one notification
at a time using a priority-rating system. Remove all of the old notification
infrastructure.
Test Plan: Added specs, also reproduced notifications locally
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: juan
Differential Revision: https://phab.nylas.com/D3310
Summary:
When you have your "Download attachments for new mail" setting set
to "manually", inline images always appear broken with no explanation.
This patch listens for the image load to fail and displays a button which
queues the fetchFile task on click. This seemed like the best approach because
it doesn't slow down the loading of the message with more fstats / lookups.
(Seeing if the file has already been downloaded is an async operation)
Test Plan: No specs atm
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D3313
Change padding, margins, and borders to allow you to click on the left
margin of to, cc, bcc, from, subject fields as well as the composer
margins both above, left, and to the right of the composer.
Ensured attachments and other assets show up in correct spots
Ensure subject looks correct for mail merge
Notifications now check to see the thread they are supposed to open
exists.
Also, clean up FocusedContentStore._onFocus so that it doesn't have the side
effect of dispatching another action and messay logic.
Instead, added Actions.ensureCategoryFocused, to focus any category, and which
should be used separately from focusing content (notifications now use
this action for "opening" the thread)
Also, convert FocusedPerspectiveStore to ES6
Add prefix search. Previously, if searching for a thread with a specific
subject, you had to type the entire subject. Searching for just a prefix
wouldn't return the result.
This should not affect any of the current search results, only add more results
Summary: Initial support for inline images. Tests still forthcoming!
Test Plan: WIP
Reviewers: mark, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D3295
Summary:
Fixes a test that was broken due to my unfamiliarity with
CoffeeScript :-/
Test Plan: Tests
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: juan
Differential Revision: https://phab.nylas.com/D3302
Sometimes, when selecting a contact (with name, email) inside a thread,
the dropdown (`<select>`) did not correctly reflect the selected
contact.
This was because when focusing a contact, the FocusedContactStore
queried that contact from the database just by email, and the contact
retured from the database became the focused one. However, sometimes the
returned contact might have the same email but different email, and
given that the `<select>` component is keyed by both name,email, it
couldn't find the appropriate <option> to render, so it could not update
to reflect the newly selected contact
Now, the FocusedContactStore queries by email and name to prevent this
Summary:
This should help us avoid the thundering herd problem if we have some
kind of API outage affecting a wide number of clients.
Test Plan: Tests
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: juan
Differential Revision: https://phab.nylas.com/D3297
Summary:
We originally didn't do this because creating a DOM tree was loading images.
Using range.createContextualFragment seems to do it without the tree ever
being attached.
Accompanying changes to src/pro are here:
https://phab.nylas.com/D3300https://github.com/nylas/edgehill/compare/bengotow/draft-dom-transformations?expand=1
Also rename applyTransformsToDraft => applyTransformsForSending. Needed
a new name because the function signature has changed. AFAIK there are no
open source plugins using the old functions.
Test Plan: All specs updated
Reviewers: evan, juan
Reviewed By: evan, juan
Differential Revision: https://phab.nylas.com/D3299
NylasLongConnection ends the connection when the 'end' event is emitted
by the `request` object. When this happens, the global connection buffer is cleared.
Also, the global buffer holds the data we've received from the connection, and
whenever we receive new data, we accumulate it in the buffer and call a processBuffer function
which is throttled to 400ms.
Given that the buffer is global state, and processing occurs
asynchronously with a delay of up to 400ms, if the 'end' event on the connection is
fired before we actually get to process the buffer, we would clear it and show no results.
This scenario currently only affected search because if we accidentally
threw away some data when streaming deltas, we will get that data again
when we reopen the delta streaming connection.