Commit graph

116 commits

Author SHA1 Message Date
Bruno Windels
f5b9373eb5 don't block Shift+Tab keypresses 2019-09-26 11:00:55 +02:00
Bruno Windels
30af9a9056 need to check isComposing on native event 2019-09-25 16:11:37 +02:00
Bruno Windels
c8af1a6256 fixup: remove flag 2019-09-25 14:59:27 +02:00
Bruno Windels
ffe34ee8a1 try to see if this fixes safari back
on of the 2 changes (updating dom async from compositionend,
or ignoring keydown while composing) here has, while fixing chrome,
broken safari.

Don't do the async dom updating for safari if that was it.
2019-09-25 14:47:35 +02:00
Bruno Windels
7bda1c58eb better naming 2019-09-25 14:45:39 +02:00
Bruno Windels
9f47fad305 ignore keydown events while doing IME composition 2019-09-24 15:32:30 +02:00
Bruno Windels
4d151722ff delay DOM modification after compositionend 2019-09-24 15:32:08 +02:00
Michael Telatynski
c286f2214f Fix disabled save button on message editor when pasting
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-18 14:09:38 +01:00
Bruno Windels
48247e66be use underscore for italics so it doesn't collide with bold when toggling 2019-09-06 17:52:37 +02:00
Bruno Windels
26bd694c6a support toggling inline formatting 2019-09-06 16:25:55 +02:00
Bruno Windels
dd1c01068f fix rename that didn't make it through rebasing 2019-09-06 11:58:27 +02:00
Bruno Windels
5014b606db
Merge pull request #3391 from matrix-org/bwindels/cider-format-history
New composer: ensure undo history is persisted before applying formatting
2019-09-06 09:28:18 +00:00
Bruno Windels
df4762871a
Merge pull request #3392 from matrix-org/bwindels/cider-paste-plain
New composer: fix pasting from word processors
2019-09-06 09:22:37 +00:00
Bruno Windels
6b104f6344
Merge pull request #3393 from matrix-org/bwindels/cider-fix-lastcaret
New composer: fix needing to push arrow-up twice after sending first message after switching to a room
2019-09-06 09:22:10 +00:00
Bruno Windels
9dac91a70d ensure step before formatting is persisted in undo history 2019-09-06 11:20:24 +02:00
Bruno Windels
0252c7ae37 force pasting as plain text in new composer 2019-09-06 11:10:41 +02:00
Bruno Windels
2596281a7c update last caret from update callback instead of input event
many editor updates are not caused by an input event, so
the last caret wasn't always up to date.

