Commit graph

1716 commits

Author SHA1 Message Date
David Baker
408b8c18ea Introduce a RoomScrollStateStore
to keep the place we're scrolled to in rooms. This mainly eleimates
the extra, superfluous onRoomViewStoreUpdate callback that
happened when the previous room saved back its scroll state.
Moving the scroll state to a separate store means we can have this
not emit events because nothing needs to know when the scroll state
changes.
2017-09-07 17:08:36 +01:00
David Baker
d71f15adf4 Remove unused scrollStateMap from LoggedinView 2017-09-06 22:51:10 +01:00
David Baker
609d61d53c Revert "Implement sticky date separators" 2017-09-06 17:40:58 +01:00
David Baker
262d66f579 Merge pull request #1353 from matrix-org/luke/feature-sticky-date-separators
Implement sticky date separators
2017-09-05 14:15:47 +01:00
David Baker
79ee41351c Fix typo 2017-09-04 15:45:28 +01:00
Luke Barnard
c9c0771355 Spelling 2017-08-31 16:29:45 +01:00
Luke Barnard
cdb28f956e Add comment for StickyContainer extension 2017-08-31 16:29:31 +01:00
David Baker
a2f2070966 Put setSate in the promise constructor
Avoids local variables. Also typo in comment.
2017-08-30 21:44:10 +01:00
David Baker
225fe67586 Fix room change sometimes being very slow
If the js-sdk had a lot of history in memory for a particular room,
riot would paginate all that history into the DOM and render it
when switching to that room (before then removing it all again).
This obviously made switching to that room very slow.

This was caused by the fact that we relied on the setState that
happens in TimelinePanel after the pagination taking effect such
that ScrollPanel sees that it no longer needs to paginate, but
in some situations (as far as I can see, in electron...?) this
setState would not take effect until the pagination stopped
fulfiling requests from memory and hit the network.

Fix: don't resolve the promise returned by the pagination request
until the setState has actually happened.
2017-08-30 19:14:26 +01:00
Luke Barnard
a29e7da06b Merge branch 'develop' into luke/feature-sticky-date-separators 2017-08-30 14:06:06 +01:00
David Baker
32b33c66b9 Merge pull request #1346 from matrix-org/t3chguy/shouldHideEvent_RoomStatusBar
apply shouldHideEvent fn to onRoomTimeline for RoomStatusBar
2017-08-30 13:58:40 +01:00
Luke Barnard
d516906b36 Implement sticky date separators
Use `react-sticky` to implement sticky date separators. This will pin a date separator to the top of the timeline panel when the separator scrolls out of the top of the view.

A known issue of this is that the spinner, which is in line with event tiles in the timeline, will appear to push the stuck date separator down. In reality the first date separator after the spinner is in line with event tiles and is not stuck because the spinner forces the timeline to be scrolled slightly further down than it would be otherwise. But also, date separators in the timeline (not "stuck") have a greater height.

Ideally the date separator would be suppressed whilst back paginating, but this will cause the stuck separator to flicker on and off. This is why the suppression has been removed.
2017-08-30 13:52:46 +01:00
David Baker
22bb635ff3 Merge pull request #1352 from matrix-org/fix_hide_rr_regression
separate concepts of showing and managing RRs to fix regression
2017-08-30 13:50:44 +01:00
Michael Telatynski
05c232c8c3
revert fancy indents
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-30 13:32:07 +01:00
Michael Telatynski
282618d5a1
separate concepts of showing and managing RRs to fix regression 2017-08-30 13:18:14 +01:00
Luke Barnard
3f11f9148f Merge pull request #1348 from matrix-org/dbkr/fix_forgot_password_percent_encode
Percent encoding isn't a valid thing within _t
2017-08-29 15:02:26 +01:00
David Baker
6d5b1b7a55 Percent encoding isn't a valid thing within _t
Just use a plain apostrophe
2017-08-29 14:18:24 +01:00
David Baker
ec983b838a Unbreak password reset with a non-default HS
Broken by the change from onHsUrlChanged to onServerConfigChanged
in https://github.com/matrix-org/matrix-react-sdk/pull/811 where
ForgotPassword got missed.
2017-08-29 14:07:43 +01:00
Michael Telatynski
315f7a3ae7
apply shouldHideEvent fn to onRoomTimeline for RoomStatusBar
prevents N new message(s) when a hidden message comes in.
2017-08-28 13:46:09 +01:00
David Baker
814e08d843 Merge pull request #1334 from matrix-org/dbkr/update_on_event_decrypted
Force update on timelinepanel when event decrypted
2017-08-24 13:35:39 +01:00
Richard van der Hoff
b65e1769d7 Dispatch incoming_call synchronously
- this should fix a race where if the 'hangup' arrives hard on the tail of the
Call.incoming, we don't ignore it.

(We still have a problem in that we blip the hangup tone and UI, but that is
arguably a separate problem)
2017-08-24 13:05:17 +01:00
David Baker
a2943ac348 Check room ID matches 2017-08-24 11:55:39 +01:00
David Baker
67824e9acc Force update on timelinepanel when event decrypted
Partially fixes https://github.com/vector-im/riot-web/issues/4865
(the part about messages not appearing in the timeline until you
move the cursor over the window).

