Commit graph

3847 commits

Author SHA1 Message Date
David Baker
3d8422c88a Combine cross signing and verification over DM feature flags
This means we can just make the new member info panel support
cross-signing exclusively rather than having to try & make it
temporarily support both
2019-12-19 15:23:32 +00:00
Michael Telatynski
3678e64f5d Internationalise M_TOO_LARGE error from Synapse 2019-12-19 13:25:43 +00:00
Michael Telatynski
a1df87a375 Make EmojiPicker an unmanaged Context Menu as it is too complex to be managed 2019-12-19 07:23:05 +00:00
Michael Telatynski
937b32663c Migrate away from Legacy React Contexts 2019-12-17 17:26:12 +00:00
Travis Ralston
590ef79300
Merge pull request #3737 from matrix-org/travis/room-dir
Fix room directory maintaining and error state
2019-12-17 08:07:12 -07:00
Travis Ralston
b2a1a40961 Fix room directory maintaining and error state
Fixes https://github.com/vector-im/riot-web/issues/11665

We weren't clearing the error from a previous lookup, which effectively prevented the UI from working after an error happened.
2019-12-16 16:47:33 -07:00
Michael Telatynski
d28a892bb0 Stop using KeyboardEvent.keyCode as it is deprecated 2019-12-16 17:14:03 +00:00
J. Ryan Stinnett
2df72bfde2 Update room / user decoration for cross-signing 2019-12-13 17:57:26 +00:00
J. Ryan Stinnett
3ac0deebab Use static modals for verification
Verification with cross-signing may requiring asking for your secret storage
passphrase, which is displayed in it's own modal on top of flows. For now while
verification takes in modals also, mark the verification ones as static so they
don't lose state when secret storage appears on top mid-flow.
2019-12-13 13:55:28 +00: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
Travis Ralston
225695ab5c Fix exports for rate limited functions and MatrixClientPeg
MatrixClientPeg in particular doesn't work very well with this.
2019-12-12 19:33:08 -07:00
Travis Ralston
7230d51cca
Merge pull request #3703 from matrix-org/travis/right-panel-v2
Refactor RightPanel to match expected behaviour
2019-12-11 10:50:45 -07:00
Michael Telatynski
cb50f5ff5f
Merge pull request #3715 from matrix-org/t3chguy/fix_roomlist_context_menu_regression
Fix remaining context menu regressions
2019-12-11 09:36:45 +00:00
Michael Telatynski
c1b1f98201
Merge pull request #3712 from matrix-org/t3chguy/react16_refs
Migrate away from React Legacy string refs
2019-12-10 17:43:37 +00:00
Travis Ralston
c8c344804e Remove special case RHS resizer logic
It doesn't seem to affect anything by being removed.
2019-12-10 10:01:45 -07:00
Michael Telatynski
52c20db963 Fix chevron offset for toRightOf
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-09 23:58:09 +00:00
Michael Telatynski
2691d1a611 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix_mab_regression 2019-12-09 14:13:11 +00:00
Michael Telatynski
69eeabd99e Fix accessibility to the reaction picker (not of it though)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-09 14:12:30 +00:00
Michael Telatynski
cd73162957
Merge branch 'develop' into t3chguy/react16_refs 2019-12-09 13:47:06 +00:00
Michael Telatynski
702f061341 ref is used earlier so assign it earlier
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 12:45:59 +00:00
Michael Telatynski
ff71f4ec8d Migrate RoomSubList to ES6 Class due to new/vs old React API incompat
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 12:43:06 +00:00
Michael Telatynski
d22985f12e Migrate string refs over to createRef
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 12:16:17 +00:00
Michael Telatynski
4c55f3c5b5 Remove unused refs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 12:12:06 +00:00
Michael Telatynski
4be8b87869 Add what-input to allow different scoping to focus-visible for MessageActionBar keyboard a11y
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-07 13:07:52 +00:00
Travis Ralston
94ae06db4d Fix cold open of the RightPanel directly to MemberInfo
This requires us to track some of the phase's state in the RightPanelStore, which is not great - trying to get it through the app is a bit difficult.
2019-12-06 15:05:02 -07:00
Travis Ralston
78ce801c25 Fix incorrect function call into RightPanelStore
We dispatch to open, not call directly into the store.
2019-12-06 14:52:31 -07:00
Travis Ralston
814c408e23 Disable the right panel when the app asks us to
Currently this is only used in the GroupView and for forwarding messages.
2019-12-06 14:18:18 -07:00
Travis Ralston
a24bbdffd0 Appease the linter
Mid-PR cleanup.
2019-12-05 23:58:19 -07:00
Travis Ralston
4873b526df Ensure the right panel stays the same between room changes if possible
Fixes https://github.com/vector-im/riot-web/issues/10149
2019-12-05 23:48:05 -07:00
Travis Ralston
bbdff701b4 Actually render the right panel in the new system 2019-12-05 23:40:25 -07:00
Travis Ralston
42898ec414 Rid ourselves of RightPanel.Phases completely 2019-12-05 23:35:12 -07:00
Travis Ralston
d8d8e59002 Don't show/hide the right panel depending on window size
Fixes https://github.com/vector-im/riot-web/issues/8772
2019-12-05 23:30:13 -07:00
Travis Ralston
8b492fdaa5 Remove dead code from GroupView
This was for a caret that is no longer in the app. Instead, the header buttons act as a toggle.
2019-12-05 23:29:43 -07:00
Travis Ralston
6e882251bd Break the right panel completely
This lays a foundation for redirecting all the traffic through the new store, but for now the core parts of the app need to stop caring if the right panel is open.
2019-12-05 17:47:18 -07:00
Travis Ralston
5253f29928 Build out a store for the right panel state machine
This should make it easier to funnel the expected behaviour through a central block of code.
2019-12-05 15:31:01 -07:00
David Baker
fc4926600a Fix propTypes declaration
With this version of babel (via babel-eslint), eslint now fails
with a somewhat confusing, "Unexpected reserved type number"
(from the flow plugin...) if you get this wrong.
2019-12-05 10:42:20 +00:00
Michael Telatynski
d3de792f79 fix bits which missed the review cutting block
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-03 10:53:32 +00:00
Michael Telatynski
901e402a5c apply renames suggested in PR review
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-02 23:23:11 +00:00
Michael Telatynski
757f811126 s/ContextualMenu/ContextMenu/
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-02 23:21:59 +00:00
Michael Telatynski
a062fe0096 Merge branches 'develop' and 't3chguy/context_menus' of github.com:matrix-org/matrix-react-sdk into t3chguy/context_menus 2019-12-02 23:20:47 +00:00
Michael Telatynski
3ad4b0fb64 Do not trap Key ContextMenu into composer for keyboard a11y
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-02 10:01:08 +00:00
Travis Ralston
36f9fab474 Ensure read receipts end up with a valid reference to checkUnmounting
Fixes https://github.com/vector-im/riot-web/issues/11496
Fixes https://github.com/vector-im/riot-web/issues/11385
Fixes https://github.com/vector-im/riot-web/issues/10007
Fixes https://github.com/vector-im/riot-web/issues/9769

