Commit graph

1357 commits

Author SHA1 Message Date
Ben Gotow
b4434f6617 fix(focus): Remove focusedField in favor of imperative focus, break apart ComposerView
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
2016-04-04 15:22:01 -07:00
Evan Morikawa
4986049bd6 fix(console): remove log 2016-04-04 15:20:25 -07:00
Evan Morikawa
fd76568f15 fix(react): replace with ReactDOM 2016-04-04 15:17:50 -07:00
Evan Morikawa
15ff969e73 feat(calendar): add week view for quick scheduler
Summary: New Calendar

Test Plan: TODO

Reviewers: drew, juan, bengotow

Reviewed By: bengotow

Subscribers: jackie

Differential Revision: https://phab.nylas.com/D2767
2016-04-04 15:05:48 -07:00
Jackie Luo
73bf32c477 fix(composer-emoji): Replace images with Unicode characters properly 2016-04-04 11:03:52 -07:00
Jackie Luo
d786fb85da Merge pull request #1861 from jamiewilson/darkside
(darkside) correcting window buttons, adding input focus
2016-04-02 13:40:24 -07:00
Jamie Wilson
8164d75b02 correcting size of window contol buttons
This addresses issue #1687 on nylas/n1
2016-04-02 15:02:26 -05:00
Jackie Luo
f7e0acc4dd 🎨(preferences): Darken tab icons during click 2016-04-01 14:50:56 -07:00
Ben Gotow
209debf797 fix(thread-list): Constrain details width to ensure attachment icon visible. #1858 2016-04-01 14:49:15 -07:00
Jackie Luo
e2480c1e36 fix(templates): Convert to ES6 and allow creation of new templates 2016-04-01 14:30:43 -07:00
Jackie Luo
6e07dce03c 🎨(preferences): Updates preferences to look prettier
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
2016-04-01 14:01:26 -07:00
Jackie Luo
603a3dfb4b spec(composer-emoji): Fix specs for popover 2016-03-31 18:14:11 -07:00
Ben Gotow
9a588dbda6 fix(autolinker): Update regexp to handle reported failure cases 2016-03-31 16:36:23 -07:00
Juan Tejada
bec4a86629 fix(build): FIx linting and react errors and popover spec 2016-03-31 16:10:09 -07:00
Ben Gotow
3d8133ff8d fix(inline): Use vw for max-width, use DOM rather than regex 2016-03-31 15:16:22 -07:00
Ben Gotow
78681f6ed1 fix(inline): radial progress, merge body with download data on render 2016-03-31 15:16:21 -07:00
Jackie Luo
6faa7d5e12 spec(composer-emoji): Add tests for emoji popover
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
2016-03-31 14:54:46 -07:00
Jackie Luo
dc1ff47bb0 🎨(theme-picker): Fix oval close button 2016-03-31 12:04:41 -07:00
Jackie Luo
49a321124f 🎨(scroll): Fix UI issues in theme picker/emoji picker 2016-03-30 15:52:51 -07:00
Ben Gotow
39768fd9d4 bump(react): 0.13.2 => 0.14.7
Great breakdown of React changes here:
https://github.com/facebook/react/blob/master/CHANGELOG.md#0140-october-7-2015

Due to deprecation warnings, I don't think this will break third-party extensions unless they were doing really bad things.
2016-03-29 01:43:12 -07:00
Jackie Luo
62b06121f6 fix(composer-emoji): Render emoji characters on Windows/Linux 2016-03-28 16:18:41 -07:00
Jamie Wilson
c5d41eaf6a applying accent color to focused inputs 2016-03-28 12:49:47 -05:00
Jackie Luo
ec3ac5f58d 🎨(themes): Tweak Taiga to feel more native 2016-03-27 15:51:27 -07:00
Jackie Luo
9a923c7c88 fix(thread-list): Show emoji in bolded subject lines 2016-03-27 15:51:27 -07:00
Juan Tejada
f7a4523604 update(open-tracking): Only display icon when last message has metadata 2016-03-25 14:00:55 -07:00
Juan Tejada
0e360b061b Revert "fix(open-tracking): Make sure icon only shows in sent perspective"
This reverts commit 872aae1bcd.
2016-03-25 14:00:55 -07:00
Jackie Luo
cbf9627029 fix(composer-emoji): Only show replacement PNGs for OS X 2016-03-25 13:35:32 -07:00
Juan Tejada
872aae1bcd fix(open-tracking): Make sure icon only shows in sent perspective 2016-03-25 12:37:42 -07:00
Juan Tejada
8a3c2730cb fix(tray): Re add old icon assets for tray icon for win32 and linux 2016-03-25 10:05:17 -07:00
Ben Gotow
3fa93c2730 fix(composer): Sentry 9688 2016-03-24 17:18:50 -07:00
Jackie Luo
3e36e10f07 lint(themes): Add import to ui-variables 2016-03-24 16:56:49 -07:00
Ben Gotow
c1b3f87d71 fix(autolinker): Don't include trailing ? or . in URLs 2016-03-24 16:35:11 -07:00
Jackie Luo
2fedf7f091 fix(themes): Re-add disclosure triangles to Taiga 2016-03-24 16:19:41 -07:00
Juan Tejada
5d90cb40b0 🎨(selected-stack): Update text color for clear selection btn 2016-03-24 15:47:49 -07:00
Ben Gotow
cbce8fb79b fix(search): Display search API errors in transient notiication bar 2016-03-24 15:42:05 -07:00
Ben Gotow
fc33e97bf8 perf(*): Replace _.omit, refresh scrollbar height less often 2016-03-24 15:14:41 -07:00
Juan Tejada
4bfb4fe916 patch(thread-list): Limit number of injected icons in narrow mode to 1
- Update InjectedComponentSet to take a limit for the amount of matching
  components to render
2016-03-24 12:32:01 -07:00
Juan Tejada
d3ca6e592d feat(list): Add ThreadIcon injected region to narrow thread-list 2016-03-24 12:00:49 -07:00
Jackie Luo
d6bc6e7bc5 fix(composer-emoji): Return if no search results are found 2016-03-24 11:57:49 -07:00
Ben Gotow
1d97b6811a fix(selection): Make the clear selection button a button 2016-03-24 10:57:12 -07:00
Jackie Luo
d0b001012e feat(composer-emoji): Add emoji button to composer
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
2016-03-24 10:45:48 -07:00
Ben Gotow
ac70ed3064 fix(undo-redo): Remove initial state check 2016-03-24 10:42:15 -07:00
Ben Gotow
27000e1965 fix(autolinker): Only match top ten tld's when schme not present 2016-03-24 10:14:47 -07:00
Ben Gotow
75ff8282a8 perf(autolinker): Use requestIdleCallback to fix hanging on large bodies 2016-03-23 19:03:21 -07:00
Juan Tejada
95cd1945de fix(snooze): Correctly display snoozed until label 2016-03-23 18:00:46 -07:00
Juan Tejada
4a6d9d1085 fix(send-later): Close popover in inline composer when msg scheduled 2016-03-23 17:46:24 -07:00
Juan Tejada
9413459311 fix(styles): Fix styles for attachment and upload items 2016-03-23 17:16:25 -07:00
Jackie Luo
f059e65acc fix(composer-emoji): Return null if no matching node is found 2016-03-23 17:01:14 -07:00
Jackie Luo
e574c2ecf7 fix(composer-emoji): Fix setBaseAndExtent bug 2016-03-23 16:48:35 -07:00
Juan Tejada
0056773769 fix(signatures): Fix signature switching between accounts in composer 2016-03-23 15:23:13 -07:00