Commit graph

6387 commits

Author SHA1 Message Date
Robert Swain
aa82be1fb1 Merge branch 'develop' into rob/electron-screensharing 2017-09-12 10:54:20 +02:00
David Baker
3c70b86668 Merge pull request #1375 from matrix-org/dbkr/active_room_observer
Avoid re-rendering RoomList on room switch
2017-09-11 18:52:09 +01:00
David Baker
7e1886c2ab Merge pull request #1376 from matrix-org/dbkr/fix_failed_to_load_timeline_pos
Fix 'Failed to load timeline position' regression
2017-09-11 18:51:41 +01:00
David Baker
6cb98d7196 Hopefully make comment clearer 2017-09-11 18:39:30 +01:00
David Baker
531fc3ac54 Fix 'Failed to load timeline position' regression
Ignore the update that comes in from the RoomViewStore when the
current room changes or we save our scoll state against the new
room rather than the old one.

Fixes https://github.com/vector-im/riot-web/issues/5010
2017-09-11 17:57:52 +01:00
David Baker
be8f0991a6 Avoid re-rendering RoomList on room switch
Introduce a class that consumes updates from the RoomViewStore and
announces to listeners if the active room ID is now or is no longer
the room ID they specified. Naming suggestions welcome: it's
currently called ActiveRoomObserver.

Avoids passing the selectedRoomId down from MatrixChat all the way
through the LeftPanel / RoomList / RoomSubList to the RoomTiles.

Also introduce a CallPreview class that listens directly for
RoomViewStore changes as the call preview in the left panel needs
to know when the room changes, so this allows this component to
update without having to update the entire left panel.
2017-09-11 16:59:09 +01:00
David Baker
7617788345 Merge pull request #1372 from matrix-org/dbkr/emoji_fast_path
Fast path for emojifying strings
2017-09-10 17:44:02 +01:00
David Baker
cc6123b556 Merge pull request #1374 from matrix-org/dbkr/consolidate_code_copy_button
Consolidate the code copy button
2017-09-10 16:07:51 +01:00
David Baker
05a986334d Separate function to add code copy button
For neatness and also so it can show up separately in the profiler.
2017-09-10 15:58:17 +01:00
David Baker
876257f4e2 Consolidate the code copy button
Adding the code code button was done by manipulating the HTML of
the event body to add a span tag, then adding the onclick handler
after the thing was mounted. Apart from splitting the code between
two places, adding the span tag was, according to Chrome's
profiler, taking up quite a lot of CPU cycles (apparently as soon
as you set the innerHTML on a div). Instead, just build the whole
lot together after the component mounts.
2017-09-10 14:23:33 +01:00
Matthew Hodgson
e1aefd2119 Merge pull request #1373 from matrix-org/dbkr/code_copy_only_html
Only add the code copy button for HTML messages
2017-09-09 05:31:05 +01:00
David Baker
fe79010e4e Only add the code copy button for HTML messages
Trivial fast-path optimisation: plain text messages cannot possibly contain pre
blocks so there's no point in trying to parse them in order to add code copy
buttons.
2017-09-08 23:36:22 +01:00
David Baker
ea5726aa4e Copyright 2017-09-08 23:14:06 +01:00
David Baker
ec3ff529e7 Fast path for emojifying strings
Emojione's regex for detecting emoji is *enourmous* and we were
running it on every display name, room name, message etc every time
those components mounted. Add a much simpler regex to rule out the
majority of strings that contain no emoji and fast-path them.

