Commit graph

2500 commits

Author SHA1 Message Date
Travis Ralston
7383133846 Support parsing matrix.to links in the timeline with ?via= in them
This ends up being translated to ?server_name= in the matrix-js-sdk, although that has a bug at the time of writing. It converts `server_name: ['a', 'b']` to `?server_name=a,b` instead of `?server_name=a&server_name=b`

For reference: the `viaServers` option is routed through the 'join_room' action to RoomViewStore#_joinRoom which is passed directly to the js-sdk http-api#joinRoom function.

Next steps:
* Fix the js-sdk parsing
* Make the SDK generate matrix.to links with ?via=
2018-10-19 13:31:18 -06:00
Bruno Windels
73d9a71b29
Merge pull request #2226 from matrix-org/bwindels/resizeroomsublists
Redesign: 1st go at resizing room sublists
2018-10-19 13:33:28 +00:00
Bruno Windels
f2ee8307dc
Merge pull request #2224 from matrix-org/bwindels/removedndmore
Redesign: remove room list truncation and DND
2018-10-19 13:30:18 +00:00
Bruno Windels
7ece134b4e dont cause rerender with anon func 2018-10-19 15:22:28 +02:00
Bruno Windels
e4276d9378 don't show notification count in expanded room section header 2018-10-19 14:50:35 +02:00
Bruno Windels
acd383c6a9 move closer to usage 2018-10-19 14:44:37 +02:00
Bruno Windels
d48f19bc19 remove alwaysShowHeader, as now onAddRoom prop determines this 2018-10-19 14:43:02 +02:00
Bruno Windels
5091aa3b43 get rid of emptyContent, also cleanup sublist render method
also assume empty list in css by default and add nonEmpty class
2018-10-19 14:41:51 +02:00
Bruno Windels
57a9d3ca98 remove obsolete resizer 2018-10-19 14:37:23 +02:00
Bruno Windels
14cdd723f7 only show chevron for non-empty lists 2018-10-19 14:33:51 +02:00
Bruno Windels
0386a1e048 get rid of obsolete showEmpty prop 2018-10-19 14:32:49 +02:00
Bruno Windels
ae8723451a remove onShowMoreRooms, as room tiles & scrollbar rendered at same level 2018-10-19 14:27:36 +02:00
Bruno Windels
07799f609f fix lint 2018-10-19 12:34:55 +02:00
Bruno Windels
798be2d514 remove room count leftovers 2018-10-19 12:08:05 +02:00
Bruno Windels
6af61ebb09 add plus button for rooms and people 2018-10-19 12:07:36 +02:00
Bruno Windels
197dd57461 also set max-height so you can't make a sublist bigger than the content 2018-10-18 16:58:23 +02:00
Bruno Windels
44b92eb071 set sub list height with flex-basis to make it ... well, grow less 2018-10-18 16:58:17 +02:00
Bruno Windels
d264687796 don't scroll sub list header 2018-10-18 16:25:22 +02:00
Bruno Windels
0b615b21e2 fix lint 2018-10-18 15:53:27 +02:00
Travis Ralston
af8dfda9a7 Add a bit of text to explain the purpose of the RoomPreviewSpinner
Fixes https://github.com/vector-im/riot-web/issues/5869
2018-10-17 13:53:12 -06:00
Bruno Windels
3552326003 more lint fixes 2018-10-17 16:20:38 +02:00
Bruno Windels
6906d5a5f9 remove DND for room tiles 2018-10-17 16:02:35 +02:00
Bruno Windels
874ef50273 don't truncate room lists 2018-10-17 14:45:36 +02:00
Bruno Windels
c926aa2bfe remove .collapsed class on mx_LeftPanel as the container already has it 2018-10-17 14:01:45 +02:00
Bruno Windels
110e4526b8 store/load lhs & rhs sizes to/from localStorage 2018-10-16 18:43:40 +02:00
Bruno Windels
1d2e1d4b6b make it work for now, probably want to rename this back later on 2018-10-16 17:45:53 +02:00
Travis Ralston
06764c2bab
Merge pull request #2220 from matrix-org/travis/peek-invite-nag
Don't show the invite nag bar when peeking
2018-10-16 09:30:09 -06:00
Bruno Windels
30003d8f91 turn resizer into class to make programmatic interaction/cleanup easier 2018-10-16 15:16:10 +02:00
Bruno Windels
c095e30ae4 provide collapsed callback to also collapse on react side of things 2018-10-16 14:56:49 +02:00
Bruno Windels
c56975d93d dont base collapse toggle size on min-width, as it's not available in collapsed state 2018-10-16 12:26:08 +02:00
Bruno Windels
01471abdc5 Merge branch 'bwindels/redesign' into bwindels/resizehandles 2018-10-16 11:57:59 +02:00
Bruno Windels
6878ce3c6a Merge branch 'develop' into bwindels/redesign 2018-10-16 11:57:44 +02:00
Travis Ralston
6323d78b0c Move tinter init to MatrixChat
This is a much better place for it to live
2018-10-15 14:41:00 -06:00
Travis Ralston
2d62fda862 Don't show the invite nag bar when peeking 2018-10-15 14:35:36 -06:00
Travis Ralston
94aac62f25 Move the login box from the left sidebar to where the composer is
Fixes https://github.com/vector-im/riot-web/issues/4227

