Take the Threads Activity Centre out of labs (#12439)
* Take the TAC out of labs! Requires https://github.com/matrix-org/matrix-react-sdk/pull/12438 and ideally https://github.com/matrix-org/matrix-react-sdk/pull/12418 * i18n * Add test method That's needed now we we don't include threads in the notif count in the tests * One less labs setting * Update snapshot * Disable release announcement * Unused import * Fix some screenshots * Fix all the unread test cases now room unreads don't include threads * Fix more tests * Even more test fixes * Still more test fixes * Oh goodness, it's more test fixes * Fix selectors now there are 2 buttons called Threads * Disable some tests that aren't passing for reasons that don't appear releated to any of the TAC work, as per the comment. * Remove debugging * Oops, removed too much
This commit is contained in:
parent
02e7fb340e
commit
281916fd96
20 changed files with 341 additions and 200 deletions
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { NotificationCountType, Room, Thread, ReceiptType } from "matrix-js-sdk/src/matrix";
|
||||
import React, { useContext, useMemo } from "react";
|
||||
import React, { useContext } from "react";
|
||||
import { ReadReceipt } from "matrix-js-sdk/src/models/read-receipt";
|
||||
|
||||
import MatrixClientContext from "../../../../contexts/MatrixClientContext";
|
||||
|
@ -25,7 +25,6 @@ import { determineUnreadState } from "../../../../RoomNotifs";
|
|||
import { humanReadableNotificationLevel } from "../../../../stores/notifications/NotificationLevel";
|
||||
import { doesRoomOrThreadHaveUnreadMessages } from "../../../../Unread";
|
||||
import BaseTool, { DevtoolsContext, IDevtoolsProps } from "./BaseTool";
|
||||
import SettingsStore from "../../../../settings/SettingsStore";
|
||||
|
||||
function UserReadUpTo({ target }: { target: ReadReceipt<any, any> }): JSX.Element {
|
||||
const cli = useContext(MatrixClientContext);
|
||||
|
@ -66,12 +65,10 @@ function UserReadUpTo({ target }: { target: ReadReceipt<any, any> }): JSX.Elemen
|
|||
}
|
||||
|
||||
export default function RoomNotifications({ onBack }: IDevtoolsProps): JSX.Element {
|
||||
const tacEnabled = useMemo(() => SettingsStore.getValue("threadsActivityCentre"), []);
|
||||
|
||||
const { room } = useContext(DevtoolsContext);
|
||||
const cli = useContext(MatrixClientContext);
|
||||
|
||||
const { level, count } = determineUnreadState(room, undefined, !tacEnabled);
|
||||
const { level, count } = determineUnreadState(room, undefined, false);
|
||||
const [notificationState] = useNotificationState(room);
|
||||
|
||||
return (
|
||||
|
|
|
@ -368,8 +368,6 @@ const SpacePanel: React.FC = () => {
|
|||
}
|
||||
});
|
||||
|
||||
const isThreadsActivityCentreEnabled = useSettingValue<boolean>("threadsActivityCentre");
|
||||
|
||||
return (
|
||||
<RovingTabIndexProvider handleHomeEnd handleUpDown={!dragging}>
|
||||
{({ onKeyDownHandler, onDragEndHandler }) => (
|
||||
|
@ -426,9 +424,8 @@ const SpacePanel: React.FC = () => {
|
|||
)}
|
||||
</Droppable>
|
||||
|
||||
{isThreadsActivityCentreEnabled && (
|
||||
<ThreadsActivityCentre displayButtonLabel={!isPanelCollapsed} />
|
||||
)}
|
||||
<ThreadsActivityCentre displayButtonLabel={!isPanelCollapsed} />
|
||||
|
||||
<QuickSettingsButton isPanelCollapsed={isPanelCollapsed} />
|
||||
</nav>
|
||||
</DragDropContext>
|
||||
|
|
|
@ -15,13 +15,12 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { RoomEvent } from "matrix-js-sdk/src/matrix";
|
||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||
import { useCallback, useEffect, 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,
|
||||
|
@ -31,8 +30,6 @@ 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);
|
||||
|
@ -53,11 +50,11 @@ export const useUnreadNotifications = (
|
|||
useEventEmitter(room, RoomEvent.MyMembership, () => updateNotificationState());
|
||||
|
||||
const updateNotificationState = useCallback(() => {
|
||||
const { symbol, count, level } = determineUnreadState(room, threadId, !tacEnabled);
|
||||
const { symbol, count, level } = determineUnreadState(room, threadId, false);
|
||||
setSymbol(symbol);
|
||||
setCount(count);
|
||||
setLevel(level);
|
||||
}, [room, threadId, tacEnabled]);
|
||||
}, [room, threadId]);
|
||||
|
||||
useEffect(() => {
|
||||
updateNotificationState();
|
||||
|
|
|
@ -1462,8 +1462,6 @@
|
|||
"sliding_sync_server_no_support": "Your server lacks native support",
|
||||
"sliding_sync_server_specify_proxy": "Your server lacks native support, you must specify a proxy",
|
||||
"sliding_sync_server_support": "Your server has native support",
|
||||
"threads_activity_centre": "Threads Activity Centre (in development)",
|
||||
"threads_activity_centre_description": "Warning: Under active development; reloads %(brand)s.",
|
||||
"under_active_development": "Under active development.",
|
||||
"unrealiable_e2e": "Unreliable in encrypted rooms",
|
||||
"video_rooms": "Video rooms",
|
||||
|
|
|
@ -1151,15 +1151,6 @@ export const SETTINGS: { [setting: string]: ISetting } = {
|
|||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
||||
default: [],
|
||||
},
|
||||
"threadsActivityCentre": {
|
||||
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
||||
labsGroup: LabGroup.Threads,
|
||||
controller: new ReloadOnChangeController(),
|
||||
displayName: _td("labs|threads_activity_centre"),
|
||||
description: () => _t("labs|threads_activity_centre_description", { brand: SdkConfig.get().brand }),
|
||||
default: false,
|
||||
isFeature: true,
|
||||
},
|
||||
/**
|
||||
* Enable or disable the release announcement feature
|
||||
*/
|
||||
|
|
|
@ -42,8 +42,6 @@ export class RoomNotificationStateStore extends AsyncStoreWithClient<IState> {
|
|||
private listMap = new Map<TagID, ListNotificationState>();
|
||||
private _globalState = new SummarizedNotificationState();
|
||||
|
||||
private tacEnabled = SettingsStore.getValue("threadsActivityCentre");
|
||||
|
||||
private constructor(dispatcher = defaultDispatcher) {
|
||||
super(dispatcher, {});
|
||||
SettingsStore.watchSetting("feature_dynamic_room_predecessors", null, () => {
|
||||
|
@ -99,7 +97,7 @@ export class RoomNotificationStateStore extends AsyncStoreWithClient<IState> {
|
|||
*/
|
||||
public getRoomState(room: Room): RoomNotificationState {
|
||||
if (!this.roomMap.has(room)) {
|
||||
this.roomMap.set(room, new RoomNotificationState(room, !this.tacEnabled));
|
||||
this.roomMap.set(room, new RoomNotificationState(room, false));
|
||||
}
|
||||
return this.roomMap.get(room)!;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue