Commit graph

298 commits

Author SHA1 Message Date
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
Matthew Hodgson
02947063d3 Merge branch 'develop' into matthew/slate 2018-05-05 22:45:44 +01:00
Michael Telatynski
db55f87699
avoid .done and .then anti-pattern
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-01 18:14:35 +01:00
Michael Telatynski
68dd57f56e
rename two methods
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-27 11:47:18 +01:00
Matthew Hodgson
75a2be1a8d WIP (doesn't build yet) replacing draft with slate 2018-04-23 01:13:18 +01:00
Michael Telatynski
f765db7d16
only clear reply_to_event if there was one to begin with
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-07 12:18:53 +01:00
Michael Telatynski
9c2e3e25f0
clear reply_to_event at queue not send time
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-04 10:34:39 +01:00
Michael Telatynski
0ed3563748
clear quoting event even on send fail, as then we can click retry
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-16 00:03:50 +01:00
Michael Telatynski
14f29e4740
fix the bugs Tulir found - THANKS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-09 23:37:42 +00:00
Michael Telatynski
df56a67fda
Add reply fallback and run gen-i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-04 12:39:34 +00:00
Michael Telatynski
665ddccb0d
restrict to m.text for now
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-20 15:45:25 +00:00
Michael Telatynski
90f9badbf3
s/Reply/ReplyThread/
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-20 15:40:19 +00:00
Michael Telatynski
34b427d15e
s/quote_event/reply_to_event/
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-19 23:41:07 +00:00
Michael Telatynski
fbb950e064
mass s/Quote/Reply
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-10 12:38:25 +00:00
Michael Telatynski
1c3d8cbe6e
initial refactor of Replies to use B explicit over-the-wire format
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-10 11:19:43 +00:00
Michael Telatynski
5764280588
Persist contentState when sending SlashCommand via MessageComposerInput
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-29 09:09:22 +00:00
Michael Telatynski
23bd612730
Focus composer when clicking Reply (quote event)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-11 19:29:00 +00:00
Michael Telatynski
1bc9d344ae
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/nvl/rich_quoting
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/components/views/messages/TextualBody.js
2018-01-10 11:54:58 +00:00
David Baker
5aed77c752
Merge pull request #1677 from aidalgol/PropTypes
Remove use of deprecated React.PropTypes
2018-01-05 11:53:55 +00:00
nostradamos
2189fe9256 removed console.log 2018-01-03 01:52:02 +01:00
nostradamos
e543f55572 refactored code 2018-01-03 01:50:03 +01:00
nostradamos
36df3acf4d Merge remote-tracking branch 'origin/develop' into fix_riot_web_4821 2018-01-02 23:07:47 +01:00
nostradamos
03f88df66e Make the scrolling compatible with our riot-web fix for https://github.com/vector-im/riot-web/issues/4821 2018-01-02 22:44:18 +01:00
Aidan Gauland
35780f5ae0 Remove use of deprecated React.PropTypes
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Michael Telatynski
5c229b9ef8
DRY matrix.to link generation so it is all changeable in one class
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-12 23:33:40 +00:00
Michael Telatynski
4666ac7c83
hide rich quoting behind flags, retaining original quoting for now
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-12 23:29:43 +00:00
Michael Telatynski
0f85391587
Implement Rich Quoting/Replies
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-10 12:50:41 +00:00
David Baker
0d38e7510d
Merge pull request #1600 from matrix-org/dbkr/udd_no_auto_show
Don't Auto-show UnknownDeviceDialog
2017-12-08 16:33:25 +00:00
Luke Barnard
363fe04a10 isCtrlOrCmdKeyEvent -> isOnlyCtrlOrCmdKeyEvent 2017-12-01 10:44:00 +00:00
Luke Barnard
fe81fcb8c6 Factor out isCtrlOrCmdKeyEvent, use that in TagPanel
as opposed to the incorrect ctrl || meta
2017-12-01 10:30:49 +00:00
David Baker
196eafdc7f Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-16 15:59:16 +00:00
Luke Barnard
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
David Baker
f8fc6dc83e Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-15 12:11:33 +00:00
David Baker
b1ec430523 Remove now-unused dispatches 2017-11-09 16:09:12 +00:00
Travis Ralston
289b0c2b6a
Merge branch 'develop' into travis/granular-settings 2017-11-07 14:55:12 -07:00
David Baker
df5c6470e8 get dict syntax right 2017-11-06 22:01:23 +00:00
David Baker
08d006d112 PR feedback 2017-11-06 17:15:09 +00:00
David Baker
adc4290451 Pillify room notif pills in composer 2017-11-06 15:11:42 +00:00
Travis Ralston
8282534f87 Add SettingsLevel enum; Move settings to own file.
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-03 23:19:45 -06:00
Travis Ralston
893c39bfbe Merge branch 'develop' into travis/granular-settings 2017-11-03 22:00:07 -06:00
David Baker
498b117d5a copyrights 2017-11-02 18:01:28 +00:00
David Baker
4953d4de4d Give autocomplete providers the room they're in
Removes the gut-wrenching that RoomView does to jam the user list
into the user autocomplete provider.
2017-11-02 17:51:08 +00:00
Travis Ralston
ae10a11ac4 Convert synced settings to granular settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 01:43:52 -06:00
Luke Barnard
d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
Stefan Parviainen
d4929b558e Add dummy translation function to mark translatable strings
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-09-22 21:43:27 +02:00
Luke Barnard
8ed5422a45 Fix click to insert completion
And remedy weird API in the process. Autocomplete now exposes `onSelectionChange` to indicate that the user has selected another completion, rather than returning the chosen completion via onUpArrow etc.

Fixes vector-im/riot-web#4835
2017-08-23 16:22:14 +01:00
Luke Barnard
6b1b643d41 Merge branch 'develop' into luke/store-history-as-raw-content 2017-08-14 16:42:22 +01:00
Luke Barnard
9742962d61 preventDefault when moving autocomplete selection with vertical arrow
Otherwise the composer selection updates, in turn hiding the autocomplete box - fixes vector-im/riot-web#4790
2017-08-14 15:16:13 +01:00
Michael Telatynski
41843f021d
don't track two more potential risks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 15:21:01 +01:00
Michael Telatynski
b19c1010aa
Merge branches 'develop' and 't3chguy/i18n_analytics' of github.com:matrix-org/matrix-react-sdk into t3chguy/i18n_analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/Analytics.js
2017-08-10 13:54:55 +01:00
Michael Telatynski
24599ace32
don't track error messages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 13:49:11 +01:00
Luke Barnard
b2fd4be166 Merge pull request #1289 from matrix-org/luke/fix-quote-innerText
Quote by taking the innerText of eventTiles
2017-08-10 10:35:49 +01:00
Luke Barnard
678c472b75 Quote by taking the innerText of eventTiles
because using `body` gives inconsistent results - sometimes it will contain markdown and sometimes not, and this may not correspond with the `formatted_body`.

TODO: Do quoting proper - using `in_response_to`.
2017-08-10 10:14:14 +01:00
Luke Barnard
390e77ee22 Merge pull request #1288 from matrix-org/luke/track-richtext-mode
Track whether the user has richtext mode enabled
2017-08-10 09:31:09 +01:00
Luke Barnard
fc6977e68d Track RT mode once we've retrieved the setting from account data 2017-08-09 19:00:38 +01:00
Luke Barnard
e121440d05 Track whether the user has richtext mode enabled 2017-08-09 18:39:06 +01:00
Luke Barnard
2d47d3d2c3 Hide autocomplete when RTE selection state (cursor) changes 2017-08-09 17:36:35 +01:00
Luke Barnard
610b2a3a42 For mentions, always use rawDisplayName and remove (IRC) 2017-08-09 10:40:06 +01:00
Luke Barnard
503fa6a7b3 Always use message body when quoting
(not formatted_body)

This is because draft-js has regressed with a bug that causes some entities to not exist within a given ContentState - see vector-im/riot-web#4756
2017-08-08 14:59:56 +01:00
David Baker
ca2273519d Merge pull request #1277 from matrix-org/luke/feature-pills-hide-avatar-setting
Add optional setting for hiding avatars in <Pill>s
2017-08-08 14:01:34 +01:00
Luke Barnard
91a1cc4431 Mandate ctrl/meta ONLY for a subset of key bindings
Because by default dratf-js doesn't check that other modifiers are _not_ pressed.
2017-08-08 13:36:43 +01:00
Luke Barnard
b08d32371d Add optional setting for hiding avatars in <Pill>s
As part of https://github.com/vector-im/riot-web/issues/4640#issuecomment-316659445
2017-08-08 11:13:29 +01:00
Luke Barnard
7018deee44 Fix ctrl+a, backspace toggling block format
Now it will delete the selected range (and not toggle the block format). Fixes vector-im/riot-web#4753
2017-08-07 17:16:42 +01:00
Luke Barnard
641fda0162 Adjust comment 2017-08-07 16:29:22 +01:00
Luke Barnard
d9d8f2055f Allow default for ctrl+shift+b, ctrl+shift+u in RTE
fixes vector-im/riot-web#4750
2017-08-07 16:23:37 +01:00
Luke Barnard
a27eefd893 Fix a couple of more errors due to API changes 2017-08-03 15:20:44 +01:00
Luke Barnard
901cbf495d Update decorator strategy API in accordance with recent changes to 0.11.0
See 590cdc6c54, which is a change to the API not mentioned in the migration to v0.10 notes https://draftjs.org/docs/v0-10-api-migration.html
2017-08-03 12:02:29 +01:00
Luke Barnard
1d1cd5f691 Reflect API change for decorator strategy 2017-08-03 11:36:07 +01:00
Luke Barnard
fb5dc295aa Reflect API change for getting an Entity 2017-08-03 11:29:26 +01:00
Luke Barnard
124795006c Reflect API change for creating an Entity 2017-08-03 11:18:56 +01:00
Luke Barnard
7fcb8c5ff0 Merge pull request #1261 from matrix-org/luke/fix-agressive-emoji-auto-replace
Only auto-replace emoji following ^ or \s
2017-08-01 15:56:42 +01:00
Luke Barnard
438b63bee2 Only auto-replace emoji following ^ or \s
So as not to cause issues when typing e.g. `This is what was tested: ` (the "d:" used to be transformed into an emoji)
2017-08-01 14:26:30 +01:00
Michael Telatynski
4bdaa15c47
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/i18n_analytics 2017-07-28 21:01:59 +01:00
Luke Barnard
8a5f2bf2ca Interpret a split-block as format toggle for an empty block
(`split-block` is emitted when "return" is pressed)

part of fixing https://github.com/vector-im/riot-web/issues/4580
2017-07-28 14:46:57 +01:00
Luke Barnard
6cb8b12cda Instead of inserting MD for completion, convert the Entity later
This makes sure that the length of the range for a completed Entity = the length of the text in the decoration, which apparently draftjs assumes when calculating selection state offsets.

Fixes https://github.com/vector-im/riot-web/issues/4666
2017-07-27 18:17:41 +01:00
Michael Telatynski
bf98c0da7c
un-i18n Modal Analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-27 17:19:18 +01:00
Luke Barnard
5c7891a25b Remove logs 2017-07-27 15:26:36 +01:00
Luke Barnard
e71df44fc9 Fix /join #alias command in markdown mode
Tab-completing a room alias inserts a markdown link, which is now stripped before a command is parsed. We also strip the MD links when doing the autocompletion itself (getAutocompleteQuery).

There is still an issue where `/invite` will not work at all with tab-completion - the text of a user Pill is not the userID but rather the display name, which cannot be used as an argument to the command.
2017-07-27 15:18:06 +01:00
Luke Barnard
fc00eaf546 Merge branch 'develop' into luke/store-history-as-raw-content 2017-07-25 17:19:35 +01:00
Luke Barnard
7e0fecbc8c Scroll to the bottom of editor if on last line
Make the MessageComposerInput scroll to the bottom if we are on the last line of the contents.

fixes https://github.com/vector-im/riot-web/issues/4652
2017-07-25 15:22:10 +01:00
Luke Barnard
eccdceae33 Rename props to entityProps for clarity 2017-07-25 11:43:12 +01:00
Luke Barnard
143994e44f Use data-offset-key in RTE decorators
This makes sure the selection state is correct when moving the cursor through an entity in the composer but only in rich text mode. https://github.com/vector-im/riot-web/issues/4666 still persists despite this, probably because the text content inserted during a completion in markdown mode has a different length to the text node within the entity.

fixes vector-im/riot-web#4654
2017-07-25 11:25:33 +01:00
Luke Barnard
6945fa54ea Reimplement so that only tab-completed mentions are stripped
Instead of blindly stripping all MD mentions, only strip those that were tab-completed. We do this by adding the `isCompleted` flag to the Entity data.
2017-07-24 14:41:13 +01:00
Luke Barnard
397201a74d Remove subjective comment 2017-07-24 09:41:46 +01:00
Luke Barnard
e315b30f6a Merge branch 'develop' into luke/fix-rte-pt-md-mentions 2017-07-21 18:06:31 +01:00
Luke Barnard
e8495f637f Strip MD mentions from the body of sent messages
Because previously we just sent the display name and MD links are not very readable.
2017-07-21 16:38:31 +01:00
Luke Barnard
7db7192701 Factor out shared logic in two code-paths for pill rendering
This isn't an entirely side-effect-free refactoring:
 - the text of the timeline pills is now either the room ID/alias or user ID/ display name of the linked resource (which means that until we do a roundtrip to get user displaynames, mentions for users not in the current room will have their user IDs shown instead of what was in the link body).
 - timeline links to rooms without avatars are now rendered as links
 - fixed issue that would throw an error whilst rendering (i.e. unusable client) a room link to a room that the client doesn't know about
2017-07-21 14:07:48 +01:00