Commit graph

20 commits

Author SHA1 Message Date
Travis Ralston
8e7b60b11e Remove useless if statement 2020-07-24 14:07:37 -06:00
Travis Ralston
593b472e50 Ensure notification badges stop listening when they unmount 2020-07-24 14:02:43 -06:00
Travis Ralston
bdb136e24e Clean up TODOs, comments, and imports in the new room list
Fixes https://github.com/vector-im/riot-web/issues/14412
2020-07-13 20:25:02 -06:00
Travis Ralston
47380306c2 Move and improve notification state handling
Previously we were creating a notification state whenever we needed one, which was leading to hundreds of listeners even on a small account. To ease the burden, and reduce the load of having to wake so many listeners, we now record a single listener for each tag ID and room combination.

This commit also introduces a number of utilities to make future notification work a bit of an easier transition, such as the `isX` and `hasX` getters on the new NotificationState abstract class. Similarly, "snapshots" have been added to reduce code duplication between different kinds of states checking for updates.

The ListNotificationState is now heavily tied into the store which offers it to help reuse the cache of room notification states. 

Fixes https://github.com/vector-im/riot-web/issues/14370
2020-07-08 19:26:25 -06:00
Travis Ralston
b54635863f Merge branch 'develop' into travis/room-list/notification-state 2020-07-02 13:26:16 -06:00
Michael Telatynski
a658612078 Add click-to-jump on badge in the room sublist header
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 19:48:06 +01:00
Travis Ralston
782a555e44 Make badges represent old list behaviour
Fixes https://github.com/vector-im/riot-web/issues/14160
2020-06-30 13:45:10 -06:00
Travis Ralston
393eaf84c3 Move notification states out of the NotificationBadge component
Fixes https://github.com/vector-im/riot-web/issues/14153
2020-06-30 13:34:44 -06:00
Travis Ralston
ee2c216c4d Clean up TODO comments for new room list
All relevant TODOs should still be present, and reference an issue for easy finding.
2020-06-28 20:03:04 -06:00
Travis Ralston
c920cf784e Create a StaticNotificationState for representative purposes 2020-06-25 16:35:54 +01:00
Travis Ralston
fc5ee64fce Fix read receipt handling in the new room list
Fixes https://github.com/vector-im/riot-web/issues/14064
Fixes https://github.com/vector-im/riot-web/issues/14082

Turns out the event doesn't reference a room, so we need to use the accompanied room reference instead.
2020-06-22 15:12:30 -06:00
Travis Ralston
fb551781c2 Force DMs to always be red notifications
This also passes the tagId to the sublist so it doesn't have to rip it out of the `layout`. It doesn't get a layout until later anyways, which causes some null issues.
2020-06-22 14:52:17 -06:00
Travis Ralston
63ad14ae1e Clean up imports 2020-06-22 10:35:55 -06:00
Travis Ralston
8201eed929 Encourage counts if the user has a mention (red state) 2020-06-22 10:26:37 -06:00
Travis Ralston
eeb408a081 Update badge logic for new setting and behaviour
For https://github.com/vector-im/riot-web/issues/14084
2020-06-22 10:26:19 -06:00
Travis Ralston
7191c01265 Fix crash when filtering new room list too fast
Fixes https://github.com/vector-im/riot-web/issues/14092

We were simply assuming we had a reference to a notification state, which might not be the case if we're between renders.
2020-06-18 15:52:55 -06:00
Travis Ralston
d1c2ecb6cc Add some resource leak protection to new room list badges
Most of the leaks were because we never set `this.rooms` in the notification state, which meant we were constantly triggering the `diff.added` loop.
2020-06-10 16:04:27 -06:00
Travis Ralston
eefc40e0f8 Use IDestroyable instead of IDisposable
For consistency within our project
2020-06-09 08:08:47 -06:00
Travis Ralston
8632d56e97 dispose -> destroy 2020-06-09 08:05:35 -06:00
Travis Ralston
086b9101fa Add sublist badge counts to new room list
Also add IDLE state to rooms
2020-06-08 13:42:18 -06:00