Apply labs flag to legacy room header too
parent
6b57ab53df
commit
de88a7c8df
|
@ -27,6 +27,7 @@ import { IRightPanelCardState } from "../../../stores/right-panel/RightPanelStor
|
||||||
import { UPDATE_EVENT } from "../../../stores/AsyncStore";
|
import { UPDATE_EVENT } from "../../../stores/AsyncStore";
|
||||||
import { NotificationColor } from "../../../stores/notifications/NotificationColor";
|
import { NotificationColor } from "../../../stores/notifications/NotificationColor";
|
||||||
import { ActionPayload } from "../../../dispatcher/payloads";
|
import { ActionPayload } from "../../../dispatcher/payloads";
|
||||||
|
import SettingsStore from "../../../settings/SettingsStore";
|
||||||
|
|
||||||
export enum HeaderKind {
|
export enum HeaderKind {
|
||||||
Room = "room",
|
Room = "room",
|
||||||
|
@ -37,6 +38,7 @@ interface IState {
|
||||||
phase: RightPanelPhases | null;
|
phase: RightPanelPhases | null;
|
||||||
threadNotificationColor: NotificationColor;
|
threadNotificationColor: NotificationColor;
|
||||||
globalNotificationColor: NotificationColor;
|
globalNotificationColor: NotificationColor;
|
||||||
|
notificationsEnabled?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IProps {}
|
interface IProps {}
|
||||||
|
@ -44,6 +46,7 @@ interface IProps {}
|
||||||
export default abstract class HeaderButtons<P = {}> extends React.Component<IProps & P, IState> {
|
export default abstract class HeaderButtons<P = {}> extends React.Component<IProps & P, IState> {
|
||||||
private unmounted = false;
|
private unmounted = false;
|
||||||
private dispatcherRef?: string = undefined;
|
private dispatcherRef?: string = undefined;
|
||||||
|
private readonly watcherRef: string;
|
||||||
|
|
||||||
public constructor(props: IProps & P, kind: HeaderKind) {
|
public constructor(props: IProps & P, kind: HeaderKind) {
|
||||||
super(props);
|
super(props);
|
||||||
|
@ -54,7 +57,11 @@ export default abstract class HeaderButtons<P = {}> extends React.Component<IPro
|
||||||
phase: rps.currentCard.phase,
|
phase: rps.currentCard.phase,
|
||||||
threadNotificationColor: NotificationColor.None,
|
threadNotificationColor: NotificationColor.None,
|
||||||
globalNotificationColor: NotificationColor.None,
|
globalNotificationColor: NotificationColor.None,
|
||||||
|
notificationsEnabled: SettingsStore.getValue("feature_notifications"),
|
||||||
};
|
};
|
||||||
|
this.watcherRef = SettingsStore.watchSetting("feature_notifications", null, (...[, , , value]) =>
|
||||||
|
this.setState({ notificationsEnabled: value }),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public componentDidMount(): void {
|
public componentDidMount(): void {
|
||||||
|
@ -66,6 +73,7 @@ export default abstract class HeaderButtons<P = {}> extends React.Component<IPro
|
||||||
this.unmounted = true;
|
this.unmounted = true;
|
||||||
RightPanelStore.instance.off(UPDATE_EVENT, this.onRightPanelStoreUpdate);
|
RightPanelStore.instance.off(UPDATE_EVENT, this.onRightPanelStoreUpdate);
|
||||||
if (this.dispatcherRef) dis.unregister(this.dispatcherRef);
|
if (this.dispatcherRef) dis.unregister(this.dispatcherRef);
|
||||||
|
if (this.watcherRef) SettingsStore.unwatchSetting(this.watcherRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract onAction(payload: ActionPayload): void;
|
protected abstract onAction(payload: ActionPayload): void;
|
||||||
|
|
|
@ -308,21 +308,23 @@ export default class LegacyRoomHeaderButtons extends HeaderButtons<IProps> {
|
||||||
<UnreadIndicator color={this.state.threadNotificationColor} />
|
<UnreadIndicator color={this.state.threadNotificationColor} />
|
||||||
</HeaderButton>,
|
</HeaderButton>,
|
||||||
);
|
);
|
||||||
rightPanelPhaseButtons.set(
|
if (this.state.notificationsEnabled) {
|
||||||
RightPanelPhases.NotificationPanel,
|
rightPanelPhaseButtons.set(
|
||||||
<HeaderButton
|
RightPanelPhases.NotificationPanel,
|
||||||
key="notifsButton"
|
<HeaderButton
|
||||||
name="notifsButton"
|
key="notifsButton"
|
||||||
title={_t("Notifications")}
|
name="notifsButton"
|
||||||
isHighlighted={this.isPhase(RightPanelPhases.NotificationPanel)}
|
title={_t("Notifications")}
|
||||||
onClick={this.onNotificationsClicked}
|
isHighlighted={this.isPhase(RightPanelPhases.NotificationPanel)}
|
||||||
isUnread={this.globalNotificationState.color === NotificationColor.Red}
|
onClick={this.onNotificationsClicked}
|
||||||
>
|
isUnread={this.globalNotificationState.color === NotificationColor.Red}
|
||||||
{this.globalNotificationState.color === NotificationColor.Red ? (
|
>
|
||||||
<UnreadIndicator color={this.globalNotificationState.color} />
|
{this.globalNotificationState.color === NotificationColor.Red ? (
|
||||||
) : null}
|
<UnreadIndicator color={this.globalNotificationState.color} />
|
||||||
</HeaderButton>,
|
) : null}
|
||||||
);
|
</HeaderButton>,
|
||||||
|
);
|
||||||
|
}
|
||||||
rightPanelPhaseButtons.set(
|
rightPanelPhaseButtons.set(
|
||||||
RightPanelPhases.RoomSummary,
|
RightPanelPhases.RoomSummary,
|
||||||
<HeaderButton
|
<HeaderButton
|
||||||
|
|
Loading…
Reference in New Issue