This includes removing the collapse button that isn't needed anymore.
2018-10-15 14:26:24 -06:00
Bruno Windels
4f006b033e collapse left panel when 50px past min-width 2018-10-11 15:40:59 +02:00
Bruno Windels
bba04a6820
Merge pull request #2205 from matrix-org/dbkr/lazy_load_check_before_sync
Handle InvalidStoreError from js-sdk
2018-10-10 18:35:36 +02:00
David Baker
655627209a unused function 2018-10-10 17:25:32 +01:00
David Baker
0abcb5c78d Handle InvalidStoreError from js-sdk
js-sdk now emits sync state ERROR with an InvalidStoreError if the
store needs to be cleared before it can be used.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/759
2018-10-10 17:07:17 +01:00
Bruno Windels
dfb4c594a8
Merge pull request #2204 from matrix-org/bwindels/rrfallbackavatars
Fall back to default avatar in RR when member isn't loaded yet
2018-10-10 16:58:59 +02:00
Bruno Windels
5128386160 allow read receipts without an existing member in MessagePanel 2018-10-10 16:15:20 +02:00
Bruno Windels
0767c278e7 put userId next to member in read receipt, fall back when member missing 2018-10-10 16:14:09 +02:00
David Baker
97ed4ed0bb
Merge pull request #2202 from matrix-org/dbkr/update_slate
Update to new version of slate
2018-10-10 11:10:20 +01:00
David Baker
6f9d673b79 Focus composer after closing room settings
For some reason the slate update means the composer doesn't
have the focus after closing the room settings, and the end to end
tests pick this up!
2018-10-09 17:35:40 +01:00
David Baker
41bc42e7d7
Merge pull request #2194 from pvagner/more_accessible_buttons
More accessible buttons - take 2
2018-10-09 11:04:50 +01:00
David Baker
a81589ffb5 Silence bluebird warnings 2018-10-05 12:15:03 +01:00
Travis Ralston
93d32f97fc
Merge pull request #2183 from matrix-org/travis/settings-no-sniping
Track how far the user travels before dismissing their user settings
2018-10-04 13:29:00 -06:00
Peter Vágner
2b394c1869
Address review comments and fix lint errors 2018-10-02 20:32:54 +02:00
Peter Vágner
ded35e43a0
A11y: repurpose more divs into AccessibleButtons.
With this more of the
controls that look like buttons can be operated via the keyboard and
navigated to by screen reader users. This includes editor buttons such
as File upload, Audio / Video call, Right pannel hide button, Jump to
the bottom timeline button, and some more buttons found in the user
settings.
Also I have added alt texts to some images that in turn label buttons
which these happen to be packed in and removed some untranslated alt
texts from decorative non-actionable images that might add more
verbosity when talking about screen reader user experience.
2018-10-02 13:55:24 +02:00
Matthew Hodgson
bccfb5dafc better englishing 2018-10-01 13:27:32 +01:00
David Baker
3751074244
Merge pull request #2180 from matrix-org/travis/3pid-required
Communicate early that a 3pid is required during registration if needed
2018-10-01 11:55:53 +01:00
Travis Ralston
a1cb6d64cf
Merge pull request #2182 from matrix-org/travis/warn-disconnect-early
Show the 'homeserver unavailable' warning when the first sync fails
2018-09-28 07:55:07 -06:00
Bruno Windels
5765d59132
Merge pull request #2083 from matrix-org/t3chguy/is_url
allow passing initial is_url like hs_url in query params
2018-09-28 13:20:50 +01:00
Travis Ralston
d74efd09ab Track how far the user travels before dismissing their user settings
Fixes https://github.com/vector-im/riot-web/issues/7158

