Commit graph

4463 commits

Author SHA1 Message Date
Evan Morikawa 8a18ac3e14 fix(load): fix window load timing
Summary:
The app regressed to launching a blank white page for a while before
showing the UI. This was because I forgot to await for the now async
package loading

Test Plan: Manually boot app with compile cache disabled

Reviewers: mark, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3883
2017-02-10 15:52:40 -05:00
Juan Tejada 3a49bfe448 fix(specs) Fix Spellchecker tests
Summary:
Previously, these tests were mostly testing the library itself, instead
of our code. The library performed expensive operations and caused the
test to time out more often than not

This commit makes it so we test our code, mock out any calls to side
effects, and removes a line that was overriding our jasmine timeout

Test Plan: unit

Reviewers: spang, evan, halla

Reviewed By: evan, halla

Differential Revision: https://phab.nylas.com/D3885
2017-02-10 12:36:07 -08:00
Juan Tejada 6d379efba1 fix(specs) Use shallow rendering
Now that we have 15.4.2, we don't have to worry about:
https://github.com/facebook/react/pull/8097
2017-02-10 12:19:38 -08:00
Juan Tejada 0638b843b6 fix(specs) Synchronously render test reporting gui for better stack traces 2017-02-10 12:19:18 -08:00
Juan Tejada ad88dc3fe8 bump(react) 15.4.2 2017-02-10 12:17:34 -08:00
Mark Hahnenberg a71dabbe7a [cleanup] Remove random option that's no longer used
Summary: See diff title

Test Plan: yolo

Reviewers: juan, evan, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D3873
2017-02-10 10:17:15 -08:00
Mark Hahnenberg b030eee5c5 [notifications] Fixup "Nylas is Offline" notification
Summary:
This notification was randomly appearing and not going away on its own.
This was due to some weird logic in the react component. This diff
refactors things to make them a little more consistent.

Test Plan:
Run locally, disconnecting and reconnecting to make sure we properly
show and hide the notification.

Reviewers: evan, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3881
2017-02-10 10:15:52 -08:00
Juan Tejada 8b91fa9780 fix(api-error) Fix APIError constructor 2017-02-10 09:28:04 -08:00
Juan Tejada 31dc6d67cf bump(version) 1.0.25 2017-02-09 23:54:20 -08:00
Juan Tejada d1f3c9c042 fix(specs) Fix react warning 2017-02-09 16:56:29 -08:00
Juan Tejada 61543a0c6e fix(specs) Fix spellchecker tests 2017-02-09 16:35:52 -08:00
Evan Morikawa eb5aa235a8 fix(build): re-add specs back into build process 2017-02-09 19:07:00 -05:00
Evan Morikawa ceaad6b13c fix(specs): fix util specs 2017-02-09 19:05:19 -05:00
Juan Tejada c3d2d0563f fix(specs) lock enzyme version 2017-02-09 15:45:22 -08:00
Juan Tejada 3fff1227e8 fix(specs) Fix tokenizingfield specs 2017-02-09 15:32:32 -08:00
Evan Morikawa 703da64253 fix(specs): fix more tests 2017-02-09 18:29:30 -05:00
Evan Morikawa 7ae89927e1 fix(specs): fix more broken specs 2017-02-09 18:17:11 -05:00
Evan Morikawa ccaf78ce99 fix(specs) fix specs logging erroneous error messages 2017-02-09 17:51:43 -05:00
Mark Hahnenberg 3fa07164f8 [keytar] Report errors when keytar fails to load passwords
Summary: See title

Test Plan: yolo

