Commit graph

10614 commits

Author SHA1 Message Date
J. Ryan Stinnett
1fcafdab30 Allow New Recovery Dialog to be cancelled
Fixes part of https://github.com/vector-im/riot-web/issues/8048.
2019-01-09 04:08:12 -06:00
J. Ryan Stinnett
02a83a7c2b Use per-message string substitutions in key backup panel
Including unused substitutions triggers console logs, so change the key backup
panel to only substitute what's actually used in each message.

Fixes https://github.com/vector-im/riot-web/issues/8047.
2019-01-08 09:31:33 -06:00
Bruno Windels
9e67dbf008 change icon 2019-01-08 14:35:26 +01:00
Bruno Windels
52c5610660 update copy 2019-01-08 14:35:06 +01:00
Erik Johnston
07c2010cce Use state rather than forceUpdate 2019-01-08 11:14:31 +00:00
Bruno Windels
56726ba8e5 fix lint 2019-01-08 12:10:42 +01:00
Bruno Windels
7227049c2a add right panel toggle button to room header when in grid 2019-01-08 12:05:39 +01:00
Bruno Windels
c9272c48e0 undo unneeded changes 2019-01-08 12:05:06 +01:00
Travis Ralston
66cd8475b5 Don't reset cached room list values when they are falsey
`unread` and `unread-muted` store booleans in the cache, and can easily be `false`. Without this patch, both of those cached types would be cleared from the object where a later call to `getRoomState` would try and re-populate them. `getRoomState` is supposed to use the cache where possible to avoid making the more expensive calls required to calculate those booleans.

On my account in a test environment, this brings the `generateRoomLists` execution time down from ~250ms to just ~30ms. 

This still does not solve the whole issue, but should solve the more common case of performance woes for people.
2019-01-07 17:46:32 -07:00
J. Ryan Stinnett
bf87547f88 Remove unexpected underline from pills
Fixes vector-im/riot-web#8031.
2019-01-07 09:56:40 -06:00
Bruno Windels
c6952ba5b6 fix some more lint warnings, as limit is 16 now 2019-01-07 16:56:35 +01:00
Bruno Windels
aedc220b62 fix (some) lint warnings 2019-01-07 16:33:23 +01:00
Bruno Windels
c2f6fc381c add feature flag for grid view 2019-01-07 16:13:35 +01:00
Bruno Windels
8fa7ec0fac fix lint 2019-01-07 16:03:24 +01:00
Bruno Windels
81c48f07c7 clear width of right panel container when collapsed in grid view 2019-01-07 15:20:39 +01:00
Bruno Windels
b63bd5ea54 allow right panel to be hidden (although container is still visible) 2019-01-07 14:59:00 +01:00
Erik Johnston
4c204e88be Add feature flag for counters 2019-01-07 13:52:13 +00:00
Erik Johnston
712241d710 Add simple state counters to room heading 2019-01-07 13:52:13 +00:00
Bruno Windels
290dc9d8fb Merge branch 'experimental' into bwindels/roomgridview-experimental 2019-01-07 14:17:57 +01:00
David Baker
8fbb0607ff Re-write as full class component
So we can re-use the functions we pass to props
2019-01-07 12:09:19 +00:00
David Baker
522dddbd13 Lint 2019-01-07 10:13:02 +00:00
David Baker
47f303dc9d Make logout warning nag about key backups
https://github.com/vector-im/riot-web/issues/7805
2019-01-07 10:08:57 +00:00
J. Ryan Stinnett
5419b4279b Simplify create key backup maze
The download / copy actions to store the new recovery key now send you forward
(the most likely case) with a Back button in case you wanted to also do the
other storing type.
2019-01-04 17:14:10 -06:00
J. Ryan Stinnett
e6b6b463ce
Merge pull request #2401 from christopherjmedlin/name-command
Add slash command for changing room name
2019-01-04 14:22:40 -06:00
Christopher Medlin
e102000e58 Change to 'roomname' instead of 'name'. 2019-01-04 11:29:51 -08:00
Travis Ralston
5a2113e1a9 Fix a comparison bug in ordering the MemberList 2019-01-03 21:56:19 -07:00
Travis Ralston
77dfba8a22 Add unit tests for MemberList
Particularly the ordering of the tiles.
2019-01-03 21:55:52 -07:00
Travis Ralston
cc8fa7911b Merge remote-tracking branch 'origin/experimental' into travis/fix-memberlist-order 2019-01-03 20:01:28 -07:00
J. Ryan Stinnett
920911c0a1 Room list fixes for custom status 2019-01-03 18:49:15 -06:00
Christopher Medlin
c89b6e1e27 Add slash command for changing room name
Signed-off-by: Christopher Medlin <christopherjmedlin@protonmail.com>
2019-01-03 15:42:17 -08:00
Travis Ralston
502288d4cc Merge branch 'travis/room-list-hover' into travis/re-apply-exp-changes 2019-01-03 16:28:05 -07:00
Travis Ralston
1481dcf9d7 Don't re-sort the room list if the user is hovering over it
Fixes vector-im/riot-web#5624
2019-01-03 16:27:59 -07:00
Travis Ralston
643dd5ca47 Add a comment explaining the reason for setting the LOGGED_IN view 2019-01-03 16:26:09 -07:00
Travis Ralston
d8f6a7c684 Add missing stopPropagation 2019-01-03 16:26:01 -07:00
Travis Ralston
2e5b3ec0f1 Use the safer way to set the logged in view state 2019-01-03 16:25:55 -07:00
Travis Ralston
8f5e825cd5 Fix browser navigation not working between /home, /login, /register, etc
All of the anchors were pointed at `#` which, when clicked, would trigger a hash change in the browser. This change races the change made by the screen handling where the screen handling ends up losing. Because the hash is then tracked as empty rather than `#/login` (for example), the state machine considers future changes as no-ops and doesn't do anything with them.

By using `preventDefault` and `stopPropagation` on the anchor click events, we prevent the browser from automatically going to an empty hash, which then means the screen handling isn't racing the browser, and the hash change state machine doesn't no-op.

After applying that fix, going between pages worked great unless you were going from /login to /home. This is because the MatrixChat state machine was now out of sync (a `view` of `LOGIN` but a `page` of `HomePage` - an invalid state). All we have to do here is ensure the right view is used when navigating to the homepage. 

Fixes https://github.com/vector-im/riot-web/issues/4061

Note: the concerns in 4061 about logging out upon entering the view appear to have been solved. Navigating to the login page doesn't obliterate your session, at least in my testing.
2019-01-03 16:25:51 -07:00
Travis Ralston
01eacfa26a Regenerate en_EN.json 2019-01-03 16:02:36 -07:00
Travis Ralston
8017f0a4a1 Merge remote-tracking branch 'origin/experimental' into travis/develop-for-real 2019-01-03 16:00:23 -07:00
Travis Ralston
6447a60e1f Revert "Merge pull request #2336 from matrix-org/travis/notif-button"
This reverts commit 96300b45b7.
2019-01-03 15:44:07 -07:00
David Baker
f928be6f59 Revert "Merge pull request #2395 from matrix-org/dbkr/merge_develop_experimental"
This reverts commit ad47144355.
2019-01-03 15:37:03 -07:00
Travis Ralston
d111fe27bb Revert "Merge pull request #2396 from matrix-org/travis/room-list-hover"
This reverts commit 5098b28672.
2019-01-03 15:36:56 -07:00
Travis Ralston
0978687c65 Revert "Merge pull request #2383 from matrix-org/travis/back-button"
This reverts commit 78592286bd.
2019-01-03 15:36:51 -07:00
Travis Ralston
78592286bd
Merge pull request #2383 from matrix-org/travis/back-button
Fix browser navigation not working between /home, /login, /register, etc
2019-01-03 14:37:04 -07:00
Travis Ralston
e5192811a1 Add a comment explaining the reason for setting the LOGGED_IN view 2019-01-03 14:23:27 -07:00
Travis Ralston
4c264b87fa Add missing stopPropagation 2019-01-03 14:23:26 -07:00
Travis Ralston
7904b91b58 Use the safer way to set the logged in view state 2019-01-03 14:23:26 -07:00
Travis Ralston
223a49d81f Don't re-sort the room list if the user is hovering over it
Fixes vector-im/riot-web#5624
2019-01-03 13:57:20 -07:00
Travis Ralston
95844ebf9d Comment out debugging statements
They are useful to have around, but not to have enabled all the time.
2019-01-03 12:15:27 -07:00
Travis Ralston
63a7b86eac Flatten and simplify the memberlist sorting algorithm
The previous algorithm had a bug where it was getting stuck on the power level comparison, leaving the memberlist incorrectly ordered. The new algorithm uses less branching to try and walk through the different cases instead. Additionally, the steps used to determine the order have changed slightly to better represent an active member list.

This commit also includes changes to try and re-sort the member list more often during presence changes. Events are not always emitted, however. This may be a js-sdk bug but appears to happen prior to these changes as well.

Fixes https://github.com/vector-im/riot-web/issues/6953
2019-01-03 12:15:19 -07:00
Travis Ralston
35c9dce241 Fix browser navigation not working between /home, /login, /register, etc
All of the anchors were pointed at `#` which, when clicked, would trigger a hash change in the browser. This change races the change made by the screen handling where the screen handling ends up losing. Because the hash is then tracked as empty rather than `#/login` (for example), the state machine considers future changes as no-ops and doesn't do anything with them.

