Commit graph

1175 commits

Author SHA1 Message Date
Juan Tejada
f46502ad3e test(plugins): Add snooze and send later specs
Summary:
- Also refactors the code a bit for testability and maintainability
- Fixes #1515

Test Plan: - Unit tests

Reviewers: evan, drew, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2651
2016-03-03 12:38:42 -08:00
Ben Gotow
9b54d9cf31 fix(MessageContainer): Fix state, prevent from getting different messages. #1175
Summary:
This fixes a serious issue where drafts could appear to be sending if
they were located in the same index of the message list as a draft which was
previously sending.

Under the hood this was due to two bad programming choices:

1) State based on props in MessageContainer requires correct implementation of
   componentWillReceiveProps. This is definitely an anti-pattern.

2) Using item index rather than clientId as the key for items in the MessageList
   caused containers to be given a different message prop when one was inserted,
   rather than just shifting the existing ones down and inserting a new one.

Test Plan: Not sure how to test this really...

Reviewers: drew, juan

Differential Revision: https://phab.nylas.com/D2673
2016-03-03 12:10:03 -08:00
Jackie Luo
83fa692bb5 Bump version for node-emoji 2016-03-02 18:58:07 -08:00
Evan Morikawa
572498aa68 fix(composer): fix minor spacing issue on popout composer 2016-03-02 16:06:40 -08:00
Evan Morikawa
b727fe374d fix(find-in-thread): minor rename fixes 2016-03-02 15:00:01 -08:00
Evan Morikawa
10e0fcc965 feat(find-in-thread): add the ability to find in a thread
Summary: Find in thread

Test Plan: todo

Reviewers: bengotow, juan

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2660
2016-03-02 14:46:27 -08:00
Ben Gotow
a53e72f542 fix(hidden-messages): Address diff feedback from @jstejada 2016-03-02 10:28:32 -08:00
Ben Gotow
f5ee557e2e feat(hidden-messages): Filter trash/spam messages. Fixes #1135
Summary:
By default, the messages in a thread are now filtered to exclude
ones moved to trash or spam. You can choose to view those messages by clicking
the new bar in the message list.

When you view your spam or trash, we only show the messages on those threads
that have been marked as spam/trash.

Test Plan: Run a couple new tests

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2662
2016-03-02 10:05:17 -08:00
Evan Morikawa
66d1fe67e8 fix(account): re-add token if a new one comes in
Summary: fix(account): allow users to reconnect accounts if auth has failed

Test Plan: manual

Reviewers: bengotow, juan

Differential Revision: https://phab.nylas.com/D2663
2016-03-01 16:02:20 -08:00
mbilker
a1b9775b6d lint(*): correct eslint errors, warnings still exist
There are warnings in `spellcheck-composer-extension.es6` for the `while (true)`
loops.
2016-03-01 10:58:29 -05:00
Jackie Luo
876aea0ad9 fix(composer-emojis): Insert emoji on tab, fixes #1511 2016-02-29 20:46:30 -08:00
Ben Gotow
94badcda15 es6(*): convert 20+ source files used in example packages to ES2016
There could be a few lurking bugs. Please test!
2016-02-29 18:47:22 -08:00
Ben Gotow
3072246d8e temp(onboarding): Remove checkbox for option not yet on prod 2016-02-26 16:49:46 -08:00
Drew Regitsky
3327fc4cff fix(message-controls): add accountId to debug values copied to clipboard 2016-02-26 15:13:33 -08:00
Ben Gotow
b92e4fa07b fix(threads): Right-align the timestamps in the thread list 2016-02-26 15:00:56 -08:00
Ben Gotow
04f93bd055 💄(print): Fix #1425 2016-02-26 14:40:16 -08:00
Ben Gotow
18677e51a6 fix(config): Store cursors with sync state, avoid constant config.cson writes
Summary:
Previously we were storing sync cursors in config.cson. They were by
far the most frequently updated piece of data in config. To make things worse,
all the writing was happening in the worker window - the main window was just
seeing the changes on disk and reloading.

I believe there's an edge case which causes the main window to read the config
file when it's mid-write and empty. This causes the accounts array to become
empty in the AccountStore and lots of downstream issues. It's also then possible
for the main window to write a config change of it's own and empty the file
permanently.

Test Plan: A few new tests to make sure this is backwards compatible.

Reviewers: juan, evan

Reviewed By: juan, evan

Differential Revision: https://phab.nylas.com/D2642
2016-02-26 13:52:19 -08:00
Drew Regitsky
d3d4978dbd fix(message-controls): update email address for reporting 2016-02-26 12:29:11 -08:00
Drew Regitsky
0e522ec789 feat(message-controls): Option to copy message IDs/metadata to clipboard 2016-02-26 12:26:20 -08:00
Juan Tejada
0b5afaad71 fix(lint) 2016-02-26 11:24:00 -08:00
Juan Tejada
8e382f8c26 fix(aliases): Fix regression to properly create/update/remove aliases
- This fixes #1428
- Add specs
2016-02-26 11:01:01 -08:00
mbilker
1a5766114e lint(system-tray): code style consistent with rest of file 2016-02-26 11:37:20 -05:00
mbilker
38dce709e2 fix(system-tray): rename icon files for Windows and Linux 2016-02-26 11:23:53 -05:00
Drew Regitsky
e313da8a6b fix(metadata): update metadata version when processing deltas 2016-02-25 16:20:58 -08:00
logandavis
dded8abd7f Re-add SSL checkboxes with name ssl_required
Summary:
Now that IMAP auth without SSL is enabled,
those checkboxes that weren't doing anything can come
back.