Reviewers: evan, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3871
2017-02-09 14:50:32 -08:00
Juan Tejada ce43d1c2c9 fix(specs) Fix ClipboardService specs 2017-02-09 13:57:27 -08:00
Juan Tejada c44324e636 fix(specs) Fix AutoUpdateManager specs 2017-02-09 13:29:50 -08:00
Juan Tejada ba464e9f21 fix(spec) Never report errors in spec mode 2017-02-09 13:11:10 -08:00
Evan Morikawa eca7f2cd6d fix(spec): fix package manager spec 2017-02-09 15:17:58 -05:00
Evan Morikawa 078a6a253f fix(error): fix error reporter crashing with extra errors 2017-02-09 15:09:49 -05:00
Christine Spang b33653bdd8 🎨 s/N1/Nylas Mail/ in window hang/crash dialogs 2017-02-09 10:52:37 -08:00
Juan Tejada 738ab3866d update changelog 2017-02-09 10:40:03 -08:00
Juan Tejada 36f18c273d bump(version) 1.0.24 2017-02-09 10:30:17 -08:00
Juan Tejada 3f872a5b40 bump k2 2017-02-09 09:27:51 -08:00
Juan Tejada 1e34a2e33b 🎨 Fix unhandled api rejections/Prefer promises over success option for api requests
Summary:
This commit modifies the api of NylasAPIRequest to /not/ take `success`
or `error` callback options at all, and only returns a Promise which you
can `then` and `catch` to handle the api response.

The fact that it returned a promise, and /also/ took `success` and
`error` callback options made it really confusing to use.

Additionaly, when using the callbacks intead of a promise, any errors
would be unhandled and reported to Sentry because even though the `error`
callback was being passed, the promise returned by `run()` still rejected and
no one was handling that reject, so it reached the `unhandledRejection` event
listener. This is undesirable because if you passed an `error` callback, it
means that you intended to handle it.

An example of this is calling the clearbit API, which will more often than
not return a 404, and even though we had an error handler which ignored the 404,
it still unecessarilly reported to Sentry, flooding it with events

Test Plan: manually check all updated codepaths still work

Reviewers: halla, spang, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3869
2017-02-09 09:19:55 -08:00
Juan Tejada 9e55e9d4c9 bump(changelog) 2017-02-09 00:28:24 -08:00
Juan Tejada 01580a931f update gitignore 2017-02-08 20:36:12 -08:00
Juan Tejada 1d3b301714 fix(metrics) Report task perf metrics to mixpanel
Summary: see title

Test Plan: manual

Reviewers: spang, evan, mark

Reviewed By: mark

Differential Revision: https://phab.nylas.com/D3866
2017-02-08 20:06:55 -08:00
Juan Tejada 767edd7b6e bump(version) 1.0.23 2017-02-08 18:43:53 -08:00
Juan Tejada 8ca57ca8f0 bump k2 2017-02-08 18:27:25 -08:00
Juan Tejada 61a78f14c3 bump k2 2017-02-08 17:52:01 -08:00
Mark Hahnenberg e74e476dab [composer] Fix draft truncation due to error during _onDOMMutated
Summary:
During the _onDOMMutated callback, we disconnect the mutation observer,
call some other callbacks, and then reconnect the mutation observer. If
we threw an error during the callbacks before reconnect the mutation
observer we would never get any more callbacks when the user changed
things in the composer, causing us to stop saving updates to drafts
(among other things). The fix is to just make sure that we always
reconnect the mutation observer using a finally clause.

Test Plan:
Run locally, make sure drafts are no longer truncated after spelling
correction (which was triggering an error to be thrown)

Reviewers: juan, evan, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D3864
2017-02-08 17:45:55 -08:00
Evan Morikawa d1eb969d02 feat(config): dev version now used ~/.nylas-dev instead of ~/.nylas-mail
Summary:
This diff (and the K2 counterpart diff) allow us to run dev-mode Nylas
Mail side-by-side with prod Nylas Mail.

There were 4 things that needed to change:

1. Use different config dir
2. Use different keychain name
3. Use different localhost port
4. Prevent Electron's app.makeSingleInstance from killing our app

All of these are activated through NylasEnv.inDevMode()

Depends on D3861

Test Plan:
Download latest prod build from nylas.com
Remove both ~/.nylas-mail and ~/.nylas-dev
Start up downloaded Nylas Mail, connect accounts.
Run `npm start` (which enables --dev)
Connect account to dev mode
Ensure both clients are syncing and can send/receive mail

