element-portable/src
Travis Ralston 8db67743f7 Improve room switching in the new room list
For https://github.com/vector-im/riot-web/issues/14034

One of the largest issues with room switching was that we'd regenerate the entire list when the sticky room changes, which is obviously detrimental on larger accounts (and even some medium accounts). To work through this, we simply handle the NewRoom and RoomRemoved causes (used by the sticky room handling) as splices rather than in-place updates.

Overall this leads to a smoother experience as it means we're doing far less calculations and can even opt out of an update if it isn't required, such as a RoomRemoved cause being fired twice - the second one can result in an update not being required, saving render time.

This commit also includes a fix for handling update causes on the sticky room, as the room list loves to print errors when this happens. We don't need to handle any updates because once the sticky room changes it'll get re-added through NewRoom, causing the underlying algorithm to slot it in where needed, effectively handling all the missed updates.
2020-06-17 22:42:01 -06:00
..
@types Add initial filtering support to new room list 2020-06-01 16:49:22 -06:00
accessibility Add new keyboard shortcuts for jump to unread and upload file 2020-05-13 10:38:32 +01:00
actions Use the new TS dispatcher 2020-05-14 13:45:17 -06:00
async-components/views/dialogs Update copy in encryption upgrade swcreen 2020-06-03 12:24:22 +01:00
autocomplete fix emoji in safari 2020-06-04 22:01:16 +01:00
components Merge pull request #4765 from matrix-org/travis/room-list/show-less 2020-06-17 10:24:50 -06:00
contexts Migrate away from Legacy React Contexts 2019-12-17 17:26:12 +00:00
dispatcher Add filtering and exploring to the new room list 2020-06-08 20:33:21 -06:00
editor Merge pull request #4694 from justin-sleep/remove-escape-backslashes 2020-06-17 11:06:04 -06:00
emojipicker Resolve default export warnings from Webpack 2020-01-24 22:26:34 +00:00
hooks Give contextual feedback for manual update check instead of banner 2020-05-29 18:24:45 +01:00
i18n/strings Merge pull request #4763 from matrix-org/t3chguy/slash_cmd_ci 2020-06-17 17:36:53 +01:00
indexing EventIndex: Store and restore the encryption info for encrypted events. 2020-06-09 15:26:34 +02:00
integrations Add js-sdk mechanism for polling client well-known for config 2020-06-01 22:35:16 +01:00
mjolnir Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
notifications Convert CommonJS exports to ES6-compatible exports 2019-12-22 21:01:02 -07:00
rageshake send state of lowBandwidth in rageshakes 2020-06-08 11:43:50 +01:00
resizer Convert resizer to ES6 2019-12-22 20:57:46 -07:00
settings clean up and fix the isMasterRuleEnabled logic 2020-06-17 16:31:42 +01:00
stores Improve room switching in the new room list 2020-06-17 22:42:01 -06:00
toasts Fix not being able to dismiss new login toasts 2020-06-04 13:48:35 -06:00
usercontent only automatically download in usercontent if user requested it 2020-03-03 13:23:33 +00:00
utils Add presence icons; Convert to generic icon component 2020-06-16 14:44:37 -06:00
widgets Merge pull request #4444 from pv/jitsi-popout-immediate-join 2020-06-07 20:22:39 -06:00
ActiveRoomObserver.js Selected state, cleanup, and profile display 2020-06-05 14:08:20 -06:00
AddThreepid.js Appease the linter 2020-03-30 20:24:53 -06:00
Analytics.js Analytics.js gets executed during times where localStorage is not ensured to exist 2020-04-08 21:42:58 +01:00
AsyncWrapper.js Use componentDidMount in place of componentWillMount where possible 2020-03-31 14:14:17 -06:00
Avatar.js MemberAvatar should not have its own letter fallback, it should use BaseAvatar's 2020-05-26 13:33:47 +01:00
BasePlatform.ts change names of consts for clarity 2020-06-03 20:23:01 +01:00
boundThreepids.js
CallHandler.js Also kill off things that these kept behind 2020-05-28 17:12:19 +01:00
CallMediaHandler.js
ContentMessages.tsx Add a focus_composer dispatcher action 2020-06-02 19:07:46 -06:00
createRoom.js move e2ee-default switch to well-known from config.json 2020-06-01 22:37:12 +01:00
CrossSigningManager.js Prompt for recovery key on login rather than passphrase 2020-06-02 16:32:15 +01:00
DateUtils.js
DecryptionFailureTracker.js
DeviceListener.ts Merge branches 'develop' and 't3chguy/e2eedefault' of github.com:matrix-org/matrix-react-sdk into t3chguy/e2eedefault 2020-06-03 10:51:17 +01:00
email.js
emoji.ts label ZWJ as such 2020-06-05 23:34:04 +01:00
extend.js
FromWidgetPostMessageApi.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
GroupAddressPicker.js Create and use stylised checkboxes 2020-05-28 22:33:00 +01:00
groups.js
HtmlUtils.js Fix BigEmoji for replies 2020-04-22 23:27:33 +01:00
IdentityAuthClient.js Remove v1 identity server fallbacks 2020-03-09 17:05:13 -06:00
ImageUtils.js
index.js
Keyboard.ts Add riot-desktop shortcuts for forward/back matching browsers&slack 2020-04-11 18:57:59 +01:00
languageHandler.js Notify electron of language changes 2020-02-24 17:11:08 +00:00
Lifecycle.js Merge pull request #4605 from matrix-org/t3chguy/e2eedefault 2020-06-03 22:12:13 +01:00
linkify-matrix.js accept and linkify local domains like those from mDNS 2020-05-14 13:04:30 +01:00
Login.js Fix m.id.phone spec compliance 2020-06-12 22:36:50 +01:00
Markdown.js Remove escape backslashes in non-Markdown messages 2020-06-03 17:08:13 -05:00
MatrixClientPeg.ts Change well known poll period to 2 hours to match existing Jitsi poll 2020-06-03 12:25:57 +01:00
Modal.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
Notifier.js delint 2020-05-28 19:04:34 +01:00
ObjectUtils.js
PageTypes.js
PasswordReset.js Fix/document a number of UIA oddities 2020-05-29 08:23:59 -06:00
PhasedRollOut.js
phonenumber.ts Update src/phonenumber.ts 2020-05-12 10:29:06 +01:00
PlatformPeg.js
Presence.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
ratelimitedfunc.js
Registration.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
Resend.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
Roles.js
RoomAliasCache.js
RoomInvite.js
RoomListSorter.js
RoomNotifs.js
Rooms.js use alt_aliases rather than aliases for the display alias 2020-02-21 13:02:35 +01:00
ScalarAuthClient.js Merge pull request #4458 from matrix-org/travis/fix-sticker-picker-add 2020-04-23 08:18:12 -06:00
ScalarMessaging.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
SdkConfig.ts Remove get-config API 2020-04-01 10:40:03 +01:00
Searching.js Searching: Delete all the fields that we use to get back event verification. 2020-06-10 12:58:08 +02:00
SendHistoryManager.js
shouldHideEvent.js
Skinner.js
SlashCommands.tsx Fix case-sensitivity of /me to match rest of slash commands 2020-06-16 00:41:21 +01:00
Terms.js
TextForEvent.js Show message previews on the new room list tiles 2020-06-10 18:37:59 -06:00
theme.js Address design issues and set theme at device level 2020-06-11 12:27:09 +01:00
Tinter.js
ToWidgetPostMessageApi.js
Unread.js
UserActivity.js Move dispatcher into a subdirectory 2020-05-13 21:07:50 -06:00
UserAddress.js
VectorConferenceHandler.js
Velociraptor.js
VelocityBounce.js
verification.js Remove feature_cross_signing 2020-05-27 10:28:25 +01:00
WhoIsTyping.js
WidgetMessaging.js Merge pull request #4444 from pv/jitsi-popout-immediate-join 2020-06-07 20:22:39 -06:00
WidgetMessagingEndpoint.js