Test Plan:
This change isn't fully tested and should be thoroughly
inspected (on staging?) before rollout. The N1 end works and sends
parameters correctly, but a 401 prevented local testing of the
interface between N1 auth and sync-engine auth.

Reviewers: bengotow, drew

Reviewed By: drew

Subscribers: kav-ya

Maniphest Tasks: T6666

Differential Revision: https://phab.nylas.com/D2632
2016-02-25 14:38:49 -08:00
Ben Gotow
1df517c4af bump(version): 0.4.9 and changelog 2016-02-25 14:10:21 -08:00
Juan Tejada
dd92c9b6ad fix(snooze): Do not display snooze buttons unless looking at inbox 2016-02-25 14:02:58 -08:00
Evan Morikawa
d97e724c1b fix(analytics): fix send later and snooze analytics 2016-02-25 14:01:15 -08:00
Ben Gotow
816596d422 perf(snooze): Don't wrap snooze label in unsafe container 2016-02-25 13:39:30 -08:00
Ben Gotow
94a8ca57d8 fix(link/open tracking): Update error messages 2016-02-25 13:32:59 -08:00
Ben Gotow
a1db17e3c9 fix(snooze): Hide N1-Snoozed from the category picker 2016-02-25 13:32:58 -08:00
Evan Morikawa
e77d658a96 fix(composer): focus on the absolute end when clicking near the bottom 2016-02-25 13:31:34 -08:00
Juan Tejada
93f43f6b4f feat(snooze): Add snooze date label to snooze threads
- Adds a new InjectedComponentSet for the role 'ThreadList:Label'.
- Adds a new label to the thread list indicating the snooze date if the
  thread has been snoozed
- Coerces MailLabel to achieve this. This is a temporary hack, we should
  design a better view to display snooze date information
2016-02-25 13:12:40 -08:00
Ben Gotow
fe27fb161f fix(link/open tracking): Remove intermediate metadata states, extra db lookup, dead code 2016-02-25 12:54:18 -08:00
Evan Morikawa
274131863f feat(analytics): add analytics to send later, snooze, tracking 2016-02-25 12:34:09 -08:00
Drew Regitsky
d5ba162e82 fix(composer-buttons): Fix broken icons on overflow, make buttons wrap 2016-02-25 12:30:20 -08:00
Evan Morikawa
cc15d35848 fix(plugin): better errors if plugins are malformed
Fixed read assets
2016-02-25 11:55:11 -08:00
Juan Tejada
57d7057161 💄(composer): Properly align 'X more' token 2016-02-25 11:42:38 -08:00
Ben Gotow
bb99f95d2c sp(translate): Transalate => Translate 2016-02-25 11:05:07 -08:00
Juan Tejada
58833b39e8 feat(snooze): Update message in toast when snoozing
- Adds new arg to ChangeLabelTask and ChangeFolderTask to override
  default description
- Adds custom description to task when snoozing
2016-02-25 10:42:21 -08:00
Juan Tejada
2a757f332e fix(plugins): Add headers for composer popover + Fix in snooze popover 2016-02-25 10:24:29 -08:00
Evan Morikawa
407498057c fix(composer): minor padding fix in composer 2016-02-25 10:06:17 -08:00
Ben Gotow
296110d177 fix(swipe): Make it easier to close snooze-confirm swipe state, fix double-popover issue 2016-02-24 21:01:23 -08:00
Jackie Luo
5a480031f0 fix(composer-emojis): Adjust width for overflower 2016-02-24 20:41:54 -08:00
Ben Gotow
9d0ebe9423 fix(snooze): A few minor popover adjustments. See desc.
- Rather than have a `showing` prop on the fixed popover, I just remove it and put a span in it's place when it's gone. This means we always get componentDidMount when the popover appears and simplifies when to focus it's content.
- The fixed popover implements esc and blur behaviors itself
- The fixed popover uses the background-secondary color and works in dark mode
- The snooze items have hover and active states
2016-02-24 20:05:21 -08:00
Ben Gotow
030b60d27d fix(star): Bulk star icon has never shown current state(?!) 2016-02-24 20:05:21 -08:00
Juan Tejada
dea8318e13 💄(plugins): Add error messages back to plugin dialogs 2016-02-24 18:22:54 -08:00
Ben Gotow
21b1cd4e19 fix(build): Don't delete plugin package.json files, restore ellipsis (@sdw consulted HIG!) 2016-02-24 18:15:55 -08:00
Drew Regitsky
db5c822ccf fix(snooze): options text capitalization: title case => sentence case 2016-02-24 17:56:52 -08:00
Juan Tejada
8e26c8574f fix(lint): Fix lint errors 2016-02-24 17:53:31 -08:00