- We have to manually check if we are inserting a thread to the index
that already exists because the virtual table does not support unique
indexes
- Add versioning to the index to be able to rebuild it for the next
update
commit efe58092494c8870072bdf45991c122624bb93e6
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue Jun 7 13:06:25 2016 -0700
patching specs
commit 15a346b93efa5a21327f6bd7c14ef60ddc0f79bb
Author: Ben Gotow <bengotow@gmail.com>
Date: Mon Jun 6 17:49:20 2016 -0700
A few small fixes
commit d4cc62a90d2d4f101b71bc57b5521353d2175219
Merge: 80018c0 17d9c3d
Author: Ben Gotow <bengotow@gmail.com>
Date: Mon Jun 6 17:32:00 2016 -0700
Merge branch 'master' into wip/keybase
Conflicts:
build/Gruntfile.coffee
internal_packages/onboarding/lib/page-authenticate.jsx
commit 80018c045527dec331118426ce67d82c44926334
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri Jun 3 18:12:39 2016 -0700
Re-styles decryption interface, temporarily removes file decryption
The decryption interface was ugly as hell. Now it's aligned with
the "Message Encrypted" notice and also the ugly text input is
gone - replaced by a much nicer-looking popover. In the course of
this refactor, file decryption was temporarily deactivated, but
will return soon.
commit ed1e6232803e2c6b8930f5ed2bd6ccde56542b3b
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri Jun 3 15:39:02 2016 -0700
Adds more information to key-adder UI
User testing indicated that the key-adder UI didn't provide
enough feedback about incorrect inputs and the slow load time
of key generation. This commit adds a spinning wheel while loading
and a span describing which inputs are incorrect.
commit 4d7908635cd606a3ebb2607537127dd1c5740a35
Author: logandavis <logankeahidavis@gmail.com>
Date: Thu Jun 2 18:40:57 2016 -0700
Touches up search
Fixes a bug in the search debouncing that was sometimes
allowing users to modify search queries and not have the
new query searched. Added messaging to stop people from
trying to search keybase by email address.
commit 140ae6679758d8ed54d1b6b7bd5c837f84132363
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed Jun 1 17:35:39 2016 -0700
Adds import from file and unifies paste in key-adder.cjsx
User review feedback indicated that key import was a big pain
point - pasting keys was a pain in the butt, private keys
could be saved as public keys, etc. This commit is the functional
overhaul (and refactor) for the key-adder on the preferences
page. It adds an Import from File function and merges
Paste Private and Paste Public into just Paste, which autodetects.
commit 297f9ed482f4e83c52e40e479a31ba1bffad3f7d
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 21:11:01 2016 -0700
fix(es6): Converstion broke file uploads by adding body: {}
commit 7815e90c49c70339cd6d26d48e818d4f5f962b7f
Merge: af54f01 0af27ee
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed Jun 1 14:49:14 2016 -0700
Merge branch 'wip/keybase' of github.com:nylas/N1 into wip/keybase
commit af54f0165b95447ffa04c1e324e02d892b20d047
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed Jun 1 14:47:03 2016 -0700
Bugfixes: clientID not found (from rebase) and modal on new email
User testing revealed two pretty noxious bugs, one when you email
someone who's not saved as a contact and one caused by an update
to mail merge requiring inputs to Participant-Text-Field that
n1-keybase wasn't provided. This fix patches modal-key-recommender
to use emails as a fallback to contacts and sets a reasonable
default for the input to Participant-Text-Field.
commit 0af27ee10666f35f248a4191fe937cde920d6baf
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 19:10:11 2016 -0700
fix(specs): Empty parameter list
commit 87407249c2bfa7737a4609ac89b46c3b5a074f76
Merge: e4c050b 9892473
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 18:08:46 2016 -0700
Merge branch 'master' into wip/keybase
commit e4c050b599fbc83b6249634297483a5683fe3c56
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 18:08:42 2016 -0700
fix
commit 6c7857890df9d277f786b87ab996feeec4089c3b
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 18:05:35 2016 -0700
fix(linter): Minor issue
commit 36197effd6c8ca3648a5010dac874c9a990fb1b9
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 18:02:26 2016 -0700
fix(lint)
commit 73dd4850bf675f983ecfcc5ef65e91b9aa118e16
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 17:52:18 2016 -0700
fix(lint): Don't lint node_modules of packages
commit 15c9d42f2d896f22092465e78cb340d07e0086ac
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 17:36:24 2016 -0700
patch(auth): Remove unused import
commit 8756b2b5314fd0366caf8b2e12a3bc5e527bc593
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 31 17:33:30 2016 -0700
patch(auth): Temporarily remove auth flow
commit 135395e4afdfcc8ba57667e60fa73ef55e126c2f
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 31 17:25:08 2016 -0700
linting fix
commit 1049449f211111e704b3e543d2748339bf9cc6fd
Merge: e6a8f9e e1275eb
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 31 15:50:00 2016 -0700
merge commit
commit e6a8f9ebadcc3d1b1444c8676d15b730a0d7a5c0
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 31 15:19:27 2016 -0700
move styling, update readme
commit d388eb737ae9febc197bf0fe22d505a28c669639
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed May 25 16:15:31 2016 -0700
Add Export Private Key button to preferences
commit f49062639a8f4a67a576b90a02f4b0f06dd492d0
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed May 25 12:40:23 2016 -0700
Add Export Public Key button to preferences
commit 847221b6a2c9b1a1e8b817708ed9032803de9261
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 20 15:26:37 2016 -0700
update readme
commit 1f3f14bf9c69bfea7d7d1ac79c39fe0fe6befd37
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 20 15:23:26 2016 -0700
Beautify Add Email button, catch naggling bugs
The old add email button on the preferences page, which
was not playing nice with the styling of KeybaseSearch, has
been replaced by the drop-in EmailPopover element. Also, two bugs
that were causing the console to flip out on normal, unencrypted
emails were caught and fixed - the Decrypt Button now returns
false instead of null, and attachments without filenames are
allowed.
commit a7cb363e357ff996b92946e9685416b98133de0b
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 20 14:54:00 2016 -0700
Debug and style the encryption popover modal
The encryption popover was ugly as sin and also lacking in
some functionality - it unnecessarily showed the email list,
it contained no reference to the Key Management page, it
didn't display any links to the keybase profile in question...
now it is a pretty and functional popover.
commit b4e3f5421558d4d128ffc66125657fc8b1abf1f1
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 17 18:56:08 2016 -0700
Unborks Import Key popover, obscures password fields
The Import Key popover on the preferences page was rendering off
the screen because it was always pointing at the last button
created rather than the button clicked. Now that's fixed.
commit 20ab9f825d65f40451397c8a1df484bb7e63c593
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 17 17:17:44 2016 -0700
Fixes identity filename/address management, dedupes search, encodes +
Bunch of minor bugfixes here. The identity.path refactor broke
PGPKeyStore.addAddressToKey and removeAddressFromKey, which this commit
fixes. + characters were being incorrectly encoded in messages as +
which was breaking message decryption - that's now fixed in message
preprocessing. Finally, basic Keybase search result deduplication
is now in place.
commit 8a2a5e6dc3c84ade420b16e36d2954cea661d1f1
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 17 14:13:17 2016 -0700
Adds private key management to preferences page; beautifies
Previously, the KeyManager element on the Preferences page only
exposed public keys, and there was no way to see, edit, or delete
private keys. Now you can do all of those things. This commit
also fixes some render-timing issues in PGPKeyStore._populate
that were causing nonexistent keys to appear (one on key generation,
one on deletion of the final key) and improves the styling of
the Preferences page.
commit 3c39431dd6ad3a8c19770c6ddd46d508ee92d4bb
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 13 15:22:40 2016 -0700
burns the dead code out of preferences-keybase
commit eb7b924d5e00946ebb3e7174f54f2c1dde1ff616
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 13 14:58:51 2016 -0700
Fix key generation and saving from the preferences page
An earlier refactor away from key objects and towards identity
objects borked the old key saving code. This commit refactors
the key-saving code so that keys can be manually added from
the preferences page again, and also makes said code much
clearer.
commit e1f78d0080505102bf421c8c3638fee527d84481
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 11 17:41:24 2016 -0700
add README of todos
commit c44d7995fc3cc097fb8f98689dd18488920488cf
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 11 17:41:12 2016 -0700
heavy style pass, misc bugfixes, add assets
commit 47208ca2d947ac4b04c1fec14b433f7c6105fe1d
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 11 14:03:06 2016 -0700
Decrypting files first pass, problem with unlocking keys
commit fc2a56574c1eb0a7098280f3e7a2ca5d6697340c
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 4 17:52:32 2016 -0700
Cause message to encrypt on key picker popover close
commit 545392dee9db2754c6b729bd9549c071e1568ddd
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 4 12:04:08 2016 -0700
light design pass on the modal (now a popover)
commit 2726aab32dd74a68936a7d80d6e49b879f182ee3
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon May 2 15:47:45 2016 -0700
Key picker modal functional for multiple recipients, still needs lots of cleanup
commit 050114acf36b8654de80726352812e945ac88968
Author: Dakota Nelson <dakota@nylas.com>
Date: Fri Apr 29 14:52:33 2016 -0700
Key picker modal functional for single recipient
commit 865c7c8894b30a55e4c6027dd6f03fea5d0bb330
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 28 17:31:08 2016 -0700
modal now allows selection of keybase user
commit 728c995314b3238bdb3222c7d12353ab2e35a65a
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 28 10:46:47 2016 -0700
consolidate key cache into one object, fix all tests
commit 4bdd49ebd60beadf72b7aa099cfded09861768af
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed Apr 27 11:49:54 2016 -0700
checkpoint commit for key selection modal in composer
commit 7d33d832f6587814f8da142e14f9a7f8256114b9
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 17:46:01 2016 -0700
Remove infinite loop of doom, match keys properly
commit 7a4c1d60c1f1455e70a190710b59970ab2ed3b2a
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 14:31:41 2016 -0700
Re-add some of Logan's changes lost in the repo migration
commit 6c1e31601e499f69c8df5b9f1a5244480ec67da1
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 13:52:55 2016 -0700
slightly improve style on the decryption interface
commit 78f115f59ce09f57621776be4287e1e3a9d047b4
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 13:10:27 2016 -0700
update keybase profile type translation to include proofs
commit 664c61fdd5e03d9ba4afa40d14673ad7733b1e30
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 11:54:35 2016 -0700
Replace undocumented 'key' objects with explicit 'identity' objects
commit 0824cc0a522e9d9d8045d7a87ef3b7ec8381090e
Author: Dakota Nelson <dakota@nylas.com>
Date: Fri Apr 22 13:33:18 2016 -0700
Remove unused code
commit f0fd315cf7daf64f63d933508a6799ae4b5b4f18
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 21 17:24:54 2016 -0700
Further refactor keybase plugin
commit 086e86f289213789f5796b5b1febee709986b89a
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 21 15:53:54 2016 -0700
Refactor, and a useless commit msg
commit 1fcda3875424a3ba4ba54f25644b43690b153324
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed Apr 20 16:16:26 2016 -0700
Fix linter errors (reported via cd build; grunt lint)
commit fcc937e6b50e43932478437ecf6dabb2f96fa15c
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed Apr 20 16:08:42 2016 -0700
Keybase API was 500'ing - move API adapter to standard (err, data) callback format and make it only call the callback once when error is hit (return after erroring)
commit fd0b4220af13cc80b4c88f9e2e63976a54ac50d4
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed Apr 20 15:56:27 2016 -0700
Fix state were user has no pub keys
commit 13886101fcf63e4e497526c2e039cbb791670c06
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed Apr 20 15:25:30 2016 -0700
add Logan's changes from the other repo
commit 6e9103b4188414ddd6e01db2c4c50c68ad54caca
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed Apr 20 15:22:34 2016 -0700
minor styling change to improve keybase popover
commit fd0749a7c1c9202b94dc5a47bad26d8960c17099
Author: Dakota Nelson <dakota.w.nelson@gmail.com>
Date: Wed Apr 20 12:30:40 2016 -0700
feat(keybase): Initial commit from n1-keybase repo
commit e1275eb9ea548f76c06eb605b77a62d314f3d10f
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 31 15:19:27 2016 -0700
move styling, update readme
commit 7f64713cc5d8cfdc59eca3c007cf673e5e2b6dea
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed May 25 16:15:31 2016 -0700
Add Export Private Key button to preferences
commit 9d4e2552388f94fb7113ab80906519dce4d7350f
Author: logandavis <logankeahidavis@gmail.com>
Date: Wed May 25 12:40:23 2016 -0700
Add Export Public Key button to preferences
commit 166585dba9ece8d5dd529418b934947985ace5a3
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 20 15:26:37 2016 -0700
update readme
commit f875c4146e98152cf4d050fc5af3c322c2d5fdae
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 20 15:23:26 2016 -0700
Beautify Add Email button, catch naggling bugs
The old add email button on the preferences page, which
was not playing nice with the styling of KeybaseSearch, has
been replaced by the drop-in EmailPopover element. Also, two bugs
that were causing the console to flip out on normal, unencrypted
emails were caught and fixed - the Decrypt Button now returns
false instead of null, and attachments without filenames are
allowed.
commit 48713d78381fb7320ce265b84c95f8b1497008f7
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 20 14:54:00 2016 -0700
Debug and style the encryption popover modal
The encryption popover was ugly as sin and also lacking in
some functionality - it unnecessarily showed the email list,
it contained no reference to the Key Management page, it
didn't display any links to the keybase profile in question...
now it is a pretty and functional popover.
commit a607f97f8082a14a29ebd5c2d8b397872ef5456a
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 17 18:56:08 2016 -0700
Unborks Import Key popover, obscures password fields
The Import Key popover on the preferences page was rendering off
the screen because it was always pointing at the last button
created rather than the button clicked. Now that's fixed.
commit 2afd41894aa297dcd6aec0b785cadbb533377f80
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 17 17:17:44 2016 -0700
Fixes identity filename/address management, dedupes search, encodes +
Bunch of minor bugfixes here. The identity.path refactor broke
PGPKeyStore.addAddressToKey and removeAddressFromKey, which this commit
fixes. + characters were being incorrectly encoded in messages as +
which was breaking message decryption - that's now fixed in message
preprocessing. Finally, basic Keybase search result deduplication
is now in place.
commit 4824556543dce31b14be81ebe471f8febb55e00c
Author: logandavis <logankeahidavis@gmail.com>
Date: Tue May 17 14:13:17 2016 -0700
Adds private key management to preferences page; beautifies
Previously, the KeyManager element on the Preferences page only
exposed public keys, and there was no way to see, edit, or delete
private keys. Now you can do all of those things. This commit
also fixes some render-timing issues in PGPKeyStore._populate
that were causing nonexistent keys to appear (one on key generation,
one on deletion of the final key) and improves the styling of
the Preferences page.
commit 47c05fc485c80b297b6027f9bdabb5f921be77b3
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 13 15:22:40 2016 -0700
burns the dead code out of preferences-keybase
commit 6fdf34e5c4188994844052d95d927cab1ed182ea
Author: logandavis <logankeahidavis@gmail.com>
Date: Fri May 13 14:58:51 2016 -0700
Fix key generation and saving from the preferences page
An earlier refactor away from key objects and towards identity
objects borked the old key saving code. This commit refactors
the key-saving code so that keys can be manually added from
the preferences page again, and also makes said code much
clearer.
commit a1b4b4fdb4b35a844ca490d3e9029dbbf4d7bf24
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 11 17:41:24 2016 -0700
add README of todos
commit 6747a0a447476ca6af829886ec304d57bc5dd0ee
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 11 17:41:12 2016 -0700
heavy style pass, misc bugfixes, add assets
commit 8544e4b84341f0bc49a1765c057cbf443c220448
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 11 14:03:06 2016 -0700
Decrypting files first pass, problem with unlocking keys
commit 428dc6739fb29f833c53e957e7a998abf25460ac
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 4 17:52:32 2016 -0700
Cause message to encrypt on key picker popover close
commit 9d8ef053beca3ef6bbc910de272f1b98033599bf
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed May 4 12:04:08 2016 -0700
light design pass on the modal (now a popover)
commit b4a0ad2fa2ac33dbf3333e4beb9ac0df04aa107d
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon May 2 15:47:45 2016 -0700
Key picker modal functional for multiple recipients, still needs lots of cleanup
commit 6bf96d973c7e19de103695f3d6e3346c8db2dab3
Author: Dakota Nelson <dakota@nylas.com>
Date: Fri Apr 29 14:52:33 2016 -0700
Key picker modal functional for single recipient
commit f5f0e6aea8c16aefd3cdcbe19664bed708857693
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 28 17:31:08 2016 -0700
modal now allows selection of keybase user
commit 83f7ad54bcab7c24da033d8fe60a602b27b79ded
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 28 10:46:47 2016 -0700
consolidate key cache into one object, fix all tests
commit f8ec4576dee108584e946a7e4c6b9f17885921de
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed Apr 27 11:49:54 2016 -0700
checkpoint commit for key selection modal in composer
commit c4dd851402162bcaa7e3b8cebf911d6a57fdfdbc
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 17:46:01 2016 -0700
Remove infinite loop of doom, match keys properly
commit 537d2b423b9c4210c97bda0bf00cbbd1a4ebc80f
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 14:31:41 2016 -0700
Re-add some of Logan's changes lost in the repo migration
commit 91d86ad6b69edee59de4938c24143e186ad5523a
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 13:52:55 2016 -0700
slightly improve style on the decryption interface
commit 321ea22c01a6f346325870049a0664155b7ee71f
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 13:10:27 2016 -0700
update keybase profile type translation to include proofs
commit b8821490432e582a53e7416b49476f90ab59f230
Author: Dakota Nelson <dakota@nylas.com>
Date: Mon Apr 25 11:54:35 2016 -0700
Replace undocumented 'key' objects with explicit 'identity' objects
commit 0999127bcd9c3cd75e17a8a4e6d37c5b53bc22ef
Author: Dakota Nelson <dakota@nylas.com>
Date: Fri Apr 22 13:33:18 2016 -0700
Remove unused code
commit 3ddfc4e6946b3ed3e051c561cdda7499d326058f
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 21 17:24:54 2016 -0700
Further refactor keybase plugin
commit 1b5a9de2c9b2084a214619ce7c551ed6e9283a96
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 21 15:53:54 2016 -0700
Refactor, and a useless commit msg
commit 999dd82e225b2d8209ee4f7be3cc0ab43c8e53b8
Author: Dakota Nelson <dakota@nylas.com>
Date: Thu Apr 21 11:43:02 2016 -0700
Modify participants func to optionally allow from and bcc
commit 9cdf258f5df9fd34ac94bf9822fdd7256af1bb9a
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed Apr 20 16:16:26 2016 -0700
Fix linter errors (reported via cd build; grunt lint)
commit c14fc59b6f236191b759bda6561c5f343401e8ab
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed Apr 20 16:08:42 2016 -0700
Keybase API was 500'ing - move API adapter to standard (err, data) callback format and make it only call the callback once when error is hit (return after erroring)
commit f0225603abb56b14e540f8419cb212760cf0883d
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed Apr 20 15:56:27 2016 -0700
Fix state were user has no pub keys
commit 818881523c698b1bd368344e9ff29ae870f9aae2
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed Apr 20 15:25:30 2016 -0700
add Logan's changes from the other repo
commit 69f2003ff11be741b97bbb36a7bb4afd29ac7ecc
Author: Dakota Nelson <dakota@nylas.com>
Date: Wed Apr 20 15:22:34 2016 -0700
minor styling change to improve keybase popover
commit 4081ad7ef2b4375f5665904eb2d61992bab9cf4d
Author: Dakota Nelson <dakota.w.nelson@gmail.com>
Date: Wed Apr 20 12:30:40 2016 -0700
feat(keybase): Initial commit from n1-keybase repo
- When focusing a perspective:
- If sidebar is unified inbox then don't the sidebar layout
- If sidebar is for a single account, then update to the appropriate
single account
- Renames some variables
Summary:
- FocusedPerspectiveStore now holds the state of the accounts that are currently being displayed in the sidebar, i.e. unified inbox or not, which makes it globally accessible state. The SidebarStore just reads this state directly off of the FocusedPerspectiveStore to decide which sections and items to display in the sidebar.
- Updates `Actions.focusDefaultMailboxPerspectiveForAccounts` to take an optional array of `sidebarAccountIds` to set in the sidebar. The default behavior is to show the accounts of the perspective that will be focused. E.g. when selecting an account via the account switcher, it will just show the sidebar items for the single account that was selected, but when adding a new account, we are setting the sidebar accounts to all account although we are still focusing the perspective for a single account.
- Will now show unified inbox sidebar with correctly focused account when new account added.
- Cleans up the code a little bit, but this package still needs major refactor
Test Plan: Missing!
Reviewers: jackie, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D3002
Summary: Just a small patch to address bad messaging
Test Plan: Run one new test!
Reviewers: jackie, juan
Reviewed By: jackie, juan
Differential Revision: https://phab.nylas.com/D3000
commit 50d0cfb87c
Author: Ben Gotow <bengotow@gmail.com>
Date: Fri May 27 14:01:49 2016 -0700
IdentityStore conveniene methods for subscription state
commit 80c3c7b956
Author: Ben Gotow <bengotow@gmail.com>
Date: Fri May 27 12:03:53 2016 -0700
Periodically refresh identity, show expired notice in top bar
commit 5dc39efe98
Merge: 4c4f463906ea74
Author: Juan Tejada <juans.tejada@gmail.com>
Date: Thu May 26 15:17:46 2016 -0700
Merge branch 'bengotow/n1-pro' of github.com:nylas/N1 into bengotow/n1-pro
commit 4c4f463f4b
Author: Juan Tejada <juans.tejada@gmail.com>
Date: Thu May 26 15:16:48 2016 -0700
Hijack links inside email that go to billing site and add SSO to them
commit 906ea74807
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 26 12:02:29 2016 -0700
Add custom welcome page for upgrading users
commit 2ba9aedfe9
Author: Juan Tejada <juans.tejada@gmail.com>
Date: Wed May 25 17:27:12 2016 -0700
Add styling to Subscription tab in prefs
commit 384433a338
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 16:21:18 2016 -0700
Add better style reset, more IdentityStore changes
commit c4f9dfb4e4
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 15:29:41 2016 -0700
Add subscription tab
commit bd4c25405a
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 14:18:40 2016 -0700
Point to billing-staging for now
commit 578e808bfc
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 13:30:13 2016 -0700
Rename account helpers > onboarding helpers
commit dfea0a9861
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 13:26:46 2016 -0700
A few minor fixes
commit 7110217fd4
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 12:58:21 2016 -0700
feat(onboarding): Nylas Pro onboarding overhaul
Summary:
Rip out all invite-related code
Enable Templates and Translate by default
Scrub packages page, unused code in onboarding pkg
Remove resizing
New onboarding screens
IMAP provider list, validation
Call success with response object as well
Renaming and tweaks
Test Plan: No tests yet
Reviewers: evan, juan, jackie
Differential Revision: https://phab.nylas.com/D2985
commit dc9ea45ca9
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 12:52:39 2016 -0700
Renaming and tweaks
commit 5ca4cd31ce
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 11:03:57 2016 -0700
Call success with response object as well
commit 45f14f9b00
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 24 18:26:38 2016 -0700
IMAP provider list, validation
commit c6ca124e6e
Author: Ben Gotow <bengotow@gmail.com>
Date: Sat May 21 11:14:44 2016 -0700
New onboarding screens
commit dad918d926
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:37:31 2016 -0700
Remove resizing
commit ecb1a569e2
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:36:04 2016 -0700
Scrub packages page, unused code in onboarding pkg
commit 3e0a44156c
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:33:12 2016 -0700
Enable Templates and Translate by default
commit 0d218bc86f
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:30:47 2016 -0700
Rip out all invite-related code
Summary:
- Fixes several selection and focus issues along the way
- Can now preview what tokens will look like when not editing
- Adds decorator to listen to mail merge session changes and removes a bunch of duplicated code
- Gets rid of all imperative code (and specs) that had to imperatively
reach into the dom to update the tokens
Test Plan: - Unit tests
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2989
Summary:
This diff introduces several updates to mail merge to improve the procedure for sending a list of drafts.
Specifically, sending mass email will now:
- Clear mail merge metadata on the drafts that will actually be sent
- Upload attached files only /once/, and reuse those files on the drafts that will actually be sent
- Minimize database writes for new drafts being created
- Will queue a SendManyDraftsTask that will subsequently queue the necessary SendDraftTasks and keep track of them, and notify of any failed tasks
TODO:
- Add state to MailMerge plugin for failed sends and ability to attempt to re send them
Test Plan: - TODO
Reviewers: evan, bengotow, jackie
Reviewed By: bengotow, jackie
Subscribers: jackie
Differential Revision: https://phab.nylas.com/D2973
Summary:
SEE ASSOCIATED SUBMODULE DIFF
This enables rich React components (like the Scheduler's `NewEventCard`)
to be used in contenteditables.
We introduce the concept of an "Overlaid Component". These are rendered
React components that are absolutely positioned on top of an equivalent
"Anchor" in a contenteditable.
Inside the contenteditable are special `<img />` tags that have an
id corresponding to a particular rich overlaid component. This way, even
if those img tags are cut and pasted or moved, they'll have a mapping to a
particular component stored in the `OverlaidComponentStore`. Img tags
are fairly well handled natively by contenteditable and allow you to
maniuplate these overlaid components as normal text elements.
The `OverlaidComponentStore` is responsible for listening to and managing
the state of the Anchors and their equivalent OverlaidComponents.
We use a decorator called `ListenToChanges` that allows us to wrap
components to update their corresponding anchor. Since we need to know
about ALL changes that could affect rendered height and width, we need to
use a `MuatationListener` instead of the React render cycle.
This is only the initial diff. There are several TODOs here:
https://paper.dropbox.com/doc/Composer-Overlaid-Components-FoZrF0cFggzSUZirZ9MNo
Test Plan: TODO. Manual
Reviewers: juan, bengotow
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2946
Summary:
- Simplify undoManager to just maintain the undo/redo history items
- DraftEditingSession manages snapshotting state of draft, hack allows it to also save selection (still hoping to eventually put selection in body HTML as markers)
- Switch from `debounce` to `throttle` style behavior so typing for along time followed by undo doesn't undo away your entire block.
This resolves two issues:
+ Changes to participant fields are no longer undoable because they go straight to the session.
+ Changes to metadata weren't undoable.
Test Plan: Tests WIP
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2956
- Will wait for categories to be ready before attempting to focus the
inbox for the new account, preventing a blank screen when a new account
is added
- Add temprary action to set the collapsed state of a sidebar action
after adding a new account
- Adds a piece of global state that will be persisted to
`NylasEnv.savedState` indicating wether the accounts for the sidebar
should be reset whenever the FocusedPerspective changes
- #2257
Summary:
Add basic globally accessible performance monitoring.
Allows us to measure load times for composer windows (or whatever else we
want) and view the data as a Histogram on Mixpanel
Test Plan: manual
Reviewers: bengotow, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2965
- This error was still being thrown for a large number of accounts,
despite the fact that the N1-Snoozed category was being created
- This error was happening when adding a new account which did not already have a
snooze category in the backend:
- When the account is added the AccountStore triggers more than once,
causing the SnoozeStore to send more than one request to create the
same category. Any request after the first one will fail because the
category already exists
- The fix is not try to create a category unless the accounts have
actually changed
Summary:
Moves all reading / writing of config file to the main process,
to avoid needing to write code to lock across processes. This should also
be more efficient than re-loading the file in all processes when it's
saved.
Test Plan: Run tests
Reviewers: evan, jackie
Reviewed By: evan, jackie
Differential Revision: https://phab.nylas.com/D2963
Summary:
Adds ability to drop tokens in subject via a custom rendered subject field which
renders a contenteditable instead of an input.
Decided to completely replace the subject field via injected components for a
few resons:
- That's the way we are currently extending the functionality of the participant fields, so it keeps the plugin code consistent (at the cost of potentially more code)
- Completely replacing the subject for a contenteditable means we hace to do extra work to clean up the html before sending.
- Reusing our Contenteditable.cjsx class for the subject is overkill, but using a vanilla contenteditable meant duplicating a bunch of the code in that class if we want to add
Test Plan: Unit tests
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2949
Summary:
- Add some docs to Table components
- Updates Table components to use a TableDataSource instead of accessing arrays, cleans up code a bit
- Add enzyme lib to have a cleaner and simpler api to write tests for React Components
- Updates decorators to extend from the BaseComponent instead of vanilla Component, this way instance methods are still available on composed components
Test Plan: - Unit tests
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2941
* Added Less Is More Theme to internal-packages and README.md
* fixed Less Is More title in README.md
* removed units for values of zero
* updated readme, package title fix, theme topbar fix, message list adjustments
object-shorthand got turned off. We think it's fine to say {foo: foo} if
you want
quote-props is error consistent as neeeded.
Use custom file-by-file rules for global-require
- This prevented emoji selection via the popover from working on a new
window because the plugin is loaded after the contenteditable sets up
the action listeners, so we need to re set them on update
Summary:
- Remove nylas-long-connection.coffee duplicate code from sync worker package
and replace with delta-streaming-connection which uses NylasAPI.longConnection
- Replacement for XHR will come in another diff -- still need to clean up and
fix some edge cases
Test Plan:
- TODO! Will add test coverage for NylasLongConnection and
DeltaStreamingConnection
Reviewers: evan, bengotow
Reviewed By: evan, bengotow
Differential Revision: https://phab.nylas.com/D2875
Summary: This is mostly config changes.
Test Plan: Tested the Google OAuth flow.
Reviewers: bengotow, drew
Reviewed By: bengotow, drew
Differential Revision: https://phab.nylas.com/D2907
Summary: Adds CSV imports, proper styles to mail merge plugin and fixes a handful of bugs
Test Plan: TODO
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2925
Office 365 likes to format email addresses as follows:
Last Name, First Name (Some Description) <email@address.org>
This causes Contact.firstName() (and hence sometimes displayName()) to return
"Last Name," which looks a bit odd in the message/thread views.
The intent of the commit is to correctly parse these names so that (using the
above example):
- firstName = "First Name"
- lastName = "Last Name (Some Description)"
- fullName = "First Name Last Name (Some Description)"
These behavioral changes only impact names containing a ','.
I don't know that this really provides exhaustive coverage of Office 365, and
keeping the description as part of the last name is not completely guilt free,
but it's not any worse than the previous state of affairs which also has
the description in the same field but combined instead with (misplaced)
first name data.
Summary:
Keymaps & menus CSON => JSON, remove AtomKeymaps, CommandRegistry use of CSS selectors, use Mousetrap instead
Important Notes:
- The `application:` prefix is reserved for commands which are handled in the application process. Don't use it for other things. You will not receive the events in the window.
- Maintaining dynamic menus seems to come with quite an overhead, because Electron updates the entire menu every time. In the future, we'll need https://github.com/electron/electron/issues/528 to really make things nice. I will be tracking this upstream.
- The format for keyboard shortcuts has changed. `cmd-X` is now `command+shift+x`
Test Plan: Run tests
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2917
Summary:
Adds Mail Merge Plugin
- Adds new table components to component kit
- Adds new extension points to allow dragging and dropping into composer contenteditable and participant fields and customizing participant fields
- Adds new decorators and other misc updates
- #1608
Test Plan: TODO
Reviewers: bengotow, evan
Reviewed By: bengotow, evan
Differential Revision: https://phab.nylas.com/D2895
Summary:
Adds an activity list view that shows message opens and link clicks in a
chronological feed.
TODO: Add badge for unread notifications and different styling for read/unread
notifications. Click item to jump to corresponding thread.
Test Plan: TODO.
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2915
Summary:
This diff is designed to dramatically speed up new window load time for
all window types and reduce memory consumption of our hot windows.
Before this diff, windows loaded in ~3 seconds. They now boot in a couple
hundred milliseconds without requiring to keep hot windows around for
each and every type of popout window we want to load quickly.
One of the largest bottlenecks was the `require`ing and initializing of
everything in `NylasExports`.
I changed `NylasExports` to be entirely lazily-loaded. Drafts and tasks
now register their constructors with a `StoreRegistry` and the
`TaskRegistry`. This lets us explicitly choose a time to activate these
stores in the window initalization instead of whenever nylas-exports
happens to be required first.
Before, NylasExports was required first when components were first
rendering. This made initial render extremely slow and made the proposed
time picker popout slow.
By moving require into the very initial window boot, we can create a new
scheme of hot windows that are "half loaded". All of the expensive
require-ing and store initialization is done. All we need to do is
activate the packages for just the one window.
This means that the hot window scheme needs to fundamentally change from
have fully pre-loaded windows, to having half-loaded empty hot windows
that can get their window props overridden again.
This led to a major refactor of the WindowManager to support this new
window scheme.
Along the way the API of WindowManager was significantly simplifed.
Instead of a bunch of special-cased windows, there are now consistent
interfaces to get and `ensure` windows are created and displayed. This
DRYed up a lot of repeated logic around showing or creating core windows.
This also allowed the consolidation of the core window configurations into
one place for much easier reasoning about what's getting booted up.
When a hot window goes "live" and gets populated, we simply change the
`windowType`. This now re-triggers the loading of all of the packages for
the window. All of the loading time is now just for the packages that
window requires since core Nylas is there thanks to the hot window
mechanism.
Unfortunately loading all of the packages for the composer was still
unnaceptably slow. The major issue was that all of the composer plugins
were taking a long time to process and initialize. The solution was to
have the main composer load first, then trigger another window load
settings change to change the `windowType` that loads in all of the
plugins.
Another major bottleneck was the `RetinaImg` name lookup on disk. This
requires traversing the entire static folder synchronously on boot. This
is now done once when the main window loads and saved in a cache in the
browser process. Any secondary windows simply ask the backend for this
cache and save the filesystem access time.
The Paper Doc below is the current set of manual tests I'm doing to make
sure no window interactions (there are a lot of them!) regressed.
Test Plan: https://paper.dropbox.com/doc/Window-Refactor-UYsgvjgdXgVlTw8nXTr9h
Reviewers: juan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2916
Hopefully fixes#1991
I don't have N1 setup locally, so this is a blind shot–would appreciate somebody who has it set up to pull this and verify this fixes the issue, but as far as I can tell it should.
The gist is:
> Looking at the code, what you do is use the `search/users` endpoint to find users by email and taking the repos from there. You then load the repositories of the username, but we can't sort those by most-starred: "sort string Can be one of `created`, `updated`, `pushed`, `full_name`. Default: `full_name`" *([src](https://developer.github.com/v3/repos/#list-user-repositories))*
> What we could instead do is use the search API, which **allows us to search for repositories by a specific user and sort by most starred**. This is a tiny bit hacky, but works perfectly fine. E.g. this is the URL for my most starred repos: `https://api.github.com/search/repositories?q=user:mxstbr&sort=stars&order=desc`
Summary:
Up until now, we've been requiring that every plugin control in the composer take the draftClientId, retreive the session, listen to it, build state from the draft, etc. This is a huge pain and is hard to explain to newcomers becaus it frankly makes no sense.
In 0.3.45 we made it so that the ComposerView always has a non-null draft and session. (It isn't rendered until they're available). In this diff, I just pass those through to all the plugins and remove all the session retrieval cruft.
Almost none of the buttons have state of their own, which I think is appropriate.
They do render on every keystroke, but they were already running code (to recompute their state) on each keystroke and profiling suggests this has no impact.
Prepare for immutable
In preparation for Immutable models, make the draft store proxy returns a !== draft if any changes have been made. This means you can safely know that a draft has changed if `props.draft !== nextProps.draft`
Test Plan: Run tests
Reviewers: juan, evan
Reviewed By: juan, evan
Differential Revision: https://phab.nylas.com/D2902
Summary:
Adds a new unified "Spam" folder and a unified "Unread" view,
which shows all the messages in your inbox which are unread.
Test Plan: Run tests
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2901
* fix(imports): switch to Electron's require('electron')
Electron in 0.37.5 phases out the usage of `require('built-in-module')`
in favor of `require('electron').builtInModule`. This commit corrects usage in
some cases that cause N1 to not start under Electron 0.37.5.
* fix(specs): use new Electron remote import
Summary:
On my machine the new emoji picker was causing "too many open file descriptor"
errors. I think that this was because it was creating 1300 image tags in 50msec.
I refactored this code so that it uses a single image tag and only loads one image
at a time. This could make it slower on some people's machines, but eliminates the
possibility of it breaking the app!
Test Plan: Run tests
Reviewers: jackie
Differential Revision: https://phab.nylas.com/D2878
* Add PNGs and JSON file
* Add Apple and Twitter emoji
* Fix linter issues and tests
* Get correct path from EmojiStore
* Add emoji regex and update extensions
* Remove the scary regex
Summary:
- This diff also restructures the search package in a few ways:
- Rename package to `thread-search` instead of `search-bar`
- Move SearchQuerySubscription and SearchMailboxPerspective inside
package. This allows SearchQuerySubscription to have access to
SearchActions in a clean way and keeps all of the search related code
in 1 package
- Remove SearchMailboxPerspetcive from mailbox-perspective.coffee
- Adds temporary spinner while we get a new design for it
Test Plan: - TODO
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2868
Summary: Moved events into metadata. Removed a lot of code
Test Plan: todo
Reviewers: juan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2866
Summary:
- Converts SearchQuerySubscription to ES6 to fix method overriding for
`removeCallback`
- Reports different usage metrics for search
- Removes unecessary data source listener iniside ThreadListStore:
- This listener focused the first thread on the list, which is
actually unwanted (#1461)
- It prevented QuerySubscriptions from being disposed promptly because
of the remaining listener. They qould only be disposed until the
subscription triggered once, which is not actually desired behavior
(e.g. for SearchQuerySubscription)
Test Plan: - Manual
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2864
- Make the retry interval go 2 sec, 3.4s, 6 sec...
- Only show the connection status bar if the interval is > 5 seconds, in case the error was temporary.
- Do not show sync errors in the sidebar. The only available action is "Try Again", and we try again on our own. The error is frustrating and the user can't do anything about it anyway.
Summary:
Notify the backend when auth is a reauth of an existing account by
providing the `accountId`. This lets the backend differentiate between
a new auth (where a new account will be created if the server endpoints
don't match) and a re-auth (where the auth will fail on server endpoint
mismatch, prompting the user).
Test Plan: manual
Reviewers: juan, evan, bengotow
Reviewed By: bengotow
Subscribers: mg, spang, kav-ya
Differential Revision: https://phab.nylas.com/D2833
Summary:
- When accounts change, make sure sync has completed, and only add or
remove threads from the index based on accounts that were added or
removed instead of rebuilding the entire index from scratch
- When thread is updated, make sure to only update the index for threads
that belong to accounts that are not currently in the sync process
- Add more logging and docs
Test Plan: TODO
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2852
Summary:
- Disable processing button while already processing
- Only process mail in the inbox in bulk reprocess task
- Advance through mail using "after X" rather than "offset X", avoiding the issue where mail can be deleted as you're advancing.
Test Plan: Run existing tests
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2847
Summary: Adds a date and time picker to the new event creator
Test Plan: todo
Reviewers: bengotow, juan
Reviewed By: bengotow, juan
Differential Revision: https://phab.nylas.com/D2842
Summary:
This diff includes several updates:
- Update sqlite version to use FTS5
- Adds new methods to DatabaseStore to create and update Search Indexes
- Currently indexing subject, participants, and thread message bodies or snippets if the body is not available
- Update initial sync to fetch 5000 message bodies per account
- Adds a new SearchMatcher
- Add new thread-search-index package to run in the worker window to
init and keep thread search index up to date
- Converts Thread to ES6
TODO:
- Remove/Update suggestions dropdown
- Add tests
Test Plan: - TODO
Reviewers: evan, bengotow
Reviewed By: evan, bengotow
Differential Revision: https://phab.nylas.com/D2826
Summary:
The TaskQueue does it's own throttling and has it's own processQueue retry timeout, no need for longPollConnected
Remove dead code (OfflineError)
Rename long connection state to status so we don't ask for `state.state`
Remove long poll actions related to online/offline in favor of exposing connection state through NylasSyncStatusStore
Consoliate notifications and account-error-heaer into a single package and organize files into sidebar vs. header.
Update the DeveloperBarStore to query the sync status store for long poll statuses
Test Plan: All existing tests pass
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2835
Summary:
- Removes controlled focus in the composer!
- No React components ever perfom focus in lifecycle methods. Never again.
- A new `Utils.schedule({action, after, timeout})` helper makes it easy to say "setState or load draft, etc. and then focus"
- The DraftStore issues a focusDraft action after creating a draft, which causes the MessageList to focus and scroll to the desired composer, which itself decides which field to focus.
- The MessageList never focuses anything automatically.
- Refactors ComposerView apart — ComposerHeader handles all top fields, DraftSessionContainer handles draft session initialization and exposes props to ComposerView
- ComposerHeader now uses a KeyCommandRegion (with focusIn and focusOut) to do the expanding and collapsing of the participants fields. May rename that container very soon.
- Removes all CommandRegistry handling of tab and shift-tab. Unless you preventDefault, the browser does it's thing.
- Removes all tabIndexes greater than 1. This is an anti-pattern—assigning everything a tabIndex of 0 tells the browser to move between them based on their order in the DOM, and is almost always what you want.
- Adds "TabGroupRegion" which allows you to create a tab/shift-tabbing group, (so tabbing does not leave the active composer). Can't believe this isn't a browser feature.
Todos:
- Occasionally, clicking out of the composer contenteditable requires two clicks. This is because atomicEdit is restoring selection within the contenteditable and breaking blur.
- Because the ComposerView does not render until it has a draft, we're back to it being white in popout composers for a brief moment. We will fix this another way - all the "return unless draft" statements were untenable.
- Clicking a row in the thread list no longer shifts focus to the message list and focuses the last draft. This will be restored soon.
Test Plan: Broken
Reviewers: juan, evan
Reviewed By: juan, evan
Differential Revision: https://phab.nylas.com/D2814
Summary:
Adds new redesigned preferences with horizontal tab bar and refactored code.
Converts Preferences, Plugins, and a few components to ES6.
Test Plan: Tested locally.
Reviewers: evan, bengotow
Reviewed By: bengotow
Subscribers: juan
Differential Revision: https://phab.nylas.com/D2818
Summary: Adds tests to check that emoji popover is inserting emoji correctly and adding PNGs as expected.
Test Plan: Tested locally.
Reviewers: evan, bengotow, juan
Reviewed By: juan
Subscribers: juan
Differential Revision: https://phab.nylas.com/D2810
Summary: The emoji picker allows users to insert emoji to their messages on click. A few emoji that don't render properly in Chromium are replaced with PNGs, both in the composer view and the message list view, but only the Unicode characters are sent in the message bodies.
Test Plan: TODO
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2787
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:
- 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