Commit graph

384 commits

Author SHA1 Message Date
Michael Telatynski
93abb4b74b
workaround to prevent Slate getting too empty when undoing RT pastes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-20 15:06:27 +01:00
Michael Telatynski
855f8871b8
replace heuristic for the time being as it failed with inlines like pills. Fixes vector-im/riot-web#7059
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 16:50:07 +01:00
Michael Telatynski
88dddb628d
in MD mode forgo any Magic Rich Pasting conversion as its confusing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 11:50:13 +01:00
Michael Telatynski
6bb88c0548
attempt to fix clash of Cmd-M on Mac. Should fix vector-im/riot-web#7047
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 11:28:48 +01:00
Michael Telatynski
3e956514b3
also prevent merge/skip on rich text pastes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 11:00:45 +01:00
Michael Telatynski
1a9de3fabe
fix undo on pasting plaintext content
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 10:58:27 +01:00
Michael Telatynski
f5856270cc
undo removal of stripping <p>s as it breaks HTML /mes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 10:48:54 +01:00
Michael Telatynski
19e5dc5799
do less rewriting for composer quote to prevent breaking pills
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 10:10:42 +01:00
Michael Telatynski
8bb08b1b75
fix focus on new editorState as it didn't have focus so broke when alt tab
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-18 10:10:11 +01:00
Michael Telatynski
720a728278
workaround for placeholder being shown when empty text but block. Fixes vector-im/riot-web#7042
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-17 16:13:33 +01:00
Michael Telatynski
1b467f6ca8
fix pasting of plaintext content (prevent loads of <p>s) Fixes vector-im/riot-web#7043
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-17 16:02:37 +01:00
Michael Telatynski
414908611d
prevent exception if there is no text node at anchor
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-17 13:48:15 +01:00
Michael Telatynski
688776bc10
allow enter to remove current block if its empty useful for lists
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-17 13:29:40 +01:00
Michael Telatynski
ff76b6a981
allow user to break out of blockquote/etc by hitting enter twice
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-17 12:30:22 +01:00
Michael Telatynski
1c24f1fd5a
fix 2nd typo in one PR :(
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-16 21:34:25 +01:00
Michael Telatynski
547e0ed52c
check if has some completions, not if >=0
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-16 21:30:04 +01:00
Michael Telatynski
3000099991
add additional checks for hiding autocomplete to prevent text calculation
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-16 21:27:52 +01:00
Michael Telatynski
bdbc2cbd38
disable spellCheck when the placeholder is shown because "unencrypted"
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-16 18:32:50 +01:00
Michael Telatynski
c7859fed1a
add heuristic to compare documents to prevent autocomplete flicker
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-16 18:27:06 +01:00
Michael Telatynski
2f1779751b
make the MessageComposerStore stateless for better performance
and inter-tab composition (by simplifying it. WIN-WIN)

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-16 16:56:08 +01:00
Michael Telatynski
7405c5eff2
specify alternate history storage key to prevent conflicts with draft
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-12 16:35:42 +01:00
Michael Telatynski
b4bc09c335
null-guard savedState since now we're accessing its props
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-11 17:13:33 +01:00
Michael Telatynski
3e05bf19c5
hide autocomplete when moving caret to match existing behaviour
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-11 16:30:45 +01:00
Michael Telatynski
c3aef6e3a0
workaround for tommoor/slate-md-serializer#14
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-11 10:29:14 +01:00
Michael Telatynski
fd4f9679df
convert md<->rt if the stored editorState was in a different state
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-11 09:43:39 +01:00
Michael Telatynski
abbb69dc36
fix fn call, fixes usage of SlashCommands
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-10 17:35:13 +01:00
Michael Telatynski
100ecfe7ce
remove trailing spaces to make linter happy (no-trailing-spaces)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-10 10:29:52 +01:00
Michael Telatynski
58301e5dd4
navigateHistory only when at edges of document, to prevent Firefox bug
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-10 10:28:17 +01:00
Matthew Hodgson
0d0934add7
unbreak modifier+space (e.g. emoji insert on macOS)
(cherry picked from commit c490f87)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:58:04 +01:00
Matthew Hodgson
021409aafe
apply review feedback from @lukebarnard1
(cherry picked from commit 37d4bce)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:54:57 +01:00
Michael Telatynski
5b74c615ae
add missing import
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

(cherry picked from commit 47b6099)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:42:57 +01:00
Michael Telatynski
43204ea177
fix Control-Backspace after select-all
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

(cherry picked from commit 0f32ec0)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:42:10 +01:00
Michael Telatynski
faf17f06c6
remove debugger statement
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

(cherry picked from commit b6f7940)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:40:36 +01:00
Michael Telatynski
483116fb03
add rule to slate-md-serializer: make underlined and removed work for CM
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

(cherry picked from commit b521efd)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:40:29 +01:00
Michael Telatynski
372fa29ad3
take edge into consideration when moving focus region on arrow keys
fixes: >Pressing right when the caret is immediately left of some entity (pill, emojione emoji, etc..) causes the caret to jump to the left of the next entity (or end of the message if there are no more entities)

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

(cherry picked from commit 0982617)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:40:20 +01:00
Michael Telatynski
c6837af398
import-type Change from slate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

(cherry picked from commit 85ed499)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-09 19:40:00 +01:00
Matthew Hodgson
efdc5430d7 merge develop 2018-07-09 17:50:07 +01:00
Michael Telatynski
e1ba6949d0
expand composer input focus region and apply cursor:text to it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-23 16:40:53 +01:00
David Baker
a6d9c25b70
Merge pull request #1988 from matrix-org/t3chguy/refactor_slashcommands
refactor, consolidate and improve SlashCommands
2018-06-20 13:56:29 +01:00
David Baker
e67dae704a Take replies out of labs! 2018-06-20 09:57:11 +01:00
Michael Telatynski
85ddc0651b
consolidate the two locations commands are defined, as it was a MESS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-18 19:34:40 +01:00
Luke Barnard
bea52eccf8 Remove unused import, constant 2018-06-18 17:40:48 +01:00
David Baker
666d469222
Revert "Fix exception when opening dev tools" 2018-06-14 10:52:39 +01:00
David Baker
b81e12e4cc Fix exception when opening dev tools
Apparently draft sometimes gets unhappy when you try to move to the
end of an empty state, so only move to the end if we actually
created a non-empty state.

This will be irrelevant once https://github.com/matrix-org/matrix-react-sdk/pull/1890
is merged, but I have the fix now, and this is probably otherwise
going to annoy me now I'm doing things where devtools is very useful.

Fixes https://github.com/vector-im/riot-web/issues/6436
2018-06-13 16:55:16 +01:00
Matthew Hodgson
6299e188a4 unbreak keyboard shortcuts & ctrl-backspace 2018-05-26 02:11:20 +01:00
Matthew Hodgson
ab41212258 fix double-nested code blocks & bump md-serializer 2018-05-26 00:37:21 +01:00
Matthew Hodgson
864a33f978 switch to using 'code' for both blocks & marks to match md-serializer 2018-05-23 20:12:13 +01:00
Matthew Hodgson
b0ff61f7ef switch code schema to match slate-md-serializer 2018-05-23 14:12:08 +01:00
Matthew Hodgson
fc1c4996fc slate-md-serializer 3.1.0 now escapes correctly 2018-05-23 02:15:34 +01:00
Matthew Hodgson
6fba8311f9 escape blockquotes correctly
and fix NPE
2018-05-23 02:09:37 +01:00
Matthew Hodgson
794a60b9f8 refocus editor immediately after executing commands
and persist selections correctly across blur/focus
2018-05-23 01:36:21 +01:00
Matthew Hodgson
e7a4ffaf45 fix emojioneifying autoconverted emoji 2018-05-23 00:52:00 +01:00
Matthew Hodgson
cace5e8bfc fix bug where selection breaks after inserting emoji 2018-05-23 00:41:46 +01:00
Matthew Hodgson
11cea61661 refocus editor after clicking on autocompletes 2018-05-21 12:28:08 +01:00
Matthew Hodgson
7de45f8b7b make quoting work 2018-05-21 03:48:59 +01:00
Matthew Hodgson
b616fd025e comment out all the tests for now 2018-05-20 23:34:06 +01:00
Matthew Hodgson
e460cf35e0 hide formatting bar for MD editor 2018-05-20 22:48:40 +01:00
Matthew Hodgson
f981d7b729 unify buttons on the node type names, and make them work 2018-05-20 22:39:40 +01:00
Matthew Hodgson
d799b7e424 refactor roundtripping into a single place
and fix isRichTextEnabled to be correctly camelCased everywhere...
2018-05-20 16:30:39 +01:00
Matthew Hodgson
aac6866779 switch back to using commonmark for serialising MD when roundtripping
and escape MD correctly when serialising via slate-md-serializer
2018-05-20 14:33:14 +01:00
Matthew Hodgson
e9cabf0e85 add pill and emoji serialisation to Md 2018-05-20 03:17:51 +01:00
Matthew Hodgson
a0d88a829d support sending inlines from the RTE.
includes a horrific hack for sending emoji until
https://github.com/ianstormtaylor/slate/pull/1854 is merged
or otherwise solved
2018-05-20 02:53:32 +01:00
Matthew Hodgson
d76a2aba9b use <p/> as our root node everywhere and fix blank roundtrip bug 2018-05-20 01:07:25 +01:00
Matthew Hodgson
c3a6a41e5d support links in RTE 2018-05-20 00:49:29 +01:00
Matthew Hodgson
f2116943c8 switch schema to match the MD serializer 2018-05-20 00:17:11 +01:00
Matthew Hodgson
65f0b05719 fix typo 2018-05-19 23:40:22 +01:00
Matthew Hodgson
572a31334f add h4, h5 and h6 2018-05-19 23:34:30 +01:00
Matthew Hodgson
1f05aea884 make HTML pasting work 2018-05-19 23:33:07 +01:00
Matthew Hodgson
1536ab433a make file pasting work again 2018-05-19 22:05:31 +01:00
Matthew Hodgson
d426c3474f fix strikethough & code, improve shift-return & backspace 2018-05-19 21:36:22 +01:00
Matthew Hodgson
58670cc3e5 exit list more sanely on backspace 2018-05-19 21:14:39 +01:00
Matthew Hodgson
a4d9338cf0 let backspace delete list nodes in RTE 2018-05-19 20:38:07 +01:00
Matthew Hodgson
167742d900 make RTE sending work 2018-05-19 20:28:38 +01:00
Matthew Hodgson
089ac337f4 remove unused html serializer 2018-05-18 15:22:24 +01:00
Matthew Hodgson
e51554c626 actually hook up RTE 2018-05-17 02:13:17 +01:00
Matthew Hodgson
ae208da805 nudge towards supporting formatting buttons in MD 2018-05-17 00:01:23 +01:00
Matthew Hodgson
4eb6942211 let onChange set originalEditorState 2018-05-15 01:16:06 +01:00
Matthew Hodgson
12a56e8b8e remove spurious comment 2018-05-15 00:59:55 +01:00
Matthew Hodgson
c1000a7cd5 emojioneify the composer
and also fix up the selectedness CSS for pills and emoji
2018-05-14 03:02:12 +01:00
Matthew Hodgson
7ecb4e3b18 remove dead removeMDLinks code 2018-05-13 23:35:39 +01:00
Matthew Hodgson
7405b49b44 unify setState() and onChange()
also make emoji autocomplete work again
also remove the onInputContentChanged prop
also slateify the onInputStateChanged prop
2018-05-13 23:34:00 +01:00
Matthew Hodgson
a247ea2f77 delete duplicate propTypes(!!!) 2018-05-13 22:43:20 +01:00
Matthew Hodgson
ddfe0691c4 fix insert_mention 2018-05-13 22:41:39 +01:00
Matthew Hodgson
dd0726f068 fix navigating history downwards on tall messages; remove obsolete code 2018-05-13 21:17:43 +01:00
Matthew Hodgson
79f7c5d6ab remove // support, as it never worked
if you want to escape a /, do it with \/ or just precede with a space
2018-05-13 03:29:56 +01:00
Matthew Hodgson
4c3588d260 don't lose focus after a / command 2018-05-13 03:26:22 +01:00
Matthew Hodgson
5605439e76 autocomplete polishing
* suppress autocomplete when navigating through history
* only search for slashcommands if in the first block of the editor
* handle suffix returns from providers correctly
* fix bugs when pressing ctrl-a, typing and then tab to complete a replacement by collapsing selection to anchor when inserting a completion in the editor
2018-05-13 03:17:14 +01:00
Matthew Hodgson
877a6195ae unbreak history scrolling for pills & emoji 2018-05-13 00:54:01 +01:00
Matthew Hodgson
33eaa84bdf fix NPEs when deleting mentions 2018-05-13 00:48:52 +01:00
Matthew Hodgson
c91dcffe82 fix cursor behaviour around pills 2018-05-13 00:40:54 +01:00
Matthew Hodgson
9c0c806af4 correctly send pills in messages 2018-05-12 20:04:58 +01:00
Matthew Hodgson
d7c2c8ba7b include the plaintext representation of a pill within it 2018-05-12 16:21:36 +01:00
Matthew Hodgson
410a1683fe make autocomplete selection work 2018-05-12 01:10:38 +01:00
Matthew Hodgson
8b2eb2c400 make history work again 2018-05-08 01:54:06 +01:00
Matthew Hodgson
ff42ef4a58 make it work for MD mode (modulo history) 2018-05-06 22:08:36 +01:00
Matthew Hodgson
190f6d9483 make slate actually work as a textarea 2018-05-06 15:27:27 +01:00
Matthew Hodgson
a2233a48c2 stub out yet more 2018-05-06 01:18:26 +01:00
Matthew Hodgson
05eba3fa32 stub out more until it loads... 2018-05-06 00:18:11 +01:00
Matthew Hodgson
f4ed820b6f fix stubbing 2018-05-05 23:38:14 +01:00
Matthew Hodgson
e62e43def6 comment out more draft stuff 2018-05-05 23:25:04 +01:00