Because the onClick was on a fullpage div, the browser was firing it regardless of how far the mouse moved. The onClick event itself doesn't give us any sort of travel distance, or a start point we can use to determine if they clicked a scrollbar or something. This means we have to rely on good ol' fashioned mouse down and up events to see if the user moved their mouse during their click. 

If the user's click starts in a valid container, we record the coordinates. This is so we can easily identify when the user clicks inside something like the settings container itself. When the user releases their mouse, we determine how far they moved their mouse - if the distance is within some threshold (~5 pixels in this case) then we can count it as a click. Because we've already filtered on the component they started their click in, we can safely rely on the presence of coordinates as a flag that they are in the right container, combined with the fact that they can't stray too far before their click not counting anyways.
2018-09-27 16:13:51 -06:00
Travis Ralston
16b2fb7fe6 Show the 'homeserver unavailable' warning when the first sync fails
Fixes https://github.com/vector-im/riot-web/issues/7380
2018-09-27 14:31:55 -06:00
Travis Ralston
de132a8f8e Communicate early that a 3pid is required during registration if needed
Fixes https://github.com/vector-im/riot-web/issues/7297
2018-09-27 11:53:45 -06:00
Bruno Windels
928b6d47c8 add resize handles between 3 main app columns 2018-09-24 16:07:42 +01:00
Bruno Windels
91ec96c8d3 Merge branch 'develop' into bwindels/redesign 2018-09-21 12:44:44 +02:00
Bruno Windels
e8b4770940 fix lint 2018-09-17 20:01:55 +02:00
Bruno Windels
841aa4b800 check LL with client as this takes server support into account 2018-09-17 19:28:06 +02:00
Bruno Windels
0ce7bb8995 pass membersLoaded state to TimelinePanel to force it to re-render
... once the members are loaded.
2018-09-17 19:27:25 +02:00
Bruno Windels
473f2dd72b pass room to _loadMembersIfJoined, it's called when newState not applied
_loadMembersIfJoined is called from
_onRoomLoaded < _onRoomViewStoreUpdate, before incoming state
from the store is applied to this.state, so looking up the room
with this.state.roomId doesn't always work, which would cause
the members not to be loaded. Pass in the room instead.
2018-09-17 19:24:34 +02:00
Bruno Windels
2ed414494f use Room.myMembership event instead of RoomMember.membership for me
This is more reliable with LL enabled as the syncing user is
only known when it was active in the current timeline
or when the members have been loaded
2018-09-17 19:14:52 +02:00
Bruno Windels
86cbe34181 rerender after members are loaded so pills and RR get rerendered 2018-09-14 18:35:16 +02:00
Bruno Windels
f194f323f4 postpone loading the members until the user joined the room
when peeking, the members weren't being loaded at all because
the room wasn't available yet,
and the need for loading the members was never re-evaluated after that.

This only loads the members once the user has joined the room,
which also helps to avoid load all the members before an invite
is accepted.
2018-09-13 18:43:24 +02:00
Bruno Windels
deaad4bcb1 even better as the method called is on room 2018-09-10 18:11:08 +02:00
Bruno Windels
694ee5a2c8 fix logging room id when LL members fail 2018-09-10 18:09:11 +02:00
David Baker
877e949d1c
Merge pull request #2156 from matrix-org/bwindels/dontrefreshmembersforotherrooms
avoid memberlist refresh for events related to rooms other but the current
2018-09-07 13:57:29 +01:00
Bruno Windels
101dad83aa same for right panel 2018-09-07 14:16:26 +02:00
David Baker
fa669bf096 Error on splash screen if sync is failing
Display an error on the splash screen with the spinner if the sync
request is not working, rather than just sitting there with a spinner
as if nothing is wrong.

Fixes https://github.com/vector-im/riot-web/issues/7148
2018-09-07 12:18:25 +01:00
David Baker
27fa21e403 Replace view_set_mxid with require_registration
To put all the other flows through the to-ilag-or-not-to-ilag flow
2018-09-05 18:08:49 +01:00
David Baker
a042f4d0af Do full registration if HS doesn't support ILAG
ILAG only works on HSes that allow registering without an email
address, so whenever we redirect to the ILAG flow, check what
registration flows the server supports, and if it doesn't offer one
that's ILAG-compatible, prompt the user to go through the full
registration process instead.