Makes room switching about 10% faster (in my tests with all the
profiling turned on).
2017-09-08 23:05:27 +01:00
David Baker
1f84c68180 Merge pull request #1371 from matrix-org/dbkr/fix_extra_matrixchat_render
Don't re-render matrixchat unnecessarily
2017-09-08 19:27:09 +01:00
Matthew Hodgson
0e8bd856bc remove obsolete this._roomViewStoreToken.remove(); 2017-09-08 20:14:27 +02:00
David Baker
663dc3e513 Don't re-render matrixchat unnecessarily
...on room switch. We were setting most of the state in viewRoom,
but getting the current room ID from the RoomViewStore, but this
meant we did one setState from the RoomViewStore updating,
re-rendered and then setState again in viewRoom causing another
render. This just sets the room ID in viewRoom.
2017-09-08 18:56:57 +01:00
David Baker
d507dc7975 Merge pull request #1370 from matrix-org/dbkr/onhaveroom_no_wait_for_setstate
Don't wait for setState to run onHaveRoom
2017-09-08 18:24:57 +01:00
David Baker
aee2f3cdef Rename onHaveRoom
And move some code out of it which didn't really have any reason
to be hanging out there rather than just be where we set the room
a few lines above.
2017-09-08 18:11:13 +01:00
David Baker
bf982004f6 Give onHaveRoom the info it needs explicitly
Rather than giving it a state object which is not actually the
whole state but happens to be everything it actually wants
(currently)
2017-09-08 17:56:53 +01:00
David Baker
81871c50be Add more doc
on why module level variables do not work as singletons
2017-09-08 17:43:41 +01:00
David Baker
cce772c087 Merge remote-tracking branch 'origin/develop' into dbkr/onhaveroom_no_wait_for_setstate 2017-09-08 17:41:18 +01:00
David Baker
03dcded72f Blank line to make comment clearer 2017-09-08 17:39:10 +01:00
Richard van der Hoff
a012dbafce Merge pull request #1367 from matrix-org/dbkr/scroll_state_store
Introduce a RoomScrollStateStore
2017-09-08 17:37:32 +01:00
David Baker
1be35a77ec Don't wait for setState to run onHaveRoom
onHaveRoom sets some more state (among other things) so putting it
in the setState callback so it could observe the new state caused
us to have to re-render again unnecessarily. Just give it the new
state as a parameter.
2017-09-08 17:06:46 +01:00
David Baker
984d639a37 Merge remote-tracking branch 'origin/develop' into dbkr/scroll_state_store 2017-09-08 15:58:38 +01:00
David Baker
13b094a3f6 Merge pull request #1369 from matrix-org/dbkr/dont_always_paginate
Don't always paginate when mounting a ScrollPanel
2017-09-08 15:51:55 +01:00
David Baker
78a2e49705 Don't always paginate when mounting a ScrollPanel
Calling just checkFill on DidMount did not initially set the
scrollTop which meant that one back pagination request is always
performed regardless. This meant we would end up rending the
first batch of events, then paginating and re-rendering again
after the pagination got another batch, causing unnecessary render
churn.
2017-09-08 15:41:19 +01:00
David Baker
59c54d3756 Remove redundant code 2017-09-08 13:39:22 +01:00
David Baker
d714291aa1 Re-add doc on scroll state map structure 2017-09-08 13:27:14 +01:00
David Baker
82d1afcc47 Correct comment 2017-09-07 17:16:32 +01:00
David Baker
7f44ac7403 Remove now unused stuff from RoomViewStore 2017-09-07 17:15:19 +01:00
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
Richard van der Hoff
239b2db537 Merge pull request #1366 from matrix-org/dbkr/remove_unused_scrollstatemap
Remove unused scrollStateMap from LoggedinView
2017-09-07 10:37:03 +01:00
David Baker
d71f15adf4 Remove unused scrollStateMap from LoggedinView 2017-09-06 22:51:10 +01:00
David Baker
7dbd54ad25 Merge pull request #1365 from matrix-org/revert-1353-luke/feature-sticky-date-separators
Revert "Implement sticky date separators"
2017-09-06 18:07:01 +01:00
David Baker
609d61d53c Revert "Implement sticky date separators" 2017-09-06 17:40:58 +01:00
David Baker
5dfd35f730 Merge branch 'master' into develop 2017-09-06 13:26:34 +01:00
David Baker
f5cf2aece2 v0.10.3 2017-09-06 13:25:58 +01:00
David Baker
9dd98d1085 Prepare changelog for v0.10.3 2017-09-06 13:25:57 +01:00
David Baker
738c81b506 Add missing translations 2017-09-05 17:36:41 +01:00
David Baker
158e6fd9ff Merge pull request #1361 from MTRNord/patch-9
Remove unused string "changing room on a RoomView is not supported"
2017-09-05 17:20:26 +01:00
David Baker
f7c31bed28 Merge pull request #1360 from MTRNord/patch-7
[WIP] Remove unused translation code translations
2017-09-05 17:13:51 +01:00
MTRNord
da3336172f
Remove more unused translation strings 2017-09-05 18:12:00 +02:00
Marcel
a573a396ad Remove unused string "changing room on a RoomView is not supported" 2017-09-05 18:07:22 +02:00
MTRNord
5449224dec
readd translations that got removed by accident 2 2017-09-05 18:01:57 +02:00
MTRNord
7ba8aa95c5
readd translations that got removed by accident 2017-09-05 18:00:57 +02:00
MTRNord
4a362c141a
Cleanup unused language code translations 2017-09-05 17:54:49 +02:00
Marcel
5684b6a23c Remove unused translation code translations 2017-09-05 17:35:03 +02: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