Commit Graph

19748 Commits

Author SHA1 Message Date
David Baker
47ddc6dedf Comment typo 2017-09-11 18:29:20 +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
82f2e47667 Avoid re-rendering RoomList on room switch
See https://github.com/matrix-org/matrix-react-sdk/pull/1375
2017-09-11 17:06:40 +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
Michael Telatynski
0580d536ad Merge branch 'develop' into t3chguy/on_copy_tooltip 2017-09-10 18:54:52 +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
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
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
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
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
03dcded72f Blank line to make comment clearer 2017-09-08 17:39:10 +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
Michael Telatynski
3df379cb49 fix radio for theme selection
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-07 18:54:41 +01:00
David Baker
82d1afcc47 Correct comment 2017-09-07 17:16:32 +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
David Baker
76be54b2be Make isInvite default to false
as things are assuming it's optional but it isn't which is causing
a ton of warnings.
2017-09-07 13:35:13 +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
38575a653d Revert "Implement sticky date separators" 2017-09-06 17:36:43 +01:00
Michael Telatynski
32ea675c92 fix (C) header
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 14:20:12 +01:00
Michael Telatynski
b10b0e573d i18n and change message depending on success of copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 11:29:55 +01:00
Michael Telatynski
269f1f33e3 show response on copy so you don't mash it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 11:27:25 +01:00
Michael Telatynski
60c2338543 generic contextual menu for tooltip/responses
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 11:27:04 +01:00
Michael Telatynski
fca86be077 allow hiding of notification body for privacy reasons
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 10:56:32 +01:00
David Baker
289c3a5fbd Merge remote-tracking branch 'origin/develop' into dbkr/group_userlist 2017-09-05 14:20:02 +01:00
David Baker
b8d9276f29 Merge pull request #4939 from vector-im/luke/feature-sticky-date-separators
Implement sticky date separators
2017-09-05 14:16:21 +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
Robert Swain
53574541c3 AppTile: Add Jitsi electron screensharing support 2017-09-04 09:31:25 +02:00
Luke Barnard
0ded4acba0 Mark TODO for https://github.com/vector-im/riot-web/issues/4951 2017-08-31 17:52:53 +01:00
Luke Barnard
d84190f58d Explain Flair debounce 2017-08-31 17:49:19 +01:00
Michael Telatynski
3aa12246ea Merge branch 'develop' into t3chguy/devtools 2017-08-31 17:11:53 +01:00
Luke Barnard
e89d52ccbf Do not get avatars when no groups were/could be retrieved 2017-08-31 16:46:39 +01:00
Luke Barnard
86e8a4c7e2 Make componentWillMount not async
This was left over from a previous refactor
2017-08-31 16:44:14 +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
Michael Telatynski
b84f258f87 add bottom margin to navigation buttons of room state explorer
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-31 13:49:52 +01:00
Luke Barnard
da9dcc8f50 Merge pull request #4858 from Nostradamos/fix-4804
Fix overflowing login/register buttons on some languages issue #4804
2017-08-31 09:51:06 +01:00
Michael Telatynski
68fc202086 remove pointless self vars and DRY render method of send custom events
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-31 09:45:46 +01:00
Michael Telatynski
ce0861d5bd undo `` as its hard to read
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-31 09:25:06 +01:00
David Baker
a70e7751e9 Merge pull request #4943 from anoadragon453/develop
Update vector-im to riot-im on Login
2017-08-31 08:33:21 +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