By using `preventDefault` and `stopPropagation` on the anchor click events, we prevent the browser from automatically going to an empty hash, which then means the screen handling isn't racing the browser, and the hash change state machine doesn't no-op.

After applying that fix, going between pages worked great unless you were going from /login to /home. This is because the MatrixChat state machine was now out of sync (a `view` of `LOGIN` but a `page` of `HomePage` - an invalid state). All we have to do here is ensure the right view is used when navigating to the homepage. 

Fixes https://github.com/vector-im/riot-web/issues/4061

Note: the concerns in 4061 about logging out upon entering the view appear to have been solved. Navigating to the login page doesn't obliterate your session, at least in my testing.
2019-01-03 12:13:41 -07:00
David Baker
982e037822 Fix merge 2019-01-03 18:05:38 +00:00
David Baker
7d161de35b Partial merge of develop to experimental
Does not include #2336 as the file has been moved out from underneath it:
will do this separately
2019-01-03 15:02:58 +00:00
David Baker
c11d0bdf0c
Merge pull request #2394 from jryans/key-backup-unverified-creator
Show in-room reminder when key backup creating device unverified
2019-01-03 10:27:35 +00:00
J. Ryan Stinnett
758e867208
Merge pull request #2389 from christopherjmedlin/consistent-flair-ordering
Consistent flair ordering.
2019-01-02 16:35:50 -06:00
J. Ryan Stinnett
402f58225f Show in-room reminder when key backup creating device unverified
If the current device hasn't verified the device that created the account's
current key backup version, then the current device is won't use the key backup.
This change adjusts an existing in-room reminder to do the right thing for this
case by allowing the user to verify the device that created the key backup.

Fixes vector-im/riot-web#7902.
2019-01-02 15:36:40 -06:00
Travis Ralston
1b8a8e9552
Merge pull request #2385 from matrix-org/travis/7838-logging
Add some logging for riot-web#7838
2018-12-28 19:16:07 -07:00
Christopher Medlin
384320e29f Consistently order flairs based on room configuration. 2018-12-24 14:46:36 -08:00
Travis Ralston
f5ff580e35 Add some logging for riot-web#7838
See https://github.com/vector-im/riot-web/issues/7838
2018-12-21 14:51:05 -07:00
Richard van der Hoff
9c781417ff Merge remote-tracking branch 'origin/develop' into rav/well_known_in_login_response 2018-12-21 16:52:02 +00:00
Richard van der Hoff
991104d156 Handle well-known data in the login response
... as per [MSC1730](https://github.com/matrix-org/matrix-doc/pull/1730).
2018-12-21 09:51:03 +00:00
J. Ryan Stinnett
097d6fdede Update room filter focus handling to avoid infinite loop
The classes on the search box input were changed without updating the focusing
loop in the room filter which used one of these classes as a boundary condition.
This led to a case that could loop forever.

Regressed by #2267.
Fixes vector-im/riot-web#7926.
2018-12-20 23:09:28 +00:00
Travis Ralston
2e1e536d5c
Merge pull request #2347 from matrix-org/travis/custom-status
Custom status messages
2018-12-19 11:11:15 -07:00
J. Ryan Stinnett
fd94dc686f Handle errors when fetching commits for changelog
It's possible to get errors when fetching commits (for example, if the rate
limit is exceeded), so this will handle the error case and display it instead of
an infinite spinner.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 18:10:21 +00:00
J. Ryan Stinnett
37256d2976 Use primary styling on download / clipboard key actions
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
J. Ryan Stinnett
24f0123ded Convert pass phrase entry to flexbox
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
J. Ryan Stinnett
a597ad10b0 Add a few more zxcvbn strings
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
J. Ryan Stinnett
9c4ff4048a Convert show recovery key to flexbox
This allows the buttons to fit on a single line and flows a bit better at low
widths.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
Travis Ralston
a1347add95 Merge branch 'develop' into travis/custom-status 2018-12-19 10:33:34 -07:00
Travis Ralston
45f05092ed Add a comment to describe why we're not using the property we should be 2018-12-19 10:21:43 -07:00
Bruno Windels
b3a12867a6 remove extra blank lines 2018-12-19 12:56:08 +01:00
Bruno Windels
b826b0d998 Add redesign feedback dialog + button in tag panel 2018-12-19 12:27:05 +01:00
David Baker
1ca91370f3
Merge pull request #2372 from matrix-org/dbkr/electron_sandbox
React-sdk changes to support sandboxed electron
2018-12-19 09:48:05 +00:00
Travis Ralston
04c9fff6ce Add a feature flag for custom status messages 2018-12-18 15:11:08 -07:00
Travis Ralston
d20a934642 Appease the linter 2018-12-18 11:04:16 -07:00
David Baker
3a8b9ab850 unused import 2018-12-18 17:57:23 +00:00
Travis Ralston
ef60a34180 Clean up and follow code style 2018-12-18 10:53:37 -07:00
David Baker
37b3644fd9 React-sdk changes to support sandboxed electron 2018-12-18 17:40:30 +00:00
Bruno Windels
1d43712a8f Merge branch 'experimental' into nadonomy/icons 2018-12-18 18:22:24 +01:00
Nad Chishtie
074c96cd3e First pass of normalising icons. 2018-12-18 16:48:20 +00:00
Bruno Windels
8df139bfab
Merge pull request #2369 from matrix-org/bwindels/rhsdefaultsize
Redesign: give right panel default width
2018-12-18 16:20:51 +00:00
Bruno Windels
23f24a987c
Merge pull request #2367 from matrix-org/bwindels/selectqueryonclick
Redesign: select search query on focus
2018-12-18 16:19:24 +00:00
Bruno Windels
5e2ee883aa
Merge pull request #2366 from matrix-org/bwindels/fixrhscollapse
Redesign: fix remaining right panel collapse issues.
2018-12-18 16:19:02 +00:00
Bruno Windels
fd5ad56886 give right panel default width of 350px 2018-12-18 17:12:32 +01:00
Bruno Windels
dd6dd7a4fc select search query on focus 2018-12-18 16:37:37 +01:00
Bruno Windels
4b788fcb7e fix lint 2018-12-18 16:29:31 +01:00
Bruno Windels
c0ab74d5f1 reemit view_right_panel_phase when showing rhs, so right tab is active 2018-12-18 16:27:17 +01:00
Travis Ralston
66f5d0612c
Merge pull request #2363 from matrix-org/travis/fix-group-view
Make sure to grab the InlineSpinner object
2018-12-18 07:57:46 -07:00
Bruno Windels
92c598dbcf remove group header expand right panel button 2018-12-18 15:38:15 +01:00
Bruno Windels
dafc54c434 don't highlight room header buttons when right panel is collapsed 2018-12-18 15:36:54 +01:00
Bruno Windels
a10f0a3267 don't open right panel when switching room again
a view_right_panel_phase is dispatched by RoomHeaderButtons
on view_room, which was triggering this to show the panel again.

