Luke Barnard
5826b6f22a
Instead of sending HTML for any Entity, only send HTML for Links
...
Otherwise emoji messages are sent as HTML, needlessly
2017-07-13 13:41:17 +01:00
Luke Barnard
be045a6dc0
Interpret whitespace after entity as the end of the entity
...
The easiest way to stop the user from inserting whitespace onto the end of an entity is to toggle the entity state of the whitespace that was just entered. This allows the user to continue drafting a message without editing the link content.
This is for pasted `<a>` tags that have been copied from a website. We probably also want to be storing entities for substrings of content that are determined to be URLs.
2017-07-13 13:28:51 +01:00
Luke Barnard
4b96963408
Send HTML if there are any entities present in the composer
...
This is so that pasted HTML links that are represented as entities are sent as HTML.
2017-07-13 13:27:49 +01:00
Luke Barnard
55e1202c09
Decorate pasted links so that they look like links
...
By default, draftjs will represent pasted `<a>` tags as `LINK` entities, but it doesn't do any default decoration of these links. Add a decorator to do so.
Most of this was taken from https://github.com/facebook/draft-js/blob/v0.8.1/examples/link/link.html (note the version, v0.8.1).
2017-07-13 13:26:13 +01:00
Luke Barnard
b104228a7b
Remove redundant functions, bindings, props
2017-07-10 14:27:41 +01:00
Luke Barnard
c9df079464
Merge pull request #1176 from matrix-org/luke/feature-enable-RTE
...
Take RTE out of labs! 🎉
2017-07-10 13:56:00 +01:00
Luke Barnard
7a8f524f4a
Remove two possible sources for the "AutoComplete stays visible bug
...
which is now https://github.com/vector-im/riot-web/issues/4537 <- there.
This does two things:
- Track which query was the most recent one requesting completion and only process completions for that one. (In this case the empty string "" doesn't have any completions but we still track it so that previous calls with non-empty queries would not race and cause completions to be shown when we actuall don't want any.)
- Make the "do we want to show the AutoComplete box?" logic a bit more sane
2017-07-07 15:30:31 +01:00
Luke Barnard
6404f7603c
Merge pull request #1192 from matrix-org/t3chguy/markdown_allow_u
...
Allow underline through MD and in RTE (MD) using <u> which works with CM
2017-07-06 14:08:01 +01:00
Michael Telatynski
ff7ae5b995
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/markdown_allow_u
2017-07-06 13:56:20 +01:00
Michael Telatynski
fcd8321a63
Allow underline through MD and in RTE (MD) using <u> which works with CM
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-06 13:49:13 +01:00
Luke Barnard
bdefb35c64
Only insert HTML into the composer in RTE mode
...
If MD mode is enabled, paste the plaintext equivalent.
2017-07-06 11:52:02 +01:00
Luke Barnard
0bf1124f1b
Merge pull request #1181 from matrix-org/luke/fix-rte-draft-persist
...
Implement MessageComposerStore to persist composer state when room switching
2017-07-05 18:24:27 +01:00
Luke Barnard
d78168d407
Add visual feedback for when there are no completions available
...
Attempts to kep parity with old composer by using the same #faa colour but uses an animation instead of a js timeout.
Fixes https://github.com/vector-im/riot-web/issues/4490
2017-07-05 18:14:22 +01:00
Luke Barnard
3d5b3ed7ad
Use ContentState instead and persist over localStorage
2017-07-05 11:49:34 +01:00
Luke Barnard
084a933dbd
Implement MessageComposerStore to persist composer state across room switching
...
This behaviour was present in the old composer but implemented using local storage. This is unecessary as we don't really care about our drafts across clients, the important thing is that our draft is kept when switching rooms.
As a bonus, ifnore vertical arrow key presses when a modifier key is pressed so that the room switching keys (alt + up/down arrow) don't also cause history browsing (or autocomplete browsing).
2017-07-05 10:24:55 +01:00
Luke Barnard
77348e6201
Remove spurious, unused code
2017-07-04 15:20:00 +01:00
Luke Barnard
664f3acc3c
Only move through history if caret at start or end of line
...
As suggested by @dbkr (because this is what we do for the old composer), only move through history when the caret is that the beginning of the first line (block) or end of the last.
This has the nice property of being able to move the caret up to a really long message: fixes https://github.com/vector-im/riot-web/issues/4471
2017-07-04 10:12:06 +01:00
David Baker
72eed70a84
Merge pull request #1173 from matrix-org/luke/fix-rte-forgets-me
...
Strip out "/me" after committing to RTE history
2017-07-03 15:59:07 +01:00
Luke Barnard
775f5a0e5b
Strip out "/me" after committing to RTE history
...
So that history can include emotes
Fixes https://github.com/vector-im/riot-web/issues/4472
2017-07-03 15:47:03 +01:00
Luke Barnard
86889b8e8c
When formatting with MD enabled, move selection inside ** or equivalent
...
Fixes https://github.com/vector-im/riot-web/issues/3225
Also insert `\n` after code-block and blockquote to fix https://github.com/vector-im/riot-web/issues/2746
2017-07-03 15:23:24 +01:00
Luke Barnard
6bc40a112c
Always store sent MD messages as MD in history
...
Because converting them to HTML when they got sent as HTML seems a bit pointless when they're just going to get transformed back again when retrieved from history.
Fixes regression https://github.com/vector-im/riot-web/issues/4465
2017-06-30 15:47:48 +01:00
Luke Barnard
15cfe5b8e4
Only allow history selection when on the first or last line
...
(of a multi-line or otherwise message in the editor)
2017-06-30 14:27:26 +01:00
Luke Barnard
e7a2c3b975
Only send HTML when using RTE when necessary
...
When there are no styled blocks or inline styles applied within blocks, just send text instead of HTML.
Also, don't add <br /> for the last <p> (the last block).
Fixes https://github.com/vector-im/riot-web/issues/3147
2017-06-30 11:27:00 +01:00
Luke Barnard
8b8260c509
Move cursor to end of editor when quoting
...
When quoting a message, move the selection to the end of the input box. Fixes https://github.com/vector-im/riot-web/issues/2336
2017-06-29 17:22:34 +01:00
Luke Barnard
e5e7dec131
Fix #4422 by persisting the "currently composed" message
...
This allows for browsing through history without losing the message currently being composed.
2017-06-29 17:02:19 +01:00
Luke Barnard
6bd7284161
Be sensible about handling up/down vs tab/tab-shift
...
Fixes https://github.com/vector-im/riot-web/issues/4445
2017-06-29 15:07:06 +01:00
Luke Barnard
8912400675
Add XXX for https://github.com/vector-im/riot-web/issues/4445
2017-06-28 18:05:39 +01:00
Luke Barnard
d5585e29b1
Merge pull request #1155 from matrix-org/luke/fix-rte-cursor-at-start-of-history
...
Fix issue where the cursor is put at the start of selected history item
2017-06-28 17:17:56 +01:00
Luke Barnard
d696373bc2
Fix issue where the cursor is put at the start of selected history item
...
Leading to strange behaviour when selecting all and deleting it.
Fixes https://github.com/vector-im/riot-web/issues/4450
2017-06-28 15:29:07 +01:00
Luke Barnard
bcb67bb273
Refactor shared code between onUpArrow
and onDownArrow
2017-06-28 15:20:16 +01:00
Luke Barnard
f73fa4b49b
Move processing into renamed function processHtmlforSending
...
And explain why this fix is necessary
2017-06-28 11:49:50 +01:00
Luke Barnard
1523d304f2
WIP to prevent RTE from deleting current message input when up arrow pressed
2017-06-28 10:30:59 +01:00
Luke Barnard
69589c19e7
Work around draft-js-export-html#62 by post-processing <br>\n
...
Fixes https://github.com/vector-im/riot-web/issues/4446 by post-processing the output HTML from draft-js-export-html by replacing `<br>\n` with `<br>`. This works for content within or outside of `<pre>`. If we replace with `\n` instead, the newlines only apply in `<pre>` tags so we use `<br>`.
2017-06-27 18:33:45 +01:00
Luke Barnard
5307731dfd
Overide default draft-js handling of pasting text/html
...
This is surprisingly needed to avoid an issue with draft-js that causes multi-line madness when pasting code and then applying format-as-code to it - https://github.com/vector-im/riot-web/issues/2120#issuecomment-271735729 .
The issue sounds like it is https://github.com/facebook/draft-js/issues/170#issuecomment-195026203 and the suggstion is to override the text pasting handler https://github.com/facebook/draft-js/issues/170#issuecomment-215983216 . Meanwhile they haven't modified the default pasting behaviour afaics.
I've discovered a separate issue that is apparent even after this suggested fix. (https://github.com/vector-im/riot-web/issues/4446 )
2017-06-27 17:10:28 +01:00
Luke Barnard
ba31a32440
Allow toggling of dev tools when RTE focussed
2017-06-27 15:17:57 +01:00
Luke Barnard
9404dd30c5
Use <del> for strikeout
...
We've swapped to commonmark, which uses <del> instead of ~~ for strikeout, so make the RTE insert <del> when we apply strikeout. Also, when ~~ is inserted, transform them into <del> for simplicity. This means giving an input of ~~test~~ is effectively the same as giving an input of <del>test</del>.
2017-06-23 18:19:06 +01:00
Luke Barnard
89afcfd897
Linting
2017-06-23 17:35:07 +01:00
Luke Barnard
87609582c6
Merge branch 'develop' into rte-fixes2
...
Conflicts:
package.json
src/autocomplete/CommandProvider.js
src/autocomplete/UserProvider.js
src/components/structures/RoomView.js
src/components/structures/UserSettings.js
src/components/views/rooms/MessageComposerInput.js
2017-06-23 15:30:06 +01:00
Matthew Hodgson
c173861b27
Merge pull request #1021 from Bitim/feature/rtl-languages-support
...
Better RTL support
2017-06-08 14:43:18 +01:00
saul.kredi@krutt.org
159a920dc8
Better RTL support
2017-06-03 18:52:45 +03:00
Michael Telatynski
4032a820f0
move KEY_M to KeyCode
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-02 21:46:08 +01:00
Michael Telatynski
464863acd6
remove unused imports
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-02 21:35:55 +01:00
Kegan Dougal
547f10bcbb
Add translations for slash command failures
2017-06-01 15:44:56 +01:00
David Baker
443ab1add7
Put back default strings on dialogs
...
But make them work by calling _t in render rather than
getDefaultProps().
Also sort out some 'Warning!' strings
2017-05-25 18:20:48 +01:00
David Baker
5c359e63ab
Bulk change counterpart imports
...
to use languageHandler wrapper func
2017-05-25 11:39:08 +01:00
David Baker
d419c42a4f
Squash merge https://github.com/matrix-org/matrix-react-sdk/pull/801
2017-05-23 15:16:31 +01:00
Richard van der Hoff
8695397abb
Support for pasting files into normal composer
...
We don't seem to be in any danger of getting a working RTE any time soon, so
implement file pasting in the normal composer too.
2017-05-17 01:43:13 +01:00
Michael Telatynski
d7c88a9813
only removed /me
, remove anyway to fix vector-im/riot-web#3733
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-13 15:20:31 +01:00
Luke Barnard
f5a23c14df
Remove redundant bind
2017-05-08 17:32:26 +01:00
Luke Barnard
fe121126f5
Merge branch 'develop' into rte-fixes
...
Conflicts:
src/UserSettingsStore.js
src/autocomplete/EmojiProvider.js
src/components/views/rooms/MessageComposerInput.js
2017-05-08 17:08:59 +01:00