Summary:
Allow for injection into the composer's list of recipients to indicate
something about each recipient (i.e. for the PGP plugin, allow an
indicator as to whether or not each recipient has a PGP key
available)
Test Plan: Tested locally
Reviewers: juan
Reviewed By: juan
Subscribers: bengotow
Differential Revision: https://phab.nylas.com/D2761
Summary:
This diff implements a behavior change described in https://github.com/nylas/N1/issues/1722.
Reply buttons should prefer to focus an existing draft in reply to the same message, if one is pristine, altering it as necessary to switch between reply / reply-all. If no pristine reply is already there, it creates one.
Reply keyboard shortcuts should do the same, but more strictly - the shortcuts should switch between reply / reply-all for an existing draft regardless of whether it's pristine.
This diff also cleans up the DraftStore and moves all the draft creation itself to a new DraftFactory object. This makes it much easier to see what's going on in the DraftStore, and I also refactored away the "newMessageWithContext" method, which was breaking the logic for Reply vs Forward between a bunch of different helper methods and was hard to follow.
Test Plan: They're all wrecked. Will fix after concept is greenlighted
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2776
- Closes popover on window resize:
- Re rendering popover on window resize will be a bit more tricky because
the FixedPopover only receives an origin rect. The one who
dispatches the action has the responsability of re dispatching when
the window resizes
- Fixes tiny behavior in send later popover
Summary: after refactoring some things last week and spending time futsing with coffeescript, I’m pretty convinced it’s worth moving important parts of the app to ES6 to be able to use ESLint as part of our dev workflow
Test Plan: Run existing tests, tested manually. Did not convert the tests in this diff, breaking one part at a time!
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2768
Summary:
- New behavior is that the in split mode, you will perform actions on
the selection via the MessageListToolbar (the toolbar positioned above
the message list)
- Refactored and moved around a bunch of code to achieve this:
- Mostly renaming stuff and moving stuff around and removing some
duplication
- Update naming of toolbar role to a single role, and update relevant code
- Converted and refactored a bunch of code into ES6, specifically to reuse the code for the ThreadActionsToolbar at the 2 locations
- Deprecated MultiselectActionBar in favor of MultiselectToolbar
- Deprecated old roles
- Punted the animation for the stackable cards in the selection display for now.
- #370
Test Plan: - Manual and unit tests
Reviewers: evan, drew, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2756
Summary:
WIP
Remove the mode prop from everywhere, use NylasEnv.isComposerWindow() instead
Test Plan: Run updated tests
Reviewers: drew, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2766
Summary:
- Applies code changes that we discussed with @bengotow when debugging
#1327
- Minor refactoring and reorganization + update specs
Test Plan: - Unit tests
Reviewers: evan, bengotow
Reviewed By: bengotow
Subscribers: bengotow
Differential Revision: https://phab.nylas.com/D2612
Summary:
This is a critical patch that fixes two problems with the task queue:
1. Tasks in Status: Retry are retried the next time processQueue is run,
which could be pretty much immediately. Certain scenarios lead to tasks
running in a hard loop forever.
2. Returning Task.Status.Retry set the retry flags on the task but did not
schedule the queue to be processed again. So if only a single item in the
queue was present, it might never be retried again until the user performed
another action.
Test Plan: Where did the specs for TaskQueue go? There aren't many... need to write more.
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2762
Valid accounts that are syncing properly can reviece a delta for
Account.syncState==stopped currently, due to some quirks in the backend.
Ignore "stopped" until it unabiguously represents an error state.