React does (kinda) bind `this._isUnmounting` for us in the context of the EventTile, but the EventTile then passes the function straight through to the ReadReceiptMarker component, which then binds it in the context of EventTile. This results in `this._mounted` being falsey all the time, preventing the ReadReceiptMarker from hitting the code where it updates rrInfo in its unmount. 

The velocity stuff is smart enough to realize that it has a read receipt and shuffles everything over by one, but when it goes to check the starting height (which will be null/undefined because the RRMarker didn't update it) it assumes it has never seen the receipt before and appends it again - this is what causes some holes/stacking.

By forcefully binding the `this._isUnmounting` function we ensure that the `this._mounted` variable is correctly referenced in the context of the MessagePanel, allowing the RRMarker to update its position, and therefore allowing the velocity behaviour to be consistent.
2019-11-28 19:45:37 -07:00
Michael Telatynski
bfb5706b4a don't consume all keys
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 20:51:21 +00:00
Michael Telatynski
3847996b5b transition Tooltips over to deprecated code
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 20:26:09 +00:00
Michael Telatynski
2daf3a96bf delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 18:42:38 +00:00
Michael Telatynski
6c5b777a77 Consolidate all except tooltips
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 18:16:59 +00:00
Michael Telatynski
6d69ec17d9 Merge branches 'develop' and 't3chguy/context_menus' of github.com:matrix-org/matrix-react-sdk into t3chguy/context_menus
 Conflicts:
	src/components/views/context_menus/RoomTileContextMenu.js
2019-11-28 16:25:59 +00:00
Travis Ralston
fbba55ab05
Merge pull request #3670 from matrix-org/travis/toggle-communities
Make the communities button behave more like a toggle
2019-11-27 07:52:05 -07:00
David Baker
dd7b08ec25
Merge pull request #3674 from matrix-org/dbkr/read_marker_css_transition
Change read markers to use CSS transitions
2019-11-27 09:18:53 +00:00
David Baker
a2e3f64963 Change read markers to use CSS transitions
Removes one of the two places we use Velocity, so we're one step
closer to getting rid of it for good.

Should therefore fix the fact that Velocity is leaking data entries
and therefore <hr> elements.

Hopefully also makes the logic in getEventTiles incrementally simpler,
if still somwewhat byzantine.
2019-11-26 19:06:02 +00:00