Requires https://github.com/matrix-org/matrix-js-sdk/pull/529
2017-08-24 11:35:01 +01:00
Luke Barnard
caff761df7 Merge pull request #1308 from matrix-org/t3chguy/mels_fix
Change OOO so that MELS generation will continue over hidden events
2017-08-18 13:08:35 +01:00
Michael Telatynski
615d96a065
catch hidden event being RM
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-18 11:53:52 +01:00
David Baker
252ab208e4 Merge pull request #1300 from matrix-org/dbkr/userpicker
Refactor ChatInviteDialog to be UserPickerDialog
2017-08-16 14:29:07 +01:00
Michael Telatynski
14903274c0
Change OOO so that MELS generation will continue over hidden events
this fixes the scenario of N Member events, then an invisible event
e.g. (m.room.aliases) then more Member events. Pre hide-join-parts
this is how it worked.

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-16 13:20:32 +01:00
David Baker
1b66e88b6e ChatInviteDialog -> UserPickerDialog pt 2
The other changes I forgot to add
2017-08-14 17:43:00 +01:00
Luke Barnard
e48c4911b8 Merge pull request #1294 from matrix-org/revert-1290-luke/fix-user-url-no-middle-panel
Revert "At /user, view member of current room"
2017-08-14 16:31:24 +01:00
Luke Barnard
0079e70006 Display RM when it = a standalone member event
Standalone = not next to any member events in the timeline.

fixes vector-im/riot-web#4694
2017-08-14 15:40:49 +01:00
Luke Barnard
2844b574d5 Re-add useful comment 2017-08-14 14:41:03 +01:00
Luke Barnard
b59de7964c Wait for first sync before dispatching view_user on /user
the RightPanel will be mounted once we're done doing the first sync, so wait until then and then dispatch a view_user. This is not very nice but it's what we do for view_room.
2017-08-14 14:37:49 +01:00
Luke Barnard
d9e8292a5e Revert "At /user, view member of current room" 2017-08-14 14:06:54 +01:00
Luke Barnard
3d5d7fa9c8 Lint 2017-08-14 13:59:12 +01:00
Luke Barnard
cbd8018ac8 Support semi-perma-disabling of lab features
Adding `override: true` will remove the feature from the labs section, and force Riot to always use the default value (i.e. ignoring localStorage). This is useful removing features entirely when they might be deliberately not working but we still want to do a release.
2017-08-14 12:26:31 +01:00
David Baker
02217c8bd2 Merge pull request #1290 from matrix-org/luke/fix-user-url-no-middle-panel
At /user, view member of current room
2017-08-11 10:49:22 +01:00
Luke Barnard
12966d06cd Merge pull request #1255 from matrix-org/t3chguy/i18n_analytics
un-i18n Modal Analytics
2017-08-10 15:35:46 +01:00
Luke Barnard
d3ba1f40dc Merge pull request #1272 from matrix-org/t3chguy/hide_other_events
allow hiding of avatar/display name changes
2017-08-10 15:35:11 +01:00
Luke Barnard
89254e77f4 When no member, use null roomId 2017-08-10 15:23:14 +01:00
Michael Telatynski
41843f021d
don't track two more potential risks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 15:21:01 +01:00
Michael Telatynski
56ea528f43
don't track error messages .2
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 15:17:52 +01:00
Michael Telatynski
ab3abd2f7f
fix string casing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 13:59:55 +01:00
Michael Telatynski
b19c1010aa
Merge branches 'develop' and 't3chguy/i18n_analytics' of github.com:matrix-org/matrix-react-sdk into t3chguy/i18n_analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/Analytics.js
2017-08-10 13:54:55 +01:00
Michael Telatynski
24599ace32
don't track error messages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 13:49:11 +01:00
Marcel
60c1ba4f4d Add LanguageDropdown to LoginPage (#1284) 2017-08-10 13:29:10 +01:00
Luke Barnard
07633fe67f At /user, view member of current room
With the fallback of existing behaviour, which is UserView (no middle panel and no avatar, display name).

To improve, MemberInfo should probably track the current roomId and userId and then update the view asynchronously by re-fetching the member object when either roomId or userId change.

Also, it should be hitting the profile API to get the user's avatar if a room hasn't been specified.
2017-08-10 13:12:50 +01:00
Richard van der Hoff
38114711fd Make MatrixChat do fewer render cycles during mount
This is mostly with the intent of making the login tests more reliable, but it
seems generally worthwhile:

* keep screenAfterLogin in the object props rather than `state` so that we can
  clear it without triggering a rerender

* also move our record of the window width to the object props, and call
  `handleResize` from componentWillMount rather than componentDidMount so that
  we don't trigger a rerender by updating `state.width`

* Remove update of unused `loading` state
2017-08-08 22:31:40 +01:00
Luke Barnard
bef6726290 Lint 2017-08-08 13:42:51 +01:00
Luke Barnard
b08d32371d Add optional setting for hiding avatars in <Pill>s
As part of https://github.com/vector-im/riot-web/issues/4640#issuecomment-316659445
2017-08-08 11:13:29 +01:00
Michael Telatynski
ffdffb643d
allow hiding of avatar/display name changes 2017-08-04 17:22:01 +01:00