Commit graph

352 commits

Author SHA1 Message Date
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
Michael Telatynski
c551f2983a Add TextualBody-test.js
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-06 13:28:29 +00:00
Bruno Windels
3b9c5c0a27 remove unused code 2020-01-03 13:50:13 +01:00
Bruno Windels
d8a38e6b74 WIP 2020-01-03 13:42:17 +01:00
Travis Ralston
4de0f7257a Initial implementation of FTUE user lists design
This covers the "recents" section and rough design exclusively. It is known that the Field does nothing and that there's a bunch of missing functionality - this is to be iterated upon in future PRs. Labs flag is to aide development and should be removed in a very near future PR.

Also, this is focusing on DMs and not user lists in general because I misinterpreted the scope. I'll fix this in a future PR and instead make this the best DM invite dialog it can be.

Closes https://github.com/vector-im/riot-web/issues/11197
2020-01-02 17:40:18 -07:00
Travis Ralston
f1ac3d2f64 Convert imports to ES6 from CommonJS
This is needed because `require()` means something different in webpack - it ends up importing the module as something we didn't expect (and is occasionally async)
2019-12-22 21:16:06 -07:00
Travis Ralston
042bd35d79 Fix MatrixClientPeg imports 2019-12-22 21:15:54 -07:00
Travis Ralston
806d728d59 Import from the js-sdk's src/ directory
Because ES6 and such.
2019-12-22 21:14:33 -07:00
Travis Ralston
be4eeb5e07 Fix js-sdk imports for new module 2019-12-22 21:10:26 -07:00
Travis Ralston
d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Michael Telatynski
24d0d0d596
Merge pull request #3743 from matrix-org/t3chguy/react16_contexts
Migrate away from React Legacy contexts API
2019-12-19 20:32:11 +00:00
Michael Telatynski
3678e64f5d Internationalise M_TOO_LARGE error from Synapse 2019-12-19 13:25:43 +00:00
Michael Telatynski
937b32663c Migrate away from Legacy React Contexts 2019-12-17 17:26:12 +00:00
Michael Telatynski
ab3fb6581b Down to 7 test failures 2019-12-17 11:24:37 +00:00
Travis Ralston
9865ce899b Add a bunch of docs
We're making an assumption here that the decorator is actually all over the app when it's not.
2019-12-16 16:34:46 -07:00
Travis Ralston
0a9985fb48 Rename decorator for clarity 2019-12-16 16:10:11 -07:00
Travis Ralston
20a615396b Implementation of new potential skinning mechanism
With a switch to Only One Webpack™ we need a way to help developers generate the component index without a concurrent watch task. The best way to do this is to have developers import their components, but how do they do that when we support skins? The answer in this commit is to change skinning.

Skinning now expects to receive your list of overrides instead of the react-sdk+branded components. For Riot this means we send over *only* the Vector components and not Vector+react-sdk. 

Components can then be annotated with the `replaceComponent` decorator to have them be skinnable. The decorator must take a string with the dot path of the component because we can't reliably calculate it ourselves, sadly. 

The decorator does a call to `getComponent` which is where the important part of the branded components not including the react-sdk is important: if the branded app includes the react-sdk then the decorator gets executed before the skin has finished loading, leading to all kinds of fun errors. This is also why the skinner lazily loads the react-sdk components to avoid importing them too early, breaking the app.

The decorator will end up receiving null for a component because of the getComponent loop mentioned: the require() call is still in progress when the decorator is called, therefore we can't error out. All usages of getComponent() within the app are safe to not need such an error (the return won't be null, and developers shouldn't use getComponent() after this commit anyways).

The AuthPage, being a prominent component, has been converted to demonstrate this working. Changes to riot-web are required to have this work.

The reskindex script has also been altered to reflect these skinning changes - it no longer should set the react-sdk as a parent. The eventual end goal is to get rid of `getComponent()` entirely as it'll be easily replaced by imports.
2019-12-12 19:48:45 -07:00
Michael Telatynski
142a71cc67
Merge pull request #3694 from matrix-org/t3chguy/fix_SpecPermalinkConstructor
Fix ?via= args in SpecPermalinkConstructor.js
2019-12-08 10:04:41 +00:00
Michael Telatynski
857f086501 Fix ?via= args in SpecPermalinkConstructor.js
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-03 00:05:19 +00:00
Travis Ralston
4d5f133b17
Merge pull request #3684 from matrix-org/travis/auto-invite-upgrades
Add an option to invite users to upgraded private rooms
2019-12-02 17:03:25 -07:00
Travis Ralston
f020929345 Add an option to invite users to upgraded private rooms
The option doesn't show up on public room upgrades.
2019-11-27 20:29:11 -07:00
Travis Ralston
673e6c3162 Don't assume that diffs will have an appropriate child node
Fixes https://github.com/vector-im/riot-web/issues/11497

