Commit Graph

64 Commits

Author SHA1 Message Date
Germain
703587b8e9 Cleanup pre MSC3773 thread unread notif logic (#10023) 2023-01-31 16:59:24 +00:00
Clark Fischer
431afaafc6 Unify unread notification state determination (#9941)
* Add tests for unread notification facilities

Add some tests to guarantee some consistency in `useUnreadNotifications` and
`RoomNotificationState`.

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>

* Add RoomNotifs#determineUnreadState

Intended as a singular replacement for the divergent implementations before.

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>

* Unify room unread state determination

Have both the class-based facility and the hook use the new unified logic in
`RoomNotifs#determineUnreadState`.

Addresses https://github.com/vector-im/element-web/issues/24229

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>

---------

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-01-31 09:58:17 +00:00
Michael Telatynski
030b7e90bf Enable @typescript-eslint/explicit-function-return-type in /src (#9788)
* Enable `@typescript-eslint/explicit-member-accessibility` on /src

* Prettier

* Enable `@typescript-eslint/explicit-function-return-type` in /src

* Fix types

* tsc strict fixes

* Delint

* Fix test

* Fix bad merge
2023-01-12 13:25:14 +00:00
Michael Telatynski
f1e8e7f140 Enable @typescript-eslint/explicit-member-accessibility on /src (#9785)
* Enable `@typescript-eslint/explicit-member-accessibility` on /src

* Prettier
2022-12-16 12:29:59 +00:00
Michael Weimann
526645c791 Apply prettier formatting 2022-12-12 12:24:14 +01:00
Germain
3a501003e2 Add setting to hide bold notifications (#9705) 2022-12-06 09:59:17 +00:00
Richard van der Hoff
f642765149 Pass a client into RoomNotifs.getRoomNotifsState (#9631)
Pass an explicit client into `RoomNotifs.getRoomNotifsState`, rather than
relying on `MatrixClientPeg`. This resolves a race condition where we have a
component which thinks it is using a particular component, but
`MatrixClientPeg` has been updated.
2022-11-29 10:55:15 +00:00
Arne Wilken
1e65dcd0aa Change ListNotificationState to store room ids (#9518)
* Changed ListNotificationState to store room ids

ListNotificationState stores a reference to a rooms array which is later
used for comparing the stored array with new arrays. However, the
comparison may fail since the stored array can be changed outside the
class. This PR proposes to instead store only the room ids, which
hopefully allows to avoid the issue by copying the room ids into
a new array, while still being performant.

Signed-off-by: Arne Wilken arnepokemon@yahoo.de

* Change ListNotificationState to shallow clone rooms

Instead of using room ids like in the previous commit,
shallow clone the rooms array instead.

Signed-off-by: Arne Wilken arnepokemon@yahoo.de
Co-authored-by: Robin <robin@robin.town>
2022-11-01 20:56:40 +00:00
kegsay
51e69427f3 Reinstate timeline/redaction callbacks when updating notification state (#9494) 2022-10-26 10:33:06 +01:00
Germain
9eb4f8d723 Add thread notification with server assistance (MSC3773) (#9400)
Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2022-10-24 07:50:21 +01:00
kegsay
67dbb36026 Listen for and update the notification state when they change (#9438)
* Listen for and update the notification state when they change

* Remove unnecessary listeners: justify each listener left remaining

* Update removeListener too
2022-10-18 13:44:45 +01:00
Robin
0d6a550c33 Prepare for Element Call integration (#9224)
* Improve accessibility and testability of Tooltip

Adding a role to Tooltip was motivated by React Testing Library's
reliance on accessibility-related attributes to locate elements.

* Make the ReadyWatchingStore constructor safer

The ReadyWatchingStore constructor previously had a chance to
immediately call onReady, which was dangerous because it was potentially
calling the derived class's onReady at a point when the derived class
hadn't even finished construction yet. In normal usage, I guess this
never was a problem, but it was causing some of the tests I was writing
to crash. This is solved by separating out the onReady call into a start
method.

* Rename 1:1 call components to 'LegacyCall'

to reflect the fact that they're slated for removal, and to not clash
with the new Call code.

* Refactor VideoChannelStore into Call and CallStore

Call is an abstract class that currently only has a Jitsi
implementation, but this will make it easy to later add an Element Call
implementation.

* Remove WidgetReady, ClientReady, and ForceHangupCall hacks

These are no longer used by the new Jitsi call implementation, and can
be removed.

* yarn i18n

* Delete call map entries instead of inserting nulls

* Allow multiple active calls and consolidate call listeners

* Fix a race condition when creating a video room

* Un-hardcode the media device fallback labels

* Apply misc code review fixes

* yarn i18n

* Disconnect from calls more politely on logout

* Fix some strict mode errors

* Fix another updateRoom race condition
2022-08-30 15:13:39 -04:00
Šimon Brandner
3bf52fc110 Ignore unreads in low priority rooms in the space panel (#6518)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-08-19 13:32:11 +00:00
Michael Telatynski
762d052501 Fix offline status in window title not working reliably (#8656) 2022-05-20 17:46:16 +01:00
Michael Telatynski
f29ef04751 Fix race conditions around threads (#8448) 2022-05-03 14:25:08 +01:00
Michael Telatynski
fddbc429a9 Fix issue with thread notification state ignoring initial events (#8417) 2022-04-29 09:48:57 +01:00
Germain
f4c25e06cd Fix notification dot for "Mentions & keywords" for thread messages (#8202) 2022-03-31 14:48:23 +01:00
J. Ryan Stinnett
65691202f7 Add lint for unused locals (#8007) 2022-03-09 12:05:16 +00:00
Germain
acd12c38a9 Fix threads timeline message ordering (#7968) 2022-03-03 15:22:16 +00:00
Michael Telatynski
7fa01ffb06 Improve typing around event emitter handlers (#7816) 2022-02-22 12:18:08 +00:00
Kerry
5b8d440406 type Actions (#7862)
* type ViewHomPage action

Signed-off-by: Kerry Archibald <kerrya@element.io>

* type spacestore actions

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add action types

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use new action types in stores

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove debug change

Signed-off-by: Kerry Archibald <kerrya@element.io>

* stricter keyboard shortcut types

Signed-off-by: Kerry Archibald <kerrya@element.io>

* action comments

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-02-22 10:04:27 +00:00
David Baker
a958cd20f1 Fix delayed badge update for mentions in encrypted rooms (#7813)
* Fix delayed badge update for mentions in encrypted rooms

Fixes https://github.com/vector-im/element-web/issues/20859

More detail on the issue

* Remove unused import

* Fix listener removal
2022-02-15 20:06:29 +00:00
Michael Telatynski
f6565bfbc8 Send how many favorited rooms a user has to Posthog (#7772) 2022-02-10 10:02:34 +00:00
Michael Telatynski
8e4ced6454 Correctly handle Room.timeline events which have a nullable Room (#7635) 2022-01-26 13:24:14 +00:00
Germain
c612014936 Fix ThreadsRoomNotificationState listeners removal on destroy (#7558) 2022-01-17 14:54:19 +00:00
Michael Telatynski
fb494a5098 Fix notification badge for All Rooms space (#7401) 2021-12-17 11:02:06 +00:00
Germain
69c4a0cebc Fix main timeline pending events bleeding in thread's timeline (#7373) 2021-12-15 12:40:56 +00:00
Germain
ce570ab827 Hook threads notification state to UI (#7298) 2021-12-13 14:05:42 +00:00
Aaron Raimist
2e8a93834b Auto fix
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-09 09:10:23 +00:00
Aaron Raimist
7b94e13a84 Merge branch 'develop' into sort-imports
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-09 08:34:20 +00:00
Germain
38e5e94ee4 Threads notifications after app startup (#7253) 2021-12-07 12:51:34 +00:00
Aaron Raimist
bdc56be863 Auto fix
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-10-22 17:23:37 -05:00
Šimon Brandner
e2b6c2cbd6 Convert RoomNotifs to TS
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-09-27 18:39:57 +02:00
Michael Telatynski
9a8a453827 tidy 2021-09-10 11:09:46 +01:00
Michael Telatynski
aff9be6120 Surface unsent messages on the sublist notification badge too 2021-09-10 10:58:13 +01:00
Michael Telatynski
bbe714257e Show unsent message warning on Space panel button 2021-09-10 09:17:31 +01:00
Michael Telatynski
329bc8a89e Move unsent event badge handling into RoomNotificationState 2021-09-09 13:14:05 +01:00
Michael Telatynski
755007cbee Conclude labs flags and write more tests 2021-07-27 14:39:14 +01:00
Jaiwanth
517e8951ee Apply suggestions from review 2021-07-22 08:30:18 +05:30
Jaiwanth
a99b24ef83 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into spaces-jump-to-room 2021-06-30 11:20:01 +05:30
Jaiwanth
1b21c8f732 Remove unreadRoomId from summarized notification state 2021-06-30 10:53:46 +05:30
J. Ryan Stinnett
ae0a8b8da4 Auto-fix lint errors 2021-06-29 13:11:58 +01:00
Jaiwanth
bf2d26ef21 Modify to navigate only on notification dots click 2021-05-20 11:23:00 +05:30
Jaiwanth
3e8863fc9a Adjust behaviour for the home space 2021-05-11 13:03:45 +05:30
Jaiwanth
73b9ad41da Navigate to room with maximum notifications when clicked on already selected space 2021-05-05 12:38:44 +05:30
Travis Ralston
4be9c51dad Move all the RED_EXCLAMATION badges to a single definition 2021-04-21 16:43:25 -06:00
David Baker
d39b7175f7 Don't include invisible rooms in notify summary
This could cause rogue title bar natifications if you had invisible rooms
2021-04-16 15:31:01 +01:00
Michael Telatynski
7030c636f0 Initial Space Store for keeping track of space hierarchies from sync 2021-02-25 16:36:35 +00:00
J. Ryan Stinnett
ce226ab534 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:33:36 +01:00
Travis Ralston
da05cac1b6 Listen for our own membership changes on notification states
Fixes https://github.com/vector-im/riot-web/issues/14798 (part 1)

When we transition from invite to not-invite we need to ensure we clear the invite notification state.
2020-07-30 14:33:38 -06:00