Michael Telatynski
f160a308b4
Make Autocomplete more accessible to screen reader users
...
Use ARIA to:
+ notate that the composer has an autocomplete
+ notate the open/closed state of the autocomplete
+ notate the name of the open autocomplete options
+ notate the ID of the highlighted autocomplete option
+ improve naming of emoji autocomplete options for screen readers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-30 14:04:39 +01:00
Bruno Windels
8301943cfa
Merge pull request #3481 from matrix-org/bwindels/cider-ac-shifttab
...
Fix: don't block Shift+Tab in CIDER autocomplete
2019-09-26 15:08:36 +00:00
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