Commit graph

2652 commits

Author SHA1 Message Date
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
Travis Ralston
b3cda4b19a Support multiple integration managers behind a labs flag
Fixes https://github.com/vector-im/riot-web/issues/10622
Implements [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957)

Design is not final.
2019-08-23 09:12:40 -06:00
Bruno Windels
944c56d09b prevent cider history overlapping with slate composer history 2019-08-22 14:07:03 +01:00
Bruno Windels
6a3ecde4e6 duplicate slate code where we changed it drastically
to still make it work when the feature flag will be turned off
2019-08-22 14:05:54 +01: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
9f72268df7 avoid null-refs when receiving an action before initial rendering 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
3c5cf3e778 rename ComposerHistoryManager to SendHistoryManager to avoid confusion
...with the undo history manager for the composer.
2019-08-22 13:33:20 +01:00
Bruno Windels
c5cd8b943a support auto complete for /commands 2019-08-22 13:33:20 +01:00
Bruno Windels
88cc1c428d add support for emotes and running /commands
this does not yet include autocomplete for commands
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
9003a8836a put dispatches together 2019-08-22 13:33:20 +01:00
Bruno Windels
2e71dd3ea8 cleanup, move code out of big switch statement 2019-08-22 13:33:20 +01:00
Bruno Windels
60e10364b0 add quoting functionality to new composer 2019-08-22 13:33:20 +01:00
Bruno Windels
10c218825b allow inserting multiple parts at a position 2019-08-22 13:33:20 +01:00
Bruno Windels
a9d6d01f10 add reply fields to message content to be sent when replying 2019-08-22 13:33:20 +01:00
Bruno Windels
7b3282185a update proptypes 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
71286b5610 restore reply_to_event action 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
2cff486ec0 set placeholder same as label 2019-08-22 13:33:20 +01:00
Bruno Windels
f9992a1fc6 implement editor placeholder 2019-08-22 13:33:20 +01:00
Bruno Windels
e2e4ea493f set aria label on main composer too 2019-08-22 13:33:20 +01:00
Bruno Windels
cfbd2e9cc8 support basic sending with new main composer
this removes all formatting options, as the new editor doesn't
have any.
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
341fdcd761 cleanup lint errors 2019-08-22 13:33:20 +01:00
Travis Ralston
ffa49df889 Refactor integration manager handling into a common place
It was already in a common place, but this is the boilerplate for supporting multiple integration managers, and multiple integration manager sources. 

For https://github.com/vector-im/riot-web/issues/4913 / https://github.com/vector-im/riot-web/issues/10161
2019-08-09 16:08:06 -06:00
Travis Ralston
3144b9f1a2 Disable 'Start New Chat' button in MemberInfo if we already have chats
Part of https://github.com/vector-im/riot-web/issues/10416
2019-08-07 12:06:27 -06:00
Bruno Windels
66ef08120e
Merge pull request #3282 from matrix-org/bwindels/extract-common-editor-code
Split MessageEditor up in edit-specifics & reusable parts for main composer
2019-08-07 07:58:52 +00:00
Michael Telatynski
daf1a794e6
Merge pull request #3276 from matrix-org/t3chguy/react16_1
Progress towards React 16 compatibility
2019-08-06 18:09:30 +01:00
Michael Telatynski
d99fb4796f avoid using import * as Matrix
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-06 14:04:33 +01:00
Bruno Windels
299cf8542c Split MessageEditor in edit-specifics & reusable part for main composer 2019-08-05 15:31:18 +02:00
Michael Telatynski
224dac3ffb Remove withMatrixClient as we are committed to using Contexts
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-05 12:26:31 +01:00
Michael Telatynski
debc124714 Use the documented syntax for default props in CreateReactClass
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-05 10:08:07 +01:00
Michael Telatynski
1087e04bb5 Replace React.PropTypes with usage of the prop-types package
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-31 12:19:29 +01:00
J. Ryan Stinnett
4ebafb93c3 Rename isAccessToken to identityAccessToken 2019-07-30 17:37:48 +01:00
J. Ryan Stinnett
dacb5d42ac Support IS v2 auth in preview bar 2019-07-30 17:37:48 +01:00
J. Ryan Stinnett
244b613623 Convert 3PID lookup in preview bar to async / await 2019-07-30 17:37:48 +01:00
Michael Telatynski
bf1d65623c Move history with alt up/down regardless of where selection is
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-29 11:31:22 +01:00
David Baker
2eb8a8879b
Merge pull request #3199 from matrix-org/dbkr/terms
ToS for ISes/IMs: prompt on use screen
2019-07-23 10:32:11 +01:00
J. Ryan Stinnett
599c49613f Remove reactions feature flag
Fixes https://github.com/vector-im/riot-web/issues/10282
2019-07-17 17:00:36 +01:00
J. Ryan Stinnett
674f33917f Remove editing feature flag
Part of https://github.com/vector-im/riot-web/issues/10282
2019-07-17 16:56:15 +01:00
Travis Ralston
31339aa11f Don't show a reason if there's no reason for a kick/ban
Fixes https://github.com/vector-im/riot-web/issues/9677
2019-07-14 23:31:38 -06:00
Travis Ralston
ed2f88fd79 Autojoin rooms when clicking the tombstone
Fixes https://github.com/vector-im/riot-web/issues/10299
2019-07-11 08:39:41 -06:00
David Baker
83f697a9a2 lint 2019-07-09 19:01:22 +01:00
David Baker
d4af8d4993 Use showIntegrationsManager in other places 2019-07-09 18:56:39 +01:00
David Baker
54aaabac74 Initial support for ToS dialogs for IS/IM
as per MSC2140
2019-07-09 18:51:56 +01:00
Michael Telatynski
89d568ce97 Don't allow editing via up-arrow when Replying
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-05 08:36:16 +01:00
David Baker
b43a04634a
Merge pull request #3172 from matrix-org/t3chguy/invites_list
Fix logic around MemberList invites section, specifically regarding 3pid
2019-07-03 16:01:01 +01:00
Travis Ralston
7dbd17c137
Merge pull request #3150 from matrix-org/travis/less-typing
Track the user's own typing state external to the composer
2019-07-03 08:33:42 -06:00
Bruno Windels
353f5a205c
Merge pull request #3170 from matrix-org/bwindels/handle-associated-failures
Handle associated event send failures
2019-07-03 09:02:58 +00:00
Michael Telatynski
bc4bff64f6 Fix logic around MemberList invites section, specifically regarding 3pid
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-03 08:38:08 +01:00
Travis Ralston
1d54911581
Merge pull request #3159 from matrix-org/travis/pick-server-tombstone
Use the event sender instead of event ID for viaServers off a tombstone
2019-07-02 07:52:40 -06:00
Bruno Windels
d0d327620b hide reactions for redacted events 2019-07-02 13:56:27 +02:00
Travis Ralston
4f6db320e3
Appease the linter 2019-06-28 16:44:19 -06:00
Travis Ralston
8905566cfb Clean up legacy breadcrumbs persistence fallback
It's been more than a few weeks.
2019-06-28 16:30:59 -06:00
Travis Ralston
083c1a78ab Use the event sender instead of event ID for viaServers off a tombstone
Fixes https://github.com/vector-im/riot-web/issues/10206
2019-06-28 12:34:46 -06:00
Travis Ralston
8bb860e870 Use fewer functions for typing in the composer 2019-06-27 10:37:33 -06:00
Travis Ralston
17ed62de7d Move MessageComposer typing timeout to TypingStore 2019-06-27 10:35:44 -06:00
Travis Ralston
7f2ab39609
Merge pull request #3142 from matrix-org/travis/preview-loading
Show a loading state for slow peeks
2019-06-27 09:24:25 -06:00
Travis Ralston
cd089a3f95 Track the user's own typing state external to the composer
Fixes https://github.com/vector-im/riot-web/issues/9986

There's a few reasons for pushing this out to its own place:
* In future, we might want to move WhoIsTyping here.
* We have multiple composers now, and although they don't send typing notifications, they could (see https://github.com/vector-im/riot-web/issues/10188)
* In future we may have status for where/what the user is typing (https://github.com/matrix-org/matrix-doc/issues/437)
* The composer is complicated enough - it doesn't need to dedupe typing states too.

Note: This makes use of the principles introduced in https://github.com/vector-im/riot-web/issues/8923 and https://github.com/vector-im/riot-web/issues/9090
2019-06-26 22:36:55 -06:00
Travis Ralston
8d85967824
Merge pull request #3139 from matrix-org/travis/upgrades-final
Fix room upgrade warning being chopped off and a spelling mistake
2019-06-26 07:12:39 -06:00
Travis Ralston
ca6ddf324f Show a loading state for slow peeks 2019-06-25 20:56:33 -06:00
Travis Ralston
0701d89bbe Fix upgrade warning being chopped off
The flex box was behaving a bit strange, so we just wrap the content and change `height: 235px` to `max-height: 235px` to get scrollbars.
2019-06-25 15:40:22 -06:00
J. Ryan Stinnett
91f707341a Tweak handler name to match others 2019-06-25 15:12:30 +01:00
Bruno Windels
5fa3f70fb4 feature flag for displaying edits as well 2019-06-21 18:32:15 +02:00
Bruno Windels
cf0799289d Disable left/right arrow navigating completions for now
as the autocomplete is now very eager to appear, this breaks
caret navigation when typing e.g. anything with a colon.

Ideally, we should make the AC less eager to appear,
but this is a quick fix for now.
2019-06-21 13:48:52 +02:00
J. Ryan Stinnett
78b0f61efe
Merge pull request #3119 from matrix-org/jryans/rename-tooltip-button
Fix casing of TooltipButton
2019-06-19 19:18:15 +01:00
David Baker
0e6f401b62 copyright 2019-06-19 11:48:47 +01:00
David Baker
c57d93702a De-duplicate notif badge code
We had two different places we were deciding whether to show a badge.
Let's just have one.
2019-06-19 11:46:24 +01:00
J. Ryan Stinnett
4ec7a8ddff Fix casing of TooltipButton
My brain can't deal with two different ways to write "Tooltip", so this
converges the naming to match the rest of the code base. Separate commits will
fix up the file names for case-insensitive file systems.
2019-06-19 11:26:13 +01:00
Travis Ralston
7b514b0573
Merge pull request #3115 from matrix-org/travis/reduce-scalar-calls
Defer scalar API calls until they are needed
2019-06-18 08:17:21 -06:00
Travis Ralston
b6ca0ea6bf Appease the linter 2019-06-18 08:01:38 -06:00
Travis Ralston
be37332bb0 Further simplify usage of integrations 2019-06-18 07:55:43 -06:00
Bruno Windels
f95f194b6a keep old arrow-up behaviour when editing is not enabled
also, move caret at end/start checks before choosing what to do
also, selectHistory shouldn't return a promise
2019-06-18 11:49:36 +02:00
Travis Ralston
974a11ed20 Defer scalar auth in AppsDrawer to widgets/manager dialog 2019-06-17 15:39:32 -06:00
Travis Ralston
f699fed720 Defer sticker picker scalar auth to integration manager dialog
or when needed, instead of up front.
2019-06-17 15:30:24 -06:00
Michael Telatynski
03c37821f6 clean up onVerticalArrow
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-15 15:10:34 +01:00
Michael Telatynski
6a10f0068d Use Alt-UP/DOWN for Composer History instead of random room change
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-14 12:26:52 +01:00
Michael Telatynski
876acc0f76 Merge branches 'develop' and 't3chguy/restore_composer_history' of github.com:matrix-org/matrix-react-sdk into t3chguy/restore_composer_history
# Conflicts:
#	src/components/views/rooms/MessageComposerInput.js
2019-06-14 12:26:05 +01:00
Bruno Windels
48f5cf1523
Merge pull request #2966 from npny/npny/autocomplete-arrow-keys
Allow arrow keys navigation in autocomplete list
2019-06-13 15:38:36 +00:00
Michael Telatynski
acb813372c Restore Composer History under shift-up & down
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-12 21:32:47 +01:00
Bruno Windels
41e41269dc use EditorStateTransfer to pass on state to newly mounted editor 2019-06-12 18:52:34 +02:00
David Baker
80812db466 Remember we were trying to accept an invite
When the user was on an invite page and clicked the sign up/sign in
buttons, remember that invite so we can show it again after they're
done signing up/in.

https://github.com/vector-im/riot-web/issues/9816
2019-06-10 10:24:06 +01:00
David Baker
b365c9dfe6
Merge pull request #3074 from matrix-org/dbkr/fix_email_invite_address_match_check
Fix email invites address-match checking
2019-06-06 15:06:36 +01:00
David Baker
9816fe0ed7 Fix email invites address-match checking
Riot was always saying the email address that the invite was sent
to was not associated with your account.

Two fixes here:
 1. We mounted RoomPreviewBar with no invitedEmail prop and then
    changed the prop later, but RoomPreviewBar only checked for it
    on mount. Make sure we re-check when the props change.
 2. Pass oobData through RoomPreviewBar because we need to pass it
    to the RoomAvatar for 3pid invites.

https://github.com/vector-im/riot-web/issues/9816
2019-06-06 14:34:57 +01:00
Michael Telatynski
25a994e575 pull toLowerCase(...).replace(...) out of the loop
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-06 08:45:32 +01:00
Michael Telatynski
878f0a4753 Be somewhat fuzzier when matching emojis to complete on space
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-06 08:39:24 +01:00
Travis Ralston
6b2dbdf7ba Don't refresh custom status on logout
The RoomTile gets remounted during logout due to the room stores being obliterated, however this causes the render() function to check if it should be showing custom status. If you have custom status enabled, and the person has a status set, the function errors due to no MatrixClient being available.

Fixes https://github.com/vector-im/riot-web/issues/9940
2019-06-04 15:34:11 -06:00
J. Ryan Stinnett
bea845a80d
Merge pull request #3059 from matrix-org/jryans/read-receipts-relations-send-review
Advance read receipts into trailing events without tiles
2019-06-04 14:35:14 +01:00