Reviewers: khamidou, halla, mark, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3862
2017-02-08 18:26:50 -05:00
Evan Morikawa 9d0fd84098 feat(config): dev version now used ~/.nylas-dev instead of ~/.nylas-mail 2017-02-08 17:21:27 -05:00
Evan Morikawa 2b975c1f84 fix(snooze): put feature usage before waiting for task move 2017-02-08 17:13:01 -05:00
Karim Hamidou d26d977535 Hide snooze popover if the plugin is disabled
Summary:
Snooze is back in the mainline but not yet ready for primetime. We need to not show the popover if it's not enabled, which is what this diff does. It should be pretty simple to revert it once snooze has officially shipped.

Fixes T7791.

Test Plan: Tested manually.

Reviewers: juan, evan

Reviewed By: evan

Maniphest Tasks: T7791

Differential Revision: https://phab.nylas.com/D3855
2017-02-08 11:33:55 -08:00
Juan Tejada 5105930d8c fix(onboarding) Actually trim email field value in form 2017-02-07 17:42:08 -08:00
Juan Tejada 53cfe7ac7d fix(onboarding) Properly trim field values 2017-02-07 14:59:38 -08:00
Juan Tejada 1287e8743f Point to latest release in update notif 2017-02-07 14:52:40 -08:00
Evan Morikawa 7aefb73ef8 feat(usage): add new feature usage modal
Summary:
This adds the "You've reached max features" modal in N1.

http://g.recordit.co/9O7R0mLlXE.gif

Test Plan:
1. Pull latest nylas/cloud-core and start Billing site:
```
  cd cloud-core
  vagrant up
  vagrant ssh
  cd /vagrant
  bin/setup-up-feature-usage
  bin/launch
```
2. Blow away ~/.nylas-mail (err backup your old one first)
3. Restart N1
4. Before logging in, edit `~/.nylas-mail/config.json`
   - set env to "local"
   - remove `thread-snooze` from the list of `disabledPlugins`
5. `cd /nylas-mail/src/k2` and run `npm start`
6. Restart N1 and create accounts & log in

Reviewers: khamidou, juan, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D3846
2017-02-07 15:46:57 -05:00
Mark Hahnenberg fbce62d97b [search-index] Fix slow UPDATE and DELETE FTS queries
Summary:
FTS tables don't support indices, so doing UPDATEs and DELETEs based on
the `content_id` was very slow on large FTS tables. Fortunately, it seems
that `UPDATE`s and `DELETE`s based on the `rowid` are much faster, so now we
store that info hanging off the searchable models. Also fixes a random bug
where after reaching the `MAX_INDEX_SIZE` we would clear the Thread search
index on startup.

Test Plan: Run locally, time how long it takes to delete when receiving new mail

Reviewers: spang, evan, juan

Reviewed By: evan, juan

Differential Revision: https://phab.nylas.com/D3847
2017-02-07 12:19:44 -08:00
Mark Hahnenberg 9812e17afa [account-store] Don't getPassword if we don't have to
Summary:
It's slow, so only do it if we've never seen the Account before. This
fixes jank that would happen somewhat randomly. It was especially noticeable
if the user had a lot of Accounts (and therefore a lot of passwords to
load).

Test Plan: Run locally, verify that we only load new Accounts

Reviewers: spang, evan, juan

Reviewed By: evan, juan

Maniphest Tasks: T7766

Differential Revision: https://phab.nylas.com/D3848
2017-02-07 10:58:39 -08:00
Christine Spang 6fb9871ec2 Update CHANGELOG.md 2017-02-07 09:42:34 -08:00
Juan Tejada cce2b8231b bump(version) 1.0.22 2017-02-07 09:01:06 -08:00
Karim Hamidou 6121482539 [snooze] s/expirationDate/expiration/g. 2017-02-06 17:22:07 -08:00
Mark Hahnenberg 91f55cebf5 [notification] Debounce new mail notification sound
Summary:
We don't want to overwhelm a user with a bunch of bings and bongs when
they open their laptop after a long weekend. This diff takes a
relatively simple approach by debouncing the notification sounds every 5
seconds.

Test Plan: Run locally, make sure we still get notified but not too much.

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3841
2017-02-06 17:13:25 -08:00