Updating the caret from the update callback ensures that every
time the editor contents is changed, the last caret is updated.
2019-09-06 11:09:01 +02:00
Bruno Windels
f4938f9d11 dont format empty ranges 2019-09-06 10:59:41 +02:00
Bruno Windels
06143ba7a1 show keyboard shortcuts in format button tooltip 2019-09-06 10:59:41 +02:00
Bruno Windels
bdcea6f21e add shortcuts for formatting 2019-09-06 10:59:41 +02:00
Bruno Windels
da29057fd8 move format bar to own component 2019-09-06 10:39:19 +02:00
Bruno Windels
92c0c1a4e2 add comment about positioning the format bar 2019-09-06 10:29:18 +02:00
Bruno Windels
4ef9fa53ac better i18n 2019-09-05 11:10:13 +02:00
Bruno Windels
2ea556e0b4 support update callback setting selection instead of caret 2019-09-04 16:40:34 +02:00
Bruno Windels
4c04bc19c9 fixup: remove now unused import 2019-09-04 16:40:34 +02:00
Bruno Windels
6e694c113a add support for inline/block code formatting 2019-09-04 16:40:34 +02:00
Bruno Windels
b35a3531bb move quote formatting out of react component 2019-09-04 16:40:34 +02:00
Bruno Windels
b72d1a78ec move inline formatting code out of react component 2019-09-04 16:40:34 +02:00
Bruno Windels
7f501b2aef first impl of quote formatting 2019-09-04 16:40:13 +02:00
Bruno Windels
d4c7992f5a first impl of inline formatting 2019-09-04 16:39:56 +02:00
Bruno Windels
7dc39baaf3 implement bold support in format bar 2019-09-04 16:35:03 +02:00
Bruno Windels
65ddfc0a50 show format bar when text is selected 2019-09-04 16:35:03 +02:00
Bruno Windels
1063da0ed1
Revert "New composer: show markdown legend on focus" 2019-09-03 08:27:45 +00:00
Bruno Windels
422f482a6d
Merge pull request #3378 from matrix-org/bwindels/cider-md-legend
New composer: show markdown legend on focus
2019-09-02 14:59:44 +00:00
Bruno Windels
6163cefa6a set dirty flag when programatically inserting text like with newlines 2019-09-02 16:29:25 +02:00
Bruno Windels
f200327ef2 show/hide legend when focusing/blurring 2019-09-02 16:15:18 +02:00
Bruno Windels
4329d8c4ef
Merge pull request #3372 from matrix-org/bwindels/fix-command-tab-complete
New composer: fix tab-complete in commands
2019-09-02 11:38:13 +00:00
Bruno Windels
fdd23b34ae also look backwards into commands for last word to tab-complete 2019-09-02 11:27:22 +02:00
Bruno Windels
a4376a76f0 only pass keyboard to autocomplete when it has selections
otherwise if tab is pressed, try to tab complete the last word
2019-09-02 11:25:29 +02:00
Bruno Windels
42ba5f6f0a force model update after composition finishes 2019-08-30 11:37:42 +02:00
Bruno Windels
4779880a94
Merge pull request #3362 from matrix-org/bwindels/cider-no-enter-autocomplete
New composer: don't capture enter to close autocomplete
2019-08-30 08:17:47 +00:00
Bruno Windels
c144edfcac dont capture enter to close autocomplete 2019-08-29 18:39:35 +02:00
Bruno Windels
5105140902
Merge pull request #3358 from matrix-org/bwindels/cider-paste-images
New composer: support pasting files
2019-08-29 16:31:28 +00:00
Bruno Windels
fe7ac11abc New composer: support pasting files 2019-08-29 16:19:05 +02:00
Bruno Windels
891ccf0f4c don't update model while doing IME composition
this prevents the composition from being disrupted because
the DOM is modified, and also complete compositions are added
to the undo history like this.
2019-08-29 13:56:21 +02:00
Bruno Windels
29f96e659a remove leftover code 2019-08-28 17:53:03 +02:00
Bruno Windels
85efb71a23 add visual bell when no replacements are available
also add try/catch in _tabCompleteName so errors don't get swallowed
2019-08-28 15:53:16 +02:00
Bruno Windels
f5bb872efa some cleanup 2019-08-27 16:43:05 +02:00
Bruno Windels
f02713d08e force completion when hitting tab
by replacing word before caret with pill-candidate and
forcing auto complete
2019-08-27 16:43:05 +02:00
Bruno Windels
f76a23d5dd return promise from updating autocomplete
so one can await if needed
2019-08-27 16:43:05 +02:00
Bruno Windels
56606a46f4 don't assume preceding space for emoticon at start of document
also add more inline comments to explain what is going on
2019-08-27 09:50:36 +02:00
Bruno Windels
0273795f5d add transform step to composer to auto-replace emoticons with emoji 2019-08-26 16:16:27 +02:00
Bruno Windels
b366b0b3d8 store composer state when typing in new composer
this doesn't use the MessageComposerStore on purpose so that
both the new and old composer don't overwrite each others state,
as the format is different.
2019-08-22 13:33:20 +01:00
Bruno Windels
6df46cc319 send typing notifs in new composer (both send and edit) 2019-08-22 13:33:20 +01:00
Bruno Windels
e2dfe888cc only capture Enter when autocompletion list has selection
this is the old behaviour and makes sense IMO
also close the auto complete when resetting the composer model,
in case it was still open
2019-08-22 13:33:20 +01:00
Bruno Windels
cc82353d8f bring back composer send history and arrow up to edit previous message 2019-08-22 13:33:20 +01:00
Bruno Windels
ca3539d53e remove dead code 2019-08-22 13:33:20 +01:00
Bruno Windels
9bc8ff7e1e clear composer undo history when sending a message 2019-08-22 13:33:20 +01:00
Bruno Windels
ea1faacd8b support alt+enter on mac, like slate composer 2019-08-22 13:33:20 +01:00
Bruno Windels
c135cd60d2 restore insert mention
for this, we need to store the last caret in the editor,
to know where to insert the user pill.

Because clicking on a member blurs the editor, and the
selection is moved away from the editor.

For this reason, we keep as cache of the last caretOffset object,
invalidated by a selection with different values.

The selection needs to be cloned because apparently the browser
mutates the object instead of returning a new one.
2019-08-22 13:33:20 +01:00
Bruno Windels
e39c405c55 restore focus_composer action 2019-08-22 13:33:20 +01:00
Bruno Windels
fdf5fca628 add all props to proptypes 2019-08-22 13:33:20 +01:00
Bruno Windels
f9992a1fc6 implement editor placeholder 2019-08-22 13:33:20 +01:00
Bruno Windels
df8488e194 pass label through props 2019-08-22 13:33:20 +01:00
Bruno Windels
505846ce53 split up css, update class names 2019-08-22 13:33:20 +01:00
Bruno Windels
299cf8542c Split MessageEditor in edit-specifics & reusable part for main composer 2019-08-05 15:31:18 +02:00