This doesn't change all the entry points into ILAG, I'll do that
in a separate commit.
2018-09-05 17:07:39 +01:00
David Baker
4517eaba6f
Merge pull request #2148 from matrix-org/dbkr/dont_say_email_optional_if_it_isnt
Correctly mark email as optional
2018-09-05 11:31:19 +01:00
David Baker
e5b761b754
Merge pull request #2059 from matrix-org/t3chguy/join_community_fire_ilag_flow
guests trying to join communities should fire the ILAG flow.
2018-09-05 08:15:24 +01:00
David Baker
775d995052 Lint 2018-09-04 18:51:24 +01:00
David Baker
dc14a42148 Correctly mark email as optional
Look at the flows to see if there is one we can complete without
an email address. Mark the email address as optional iff there is.
2018-09-04 18:26:09 +01:00
Bruno Windels
bc97a3efb5
Merge pull request #2143 from matrix-org/bwindels/fixreconnectspinner
Fix: show spinner again while recovering from connection error
2018-09-04 16:40:30 +02:00
Bruno Windels
5c395e4db7 wait for room creation, to go to home page in case of failure 2018-09-04 14:26:36 +02:00
Bruno Windels
debcc20604 also show spinner on new CATCHUP state 2018-08-30 15:39:48 +02:00
David Baker
bd0a9cf3a0 Merge remote-tracking branch 'origin/develop' into dbkr/room_upgrade 2018-08-29 15:51:07 +01:00
David Baker
c03abddd1c s/terms and conditions/legal/ 2018-08-24 11:38:38 +01:00
David Baker
18ed6eb63c Rener terms & conditions in settings
If configured in config file
2018-08-24 11:35:21 +01:00
David Baker
269670ed20
Merge pull request #2128 from matrix-org/dbkr/move_tiffany_check
Fix CPU spin on joining large room
2018-08-23 09:33:17 +01:00
David Baker
b34aad50bc
Merge pull request #2131 from matrix-org/dbkr/change_mau_server_notice_format
Change format of server usage limit message
2018-08-23 09:32:56 +01:00
David Baker
3b0b836637 Change format of server usage limit message
As per https://github.com/matrix-org/matrix-doc/issues/1452 /
https://github.com/matrix-org/synapse/pull/3680/
2018-08-22 17:54:02 +01:00
David Baker
a5f98b6a29 Make the is-alone check use efficient methods 2018-08-22 17:05:36 +01:00
David Baker
f679acea08
Revert "Revert "Fix showing peek preview while LL members are loading"" 2018-08-22 16:35:58 +01:00
David Baker
bf7633250a
Revert "Fix showing peek preview while LL members are loading" 2018-08-22 16:16:17 +01:00
David Baker
852d6a3be5 Fix CPU spin on joining large room
checkIfAlone() filters the whole member list, which is fine until
we do it once for every membership event, then we have an n^2
problem. Move it into the rate limited function.

Fixes https://github.com/vector-im/riot-web/issues/7163
2018-08-22 14:34:02 +01:00
Bruno Windels
a54629276f use getJoinedMemberCount() instead of getJoinedMembers().length as the latter doesnt take LL into account 2018-08-22 14:08:18 +02:00
Bruno Windels
c38b286e8e falsy check is obsolete now 2018-08-22 12:28:00 +02:00
Bruno Windels
01a0260ac8 use getMyMembership instead of member 2018-08-22 10:33:13 +02:00
David Baker
9f19896df0 Support for room upgrades
* Show when a room upgrade is needed
 * Dialog box to perform the upgrade
2018-08-17 14:54:43 +01:00
Bruno Windels
cead4096d8
Merge pull request #2118 from matrix-org/bwindels/feature_lazyloading
Lazy loading of room members
2018-08-16 18:14:55 +02:00
David Baker
8567ce585b Factor out duplication of resource limit i18n 2018-08-16 13:31:17 +01:00
David Baker
7d690d98e3 Rename variable as it's now not just MAU 2018-08-16 10:35:27 +01:00
David Baker
9bde468e30 Shift to M_RESOURCE_LIMIT_EXCEEDED errors
With support for admin_contact and limit_type fields

For https://github.com/vector-im/riot-web/issues/7091
2018-08-15 17:03:54 +01:00
Bruno Windels
a86ca952b3 forgot to remove this 2018-08-14 09:38:43 +02:00
Bruno Windels
7dc92fe917 Avoid clearing e2e encryption keys, also avoid warning 2018-08-13 17:24:27 +02:00
Bruno Windels
84b74247e6 check if server supports lazy loading before enabling 2018-08-13 16:19:44 +02:00