Add labs flag for Threads Activity Centre (#12137)
* Add `Thread Activity centre` labs flag * Rename translation string * Update supportedLevels * Fix labs subsection test * Update Threads Activity Centre label * Make threads activity centre labs flag split out unread counts Just shows notif & unread counts for main thread if the TAC is enabled. * Fix tests * Simpler fix * Pass in & cache the status of the TAC labs flag * Pass includeThreads as setting to doesRoomHaveUnreadMessages too * Fix tests --------- Co-authored-by: David Baker <dbkr@users.noreply.github.com>
This commit is contained in:
parent
a370a5cfa4
commit
77e1649f0b
15 changed files with 111 additions and 56 deletions
|
@ -15,12 +15,13 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { RoomEvent } from "matrix-js-sdk/src/matrix";
|
||||
import { useCallback, useEffect, useState } from "react";
|
||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||
|
||||
import type { NotificationCount, Room } from "matrix-js-sdk/src/matrix";
|
||||
import { determineUnreadState } from "../RoomNotifs";
|
||||
import { NotificationLevel } from "../stores/notifications/NotificationLevel";
|
||||
import { useEventEmitter } from "./useEventEmitter";
|
||||
import SettingsStore from "../settings/SettingsStore";
|
||||
|
||||
export const useUnreadNotifications = (
|
||||
room?: Room,
|
||||
|
@ -30,6 +31,8 @@ export const useUnreadNotifications = (
|
|||
count: number;
|
||||
level: NotificationLevel;
|
||||
} => {
|
||||
const tacEnabled = useMemo(() => SettingsStore.getValue("threadsActivityCentre"), []);
|
||||
|
||||
const [symbol, setSymbol] = useState<string | null>(null);
|
||||
const [count, setCount] = useState<number>(0);
|
||||
const [level, setLevel] = useState<NotificationLevel>(NotificationLevel.None);
|
||||
|
@ -50,11 +53,11 @@ export const useUnreadNotifications = (
|
|||
useEventEmitter(room, RoomEvent.MyMembership, () => updateNotificationState());
|
||||
|
||||
const updateNotificationState = useCallback(() => {
|
||||
const { symbol, count, level } = determineUnreadState(room, threadId);
|
||||
const { symbol, count, level } = determineUnreadState(room, threadId, !tacEnabled);
|
||||
setSymbol(symbol);
|
||||
setCount(count);
|
||||
setLevel(level);
|
||||
}, [room, threadId]);
|
||||
}, [room, threadId, tacEnabled]);
|
||||
|
||||
useEffect(() => {
|
||||
updateNotificationState();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue