From 46a8801d8eca0de8bfb65b63691a06d02a10a4b3 Mon Sep 17 00:00:00 2001
From: William Grant <willmgrant@gmail.com>
Date: Mon, 3 Apr 2023 14:09:04 +0200
Subject: [PATCH] fix: rebuilt disappearing messages header beause syncthing

---
 _locales/en/messages.json                     |  1 +
 .../overlay/OverlayDisappearingMessages.tsx   | 77 ++++++++++++++++---
 ts/types/LocalizerKeys.ts                     |  3 +-
 3 files changed, 70 insertions(+), 11 deletions(-)

diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index b706b55eb..206c71fd3 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -195,6 +195,7 @@
   "timerOption_1_week": "1 week",
   "timerOption_2_weeks": "2 weeks",
   "disappearingMessages": "Disappearing messages",
+  "disappearingMessagesSubtitle": "This setting applies to everyone in this conversation",
   "set": "Set",
   "changeNickname": "Change Nickname",
   "clearNickname": "Clear Nickname",
diff --git a/ts/components/conversation/right-panel/overlay/OverlayDisappearingMessages.tsx b/ts/components/conversation/right-panel/overlay/OverlayDisappearingMessages.tsx
index cd87db0e2..bb332a28c 100644
--- a/ts/components/conversation/right-panel/overlay/OverlayDisappearingMessages.tsx
+++ b/ts/components/conversation/right-panel/overlay/OverlayDisappearingMessages.tsx
@@ -2,14 +2,17 @@ import React, { useState } from 'react';
 import { useDispatch, useSelector } from 'react-redux';
 import styled from 'styled-components';
 import { setDisappearingMessagesByConvoId } from '../../../../interactions/conversationInteractions';
+import { closeRightPanel } from '../../../../state/ducks/conversations';
 import { resetRightOverlayMode } from '../../../../state/ducks/section';
 import { getSelectedConversationKey } from '../../../../state/selectors/conversations';
 import { getTimerOptions } from '../../../../state/selectors/timerOptions';
+import { Flex } from '../../../basic/Flex';
 import { SessionButton } from '../../../basic/SessionButton';
 import { PanelButtonGroup } from '../../../buttons';
 import { PanelRadioButton } from '../../../buttons/PanelRadioButton';
+import { SessionIconButton } from '../../../icon';
 
-const StyledContainer = styled.div`
+const StyledContainer = styled(Flex)`
   width: 100%;
 
   .session-button {
@@ -20,6 +23,64 @@ const StyledContainer = styled.div`
   }
 `;
 
+const StyledTitle = styled.h2`
+  font-family: var(--font-default);
+  text-align: center;
+  margin-top: 0px;
+  margin-bottom: 0px;
+`;
+
+const StyledSubTitle = styled.h3`
+  font-family: var(--font-default);
+  font-size: 11px;
+  font-weight: 400;
+  text-align: center;
+  padding-top: 0px;
+  margin-top: 0;
+`;
+
+type HeaderProps = {
+  title: string;
+  subtitle: string;
+};
+
+const Header = (props: HeaderProps) => {
+  const { title, subtitle } = props;
+  const dispatch = useDispatch();
+
+  return (
+    <Flex container={true} width={'100%'} padding={'32px var(--margins-lg) var(--margins-md)'}>
+      <SessionIconButton
+        iconSize={'medium'}
+        iconType={'chevron'}
+        iconRotation={90}
+        onClick={() => {
+          dispatch(resetRightOverlayMode());
+        }}
+      />
+      <Flex
+        container={true}
+        flexDirection={'column'}
+        justifyContent={'flex-start'}
+        alignItems={'center'}
+        width={'100%'}
+        margin={'-5px auto auto'}
+      >
+        <StyledTitle>{title}</StyledTitle>
+        <StyledSubTitle>{subtitle}</StyledSubTitle>
+      </Flex>
+      <SessionIconButton
+        iconSize={'tiny'}
+        iconType={'exit'}
+        onClick={() => {
+          dispatch(closeRightPanel());
+          dispatch(resetRightOverlayMode());
+        }}
+      />
+    </Flex>
+  );
+};
+
 type TimerOptionsProps = {
   options: any[];
   selected: number;
@@ -48,21 +109,17 @@ const TimeOptions = (props: TimerOptionsProps) => {
 };
 
 export const OverlayDisappearingMessages = () => {
-  const dispatch = useDispatch();
   const selectedConversationKey = useSelector(getSelectedConversationKey);
   const timerOptions = useSelector(getTimerOptions).timerOptions;
 
   const [selected, setSelected] = useState(timerOptions[0].value);
 
   return (
-    <StyledContainer>
-      <div
-        onClick={() => {
-          dispatch(resetRightOverlayMode());
-        }}
-      >
-        TODO
-      </div>
+    <StyledContainer container={true} flexDirection={'column'} alignItems={'center'}>
+      <Header
+        title={window.i18n('disappearingMessages')}
+        subtitle={window.i18n('disappearingMessagesSubtitle')}
+      />
       <TimeOptions options={timerOptions} selected={selected} setSelected={setSelected} />
       <SessionButton
         onClick={() => {
diff --git a/ts/types/LocalizerKeys.ts b/ts/types/LocalizerKeys.ts
index cb534dffa..172f5e292 100644
--- a/ts/types/LocalizerKeys.ts
+++ b/ts/types/LocalizerKeys.ts
@@ -461,6 +461,7 @@ export type LocalizerKeys =
   | 'stagedImageAttachment'
   | 'thisWeek'
   | 'savedTheFile'
+  | 'timerSetTo'
   | 'mediaEmptyState'
   | 'linkVisitWarningTitle'
   | 'invalidPassword'
@@ -471,7 +472,7 @@ export type LocalizerKeys =
   | 'autoUpdateNewVersionMessage'
   | 'oneNonImageAtATimeToast'
   | 'reactionPopupMany'
-  | 'timerSetTo'
+  | 'disappearingMessagesSubtitle'
   | 'iAmSure'
   | 'primaryColorRed'
   | 'selectMessage'