Check the fromHeader flag just like when hiding the panel so
only room header buttons can hide or show the right panel
2018-12-18 15:33:45 +01:00
Bruno Windels
2cb817ae26 remove dead code (collapse button was removed) 2018-12-18 15:33:28 +01:00
Bruno Windels
acba36c975
Merge pull request #2364 from matrix-org/bwindels/fixresizepersistenceandscrollindicator-again
Redesign: left panel fixes
2018-12-18 14:23:38 +00:00
Bruno Windels
31c13adaba cleanup: do initialization in componentDidMount instead of render 2018-12-18 15:10:57 +01:00
Bruno Windels
2cda6d8f35 fix empty comment line 2018-12-18 15:06:56 +01:00
Bruno Windels
279521cab4 add id to props for completeness 2018-12-18 14:31:38 +01:00
Bruno Windels
e67d9c6d4f forward checkOverflow to AutoHideScrollbar, fix over/underflow detection
the overflow/underflow events are not always reliable in nooverlay
browsers (FF), so forward the checkOverflow call we need anyway
for the scroll indicator gradients to see if we need to do the
margin trick for the on-hover scrollbar we use in nooverlay browsers.

this fixes on hover jumping in a subroomlist
2018-12-18 14:29:42 +01:00
Bruno Windels
3ddc8baed1 fix resizing sometimes not working (and selecting text)
Last friday a child <div> was added inside the ResizeHandle component,
which made the parentElement/classList checks fail on the event.target
here. This would only fail (and select all the text) when dragging exactly on
the grey line (the div), not the transparent margin around it.

use closest to make sure we have the root element of the handle.
2018-12-18 14:27:10 +01:00
Bruno Windels
cdcb3c1a55 check overflow and restore sizes in more places inside RoomList:
check overflow on mount
restore size on query change (in case a sublist appeared)
check overflow when updating rooms

avoid duplicating for restoring size and checking overflow
2018-12-18 14:26:33 +01:00
J. Ryan Stinnett
acc2e98355 Add New Recovery Method dialog
Adds a New Recovery Method dialog which is shown when key backup fails because
of a version mismatch / version not found error.

The set up button in the dialog currently only marks a device as verified (via a
verification prompt) instead of the eventual restore and cross-sign flow, since
those pieces don't exist yet.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-18 10:20:12 +00:00
J. Ryan Stinnett
2b14f2af5c Clean up when new key backup version fails to backup
If creating a new key backup version succeeds but backing up to it fails, delete
the version to avoid surprises. In addition, this converts the creation of a new
key backup to async / await style.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-18 10:20:12 +00:00