+ <>
{displayNameInProfile}
{showMemberCount && (
@@ -293,7 +286,7 @@ export const SessionRightPanelWithDetails = () => {
)}
{showUpdateGroupNameButton && (
{
await showUpdateGroupNameByConvoId(id);
@@ -305,7 +298,7 @@ export const SessionRightPanelWithDetails = () => {
{showAddRemoveModeratorsButton && (
<>
{
showAddModeratorsByConvoId(id);
@@ -314,7 +307,7 @@ export const SessionRightPanelWithDetails = () => {
{window.i18n('addModerators')}
{
showRemoveModeratorsByConvoId(id);
@@ -327,7 +320,7 @@ export const SessionRightPanelWithDetails = () => {
{showUpdateGroupMembersButton && (
{
await showUpdateGroupMembersByConvoId(id);
@@ -338,10 +331,17 @@ export const SessionRightPanelWithDetails = () => {
)}
{hasDisappearingMessages && (
-
+ /* TODO Move ButtonGroup around all settings items */
+
+ {
+ dispatch(setRightOverlayMode('disappearing-messages'));
+ }}
+ />
+
)}
@@ -357,6 +357,6 @@ export const SessionRightPanelWithDetails = () => {
/>
)}
-
+ >
);
};
diff --git a/ts/components/leftpane/LeftPaneSectionHeader.tsx b/ts/components/leftpane/LeftPaneSectionHeader.tsx
index 4a9f2b1c9..39ec934f4 100644
--- a/ts/components/leftpane/LeftPaneSectionHeader.tsx
+++ b/ts/components/leftpane/LeftPaneSectionHeader.tsx
@@ -9,7 +9,7 @@ import { getFocusedSection, getOverlayMode } from '../../state/selectors/section
import { SectionType } from '../../state/ducks/section';
import { SessionButton } from '../basic/SessionButton';
import { isSignWithRecoveryPhrase } from '../../util/storage';
-import { MenuButton } from '../button/MenuButton';
+import { MenuButton } from '../buttons';
const SectionTitle = styled.h1`
padding-top: var(--margins-xs);
diff --git a/ts/state/ducks/section.tsx b/ts/state/ducks/section.tsx
index d1e1351e2..09c4bfb97 100644
--- a/ts/state/ducks/section.tsx
+++ b/ts/state/ducks/section.tsx
@@ -5,6 +5,8 @@ export const FOCUS_SETTINGS_SECTION = 'FOCUS_SETTINGS_SECTION';
export const IS_APP_FOCUSED = 'IS_APP_FOCUSED';
export const OVERLAY_MODE = 'OVERLAY_MODE';
export const RESET_OVERLAY_MODE = 'RESET_OVERLAY_MODE';
+export const RIGHT_OVERLAY_MODE = 'RIGHT_OVERLAY_MODE';
+export const RESET_RIGHT_OVERLAY_MODE = 'RESET_RIGHT_OVERLAY_MODE';
export enum SectionType {
Profile,
@@ -38,6 +40,15 @@ type ResetOverlayModeActionType = {
type: 'RESET_OVERLAY_MODE';
};
+type RightOverlayModeActionType = {
+ type: 'RIGHT_OVERLAY_MODE';
+ payload: RightOverlayMode;
+};
+
+type ResetRightOverlayModeActionType = {
+ type: 'RESET_RIGHT_OVERLAY_MODE';
+};
+
export function showLeftPaneSection(section: SectionType): FocusSectionActionType {
return {
type: FOCUS_SECTION,
@@ -54,6 +65,7 @@ export function setIsAppFocused(focused: boolean): IsAppFocusedActionType {
};
}
+// TODO Should be renamed to LeftOverlayMode
export type OverlayMode =
| 'choose-action'
| 'message'
@@ -74,6 +86,22 @@ export function resetOverlayMode(): ResetOverlayModeActionType {
};
}
+// TODO possibly more overlays here
+export type RightOverlayMode = 'disappearing-messages' | 'panel-settings';
+
+export function setRightOverlayMode(overlayMode: RightOverlayMode): RightOverlayModeActionType {
+ return {
+ type: RIGHT_OVERLAY_MODE,
+ payload: overlayMode,
+ };
+}
+
+export function resetRightOverlayMode(): ResetRightOverlayModeActionType {
+ return {
+ type: RESET_RIGHT_OVERLAY_MODE,
+ };
+}
+
export function showSettingsSection(
category: SessionSettingCategory
): FocusSettingsSectionActionType {
@@ -88,6 +116,8 @@ export const actions = {
showSettingsSection,
setOverlayMode,
resetOverlayMode,
+ setRightOverlayMode,
+ resetRightOverlayMode,
};
export const initialSectionState: SectionStateType = {
@@ -95,6 +125,7 @@ export const initialSectionState: SectionStateType = {
focusedSettingsSection: undefined,
isAppFocused: false,
overlayMode: undefined,
+ rightOverlayMode: undefined,
};
export type SectionStateType = {
@@ -102,6 +133,7 @@ export type SectionStateType = {
focusedSettingsSection?: SessionSettingCategory;
isAppFocused: boolean;
overlayMode: OverlayMode | undefined;
+ rightOverlayMode: RightOverlayMode | undefined;
};
export const reducer = (
@@ -154,6 +186,16 @@ export const reducer = (
...state,
overlayMode: undefined,
};
+ case RIGHT_OVERLAY_MODE:
+ return {
+ ...state,
+ rightOverlayMode: payload,
+ };
+ case RESET_RIGHT_OVERLAY_MODE:
+ return {
+ ...state,
+ rightOverlayMode: undefined,
+ };
default:
return state;
}
diff --git a/ts/state/selectors/section.ts b/ts/state/selectors/section.ts
index 5c1b1a2bf..3cf72bc7d 100644
--- a/ts/state/selectors/section.ts
+++ b/ts/state/selectors/section.ts
@@ -1,7 +1,7 @@
import { createSelector } from '@reduxjs/toolkit';
import { StateType } from '../reducer';
-import { OverlayMode, SectionStateType, SectionType } from '../ducks/section';
+import { OverlayMode, RightOverlayMode, SectionStateType, SectionType } from '../ducks/section';
import { SessionSettingCategory } from '../../components/settings/SessionSettings';
export const getSection = (state: StateType): SectionStateType => state.section;
@@ -21,7 +21,13 @@ export const getIsAppFocused = createSelector(
(state: SectionStateType): boolean => state.isAppFocused
);
+// TODO This should probably be renamed to getLeftOverlayMode and the props should be updated.
export const getOverlayMode = createSelector(
getSection,
(state: SectionStateType): OverlayMode | undefined => state.overlayMode
);
+
+export const getRightOverlayMode = createSelector(
+ getSection,
+ (state: SectionStateType): RightOverlayMode | undefined => state.rightOverlayMode
+);