This is a regression from react-sdk v1.5.0 where the diff feature was added in the first place. It only affects lists.
2019-11-27 12:26:43 -07:00
Bruno Windels
4a684d01a4
Merge pull request #3661 from matrix-org/bwindels/verif-toasts
Show incoming verification requests in in-app notifications
2019-11-22 16:39:18 +00:00
Bruno Windels
c705752317 add toast for verification requests
this uses a verification requests as emitted by the js-sdk with
the `crypto.verification.request` rather than a verifier as emitted
by `crypto.verification.start` as this works for both to_device and
timeline events with the changes made in the js-sdk pr.
2019-11-22 16:08:27 +01:00
Michael Telatynski
d3f872bf7a Merge branches 'develop' and 't3chguy/remove_bluebird' of github.com:matrix-org/matrix-react-sdk into t3chguy/remove_bluebird 2019-11-21 11:15:32 +00:00
Michael Telatynski
6121420113
Merge branch 'develop' into t3chguy/remove_bluebird 2019-11-20 15:21:23 +00:00
Travis Ralston
b185eed462 Wire up the widget permission prompt to the cross-platform setting
This doesn't have any backwards compatibility with anyone who has already clicked "Allow". We kinda want everyone to read the new prompt, so what better way to do it than effectively revoke all widget permissions?

Part of https://github.com/vector-im/riot-web/issues/11262
2019-11-18 17:56:33 -07:00
Travis Ralston
f5ec9eb8f4 Ensure widgets always have a sender associated with them
Fixes https://github.com/vector-im/riot-web/issues/11419
2019-11-18 13:16:36 -07:00
J. Ryan Stinnett
d5d2f7f936
Merge pull request #3588 from matrix-org/jryans/identity-disco-opt
Relax identity server discovery error handling
2019-11-18 17:09:08 +00:00
Michael Telatynski
d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
Michael Telatynski
54dcaf1302 Replace bluebird specific promise things. Fix uses of sync promise code.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-14 13:52:17 +00:00
Michael Telatynski
5c24547ef5 re-add and actually use promise timeout util
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-14 09:37:26 +00:00
Michael Telatynski
bc90789c71 Remove unused promise utils method
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-14 00:39:48 +00:00
Michael Telatynski
79ebb9091c
Merge branch 'develop' into t3chguy/remove_bluebird_1 2019-11-12 18:16:34 +00:00
Travis Ralston
6d0b388fa2
Merge branch 'develop' into travis/mjolnir 2019-11-12 10:00:01 -07:00
Michael Telatynski
c3df2f941d attach promise utils atop bluebird 2019-11-12 12:30:05 +00:00
Michael Telatynski
2ea239d192 Replace rest of defer usages using small shim. Add homebrew promise utils
(cherry picked from commit 6850c14739)
2019-11-12 12:07:56 +00:00
Michael Telatynski
7a512f7299 Revert "Replace rest of defer usages using small shim. Add homebrew promise utils"
This reverts commit 6850c147
2019-11-12 11:56:43 +00:00
Michael Telatynski
6850c14739 Replace rest of defer usages using small shim. Add homebrew promise utils 2019-11-12 11:45:28 +00:00
Bruno Windels
0d2f9c4215 add verification request tile + styling 2019-11-07 19:54:56 +01:00
Bruno Windels
9c4470e599 helper class to track the state of the verification
as we will have 2 tiles, and both need to track
the status of the verification request, I've put
the logic for tracking the state in this helper class
to use from both tiles.
2019-11-07 19:54:56 +01:00
J. Ryan Stinnett
03c93b5f38
Merge pull request #3595 from N-Pex/linkify-fix
Fix linkify imports
2019-11-07 12:28:57 +02:00
David Baker
0464b094a6 Fix softcrash if editing silly events
If you sent an event with a body of the empty json object, riot
would then softcrash when you pressed the up arrow because it
would try to treat a json object as a string and run split on it.
2019-11-06 11:44:32 +00:00
N-Pex
d403ed7513 Fix linkify imports
VECTOR_URL_PATTERN was 'undefined' inside Permalinks.tryTransformPermalinkToLocalHref()
2019-11-06 10:41:14 +01:00
J. Ryan Stinnett
446e21c2e1 Relax identity server discovery error handling
If discovery results in a warning for the identity server (as in can't be found
or is malformed), this allows you to continue signing in and shows the warning
above the form.

Fixes https://github.com/vector-im/riot-web/issues/11102
2019-11-01 12:27:56 +00:00
Travis Ralston
3e4a721111 Appease the linter 2019-10-31 16:27:45 -06:00
Travis Ralston
b93508728a Add personal list management to Mjolnir section 2019-10-31 14:24:51 -06:00
Travis Ralston
e6e12df82d Add structural base for handling Mjolnir lists 2019-10-31 13:20:18 -06:00
J. Ryan Stinnett
0fc5108817 Add a prompt when interacting with an identity server without terms
This adds a prompt whenever we are about to perform some action on a default identity
server (from homeserver .well-known or Riot app config) without terms. This
allows the user to abort or trust the server (storing it in account data).

Fixes https://github.com/vector-im/riot-web/issues/10557
2019-10-31 13:13:13 +00:00
Michael Telatynski
93429d7c2e Break withLegacyMatrixClient into a util module
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-17 19:13:37 +01:00
David Baker
d82a05fbae Fix integration manager not updating when set
setUserWidget was modifying the content of the old event itself,
so when `waitForUserWidget()` checked the content to see if it was
there yet, it was, but because the echo hadn't come back, the
IntegrationManager hadn't rebuilt its list.

In other news, its terrifying that we can just accidentally modify
the content of an event in the store. I'm going to make a js-sdk
PR that freezes the content and see what breaks...

Fixes https://github.com/vector-im/riot-web/issues/10977
2019-10-02 15:26:54 +01:00
Travis Ralston
6b09c3e9e6 Appease the linter 2019-09-30 21:03:16 -06:00
Travis Ralston
fc66e69c02 Rename RoomPermalinkCreator -> Permalinks due to scope
The file handles more than just a RoomPermalinkCreator, so we should name it accordingly.
2019-09-30 20:39:58 -06:00
Travis Ralston
ce0a534db1 Fix pills for CIDER too 2019-09-30 20:37:24 -06:00
Travis Ralston
2824f468d9 Update pill processing to handle better permalinks 2019-09-30 20:27:51 -06:00
Travis Ralston
2cb0b4903a Converge on permalink processing for HtmlUtils and linkify-matrix 2019-09-30 20:17:54 -06:00
Travis Ralston
ff4eee5239 Minor cleanup of getPermalinkConstructor 2019-09-30 16:09:19 -06:00
Travis Ralston
8acaa3ce95 Update generated Riot permalinks
Also adds some safety around the Riot URL to ensure it mostly looks like a URL
2019-09-30 16:05:28 -06:00
Travis Ralston
199dfa7bf9 Always check if the permalink is a spec permalink
See code for rationale
2019-09-30 16:04:49 -06:00
Travis Ralston
3e5a39d646 Add utility function for permalink parsing 2019-09-30 16:04:22 -06:00
Travis Ralston
9bb1ebb89d Support riot-level permalink parsing 2019-09-30 16:03:52 -06:00
Travis Ralston
baf78da791 Support spec-level permalink parsing 2019-09-30 16:03:24 -06:00
Travis Ralston
f183e96d66 Introduce a RiotPermalinkConstructor and fix the setting name
Originally we were planning on using the current location as the permalink prefix, but that doesn't work if the user is a desktop user.
2019-09-30 13:04:20 -06:00
Travis Ralston
f879185aef Move permalink host check into permalink constructors
Without the requirement for a room to work
2019-09-30 12:53:45 -06:00
Travis Ralston
926e1146f9 Move spec permalinks into their own class
This allows for Riot permalinks to be introduced without if-else ladders everywhere.
2019-09-30 12:51:17 -06:00
Travis Ralston
f9d5e89017 Move early parts of matrix.to bits into its own class 2019-09-30 12:37:13 -06:00
Travis Ralston
64aa6695f5 Move matrix-to.js to utils/permalinks/RoomPermalinkCreator
Just a little bit of refactoring to make the feature of custom prefixes a bit easier.
2019-09-30 12:16:46 -06:00
Bruno Windels
166364ba03 Fix: make sure scalarUrls is never undefined 2019-09-16 10:12:15 +02:00
J. Ryan Stinnett
166fb696c2 Allow connecting to an IS from address picker
This allows those who previously disconnected from an IS to either choose the
default IS or a custom one from Settings via the address picker dialog.

Part of https://github.com/vector-im/riot-web/issues/10619
2019-08-29 15:28:34 +01:00
Travis Ralston
19b7d18e7a No-op removals of widgets that don't exist
An example of this is setting your very first widget: there's nothing to remove, so you end up with "cannot call .getContent() of undefined" instead.
2019-08-21 18:43:29 -06:00
Travis Ralston
2dc28a608f Move URL abbreviation to its own util file 2019-08-21 08:46:10 -06:00
Travis Ralston
b77be2d380 Just use MSC1957 2019-08-14 09:33:02 -06:00
Travis Ralston
8b1c90a01e Convert to using im.vector.integration_manager for IM widget
This avoids us having to throw the entirety of MSC1957 into the queue, particularly when we're only using a third of the MSC.
2019-08-14 08:57:38 -06:00
Travis Ralston
03d735f4ed Support changing your integration manager in the UI
Part of https://github.com/vector-im/riot-web/issues/10161
2019-08-12 15:40:50 -06:00
Travis Ralston
74ce5c3541 Read integration managers from account data
For https://github.com/vector-im/riot-web/issues/4913 / https://github.com/vector-im/riot-web/issues/10161

Relies on the structure defined by [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957)

This is just the bit of code to parse the user's widgets (while watching for changes) and allow for it to be the default manager.
2019-08-09 17:35:59 -06:00
Travis Ralston
018b4f5d41 Use the default integration manager for config options 2019-08-09 17:08:26 -06:00
David Baker
366f7e277a Make registration work without an IS. 2019-08-07 11:15:56 +01:00
Bruno Windels
95f9e48f91 workaround diff-dom returning redundant diff actions 2019-07-31 12:25:04 +02:00
Michael Telatynski
657a11de83 Fix /rainbowme and /rainbow breaking apart utf-16 emoji
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-25 19:25:28 +01:00
Bruno Windels
3753e5261d Implement diffing html messages in the edit history 2019-07-24 11:28:56 +02:00
Travis Ralston
285b126530 Appease the linter 2019-07-11 15:14:05 -06:00
Travis Ralston
7a3aa9be2e Remove unused identityEnabled property from ValidatedServerConfig
See https://github.com/vector-im/riot-web/issues/10229
2019-07-11 15:11:09 -06:00
J. Ryan Stinnett
527e1e94a4 Update config.json docs location
Part of https://github.com/vector-im/riot-web/pull/10195
2019-06-28 13:44:18 +01:00
Bruno Windels
a1548285b5 fix copyright header and whitespace 2019-06-26 16:13:15 +02:00
Bruno Windels
19b4699bc2 WIP for showing pills in edit history 2019-06-26 11:59:56 +02:00
Bruno Windels
e54881aa24 WIP 2019-06-26 11:59:56 +02:00
Bruno Windels
0b17812b9c allow editing emotes 2019-06-14 11:01:34 +02:00
Bruno Windels
89cc45892c fix grammar fail 2019-06-13 13:28:21 +02:00
Bruno Windels
678fd37549 helper class to preserve editor state between remounting the editor 2019-06-12 18:29:21 +02:00
Bruno Windels
d13b3aa16c don't block unsent events from being edited 2019-06-12 11:20:21 +02:00
Bruno Windels
f78aeae83a also consider pending events when looking for next/prev event to edit 2019-06-12 11:19:17 +02:00
Travis Ralston
aacb942d57 Don't handle identity server failure as fatal, and use the right message
Fixes https://github.com/vector-im/riot-web/issues/10002
2019-06-10 19:28:32 -06:00
Travis Ralston
758b3394a4 Don't handle identity server liveliness errors as fatal
An invalid IS causes an invalid HS, so we switch the order of the checks. Additionally, we adjust the HS result so that it appears like a liveliness error for the IS, allowing the app to continue normally.
2019-06-07 13:14:43 -06:00
Travis Ralston
d59ad605a6 Allow the login form to be submitted, and clarify other things 2019-06-06 12:18:41 -06:00
Travis Ralston
c15ee1a829 Appease the linter 2019-06-05 12:15:37 -06:00
Travis Ralston
ace1bde238 Implement design and copy for errors 2019-06-05 11:32:02 -06:00
Travis Ralston
10f4d6b419 Appease the linter 2019-06-04 23:52:40 -06:00
Travis Ralston
e2fdeec71a Fail more softly on homeserver liveliness errors
This performs liveliness checks on the auth pages to try and show a friendlier error. Earlier checks in the app startup are expected to not block the app from loading on such failures.

See https://github.com/vector-im/riot-web/issues/9828
2019-06-04 23:42:38 -06:00
Matthew Hodgson
16ca31bf90 lint 2019-06-02 04:47:23 +01:00
Matthew Hodgson
caa950f625 add SBIX fallback twemoji font 2019-06-02 04:24:36 +01:00