From 71af748eb6969227bafcd5381cdfb81730509f87 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Fri, 11 Mar 2022 10:57:25 +1100 Subject: [PATCH 1/2] make sure right panel is over the message detail view --- stylesheets/_session_conversation.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheets/_session_conversation.scss b/stylesheets/_session_conversation.scss index bcc4fbcfe..d408f2445 100644 --- a/stylesheets/_session_conversation.scss +++ b/stylesheets/_session_conversation.scss @@ -36,7 +36,7 @@ transform: translateX(100%); will-change: transform; width: 25vw; - z-index: 1; + z-index: 5; &.show { transform: none; From 49bae1925d54c35919f85ea3696d79111c720b31 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 15 Mar 2022 11:04:19 +1100 Subject: [PATCH 2/2] open message request reset opened convo and is a settings itself --- .../leftpane/LeftPaneSettingSection.tsx | 48 ++++++++++++------- .../overlay/OverlayMessageRequest.tsx | 9 ++-- ts/components/settings/SessionSettings.tsx | 1 + .../settings/section/CategoryPrivacy.tsx | 11 ----- ts/interactions/conversationInteractions.ts | 4 +- ts/state/ducks/conversations.ts | 5 +- ts/types/LocalizerKeys.ts | 1 - 7 files changed, 41 insertions(+), 38 deletions(-) diff --git a/ts/components/leftpane/LeftPaneSettingSection.tsx b/ts/components/leftpane/LeftPaneSettingSection.tsx index 309badf5b..d369e8c93 100644 --- a/ts/components/leftpane/LeftPaneSettingSection.tsx +++ b/ts/components/leftpane/LeftPaneSettingSection.tsx @@ -3,62 +3,78 @@ import classNames from 'classnames'; import { LeftPaneSectionHeader } from './LeftPaneSectionHeader'; import { useDispatch, useSelector } from 'react-redux'; -import { showSettingsSection } from '../../state/ducks/section'; +import { + SectionType, + setOverlayMode, + showLeftPaneSection, + showSettingsSection, +} from '../../state/ducks/section'; import { getFocusedSettingsSection } from '../../state/selectors/section'; import { recoveryPhraseModal, updateDeleteAccountModal } from '../../state/ducks/modalDialog'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton'; import { SessionIcon } from '../icon'; import { SessionSettingCategory } from '../settings/SessionSettings'; +import { resetConversationExternal } from '../../state/ducks/conversations'; const getCategories = () => { return [ { id: SessionSettingCategory.Appearance, title: window.i18n('appearanceSettingsTitle'), - hidden: false, }, { id: SessionSettingCategory.Privacy, title: window.i18n('privacySettingsTitle'), - hidden: false, }, { id: SessionSettingCategory.Blocked, title: window.i18n('blockedSettingsTitle'), - hidden: false, }, { id: SessionSettingCategory.Notifications, title: window.i18n('notificationsSettingsTitle'), - hidden: false, + }, + { + id: SessionSettingCategory.MessageRequests, + title: window.i18n('openMessageRequestInbox'), }, ]; }; -const LeftPaneSettingsCategoryRow = (props: { item: any }) => { +const LeftPaneSettingsCategoryRow = (props: { + item: { id: SessionSettingCategory; title: string }; +}) => { const { item } = props; - + const { id, title } = item; const dispatch = useDispatch(); const focusedSettingsSection = useSelector(getFocusedSettingsSection); + const isMessageRequestSetting = id === SessionSettingCategory.MessageRequests; + return (
{ - dispatch(showSettingsSection(item.id)); + if (isMessageRequestSetting) { + dispatch(showLeftPaneSection(SectionType.Message)); + dispatch(setOverlayMode('message-requests')); + dispatch(resetConversationExternal()); + } else { + dispatch(showSettingsSection(id)); + } }} >
- {item.title} + {title}
- {item.id === focusedSettingsSection && ( + {id === focusedSettingsSection && ( )}
@@ -72,11 +88,9 @@ const LeftPaneSettingsCategories = () => { return (
- {categories - .filter(m => !m.hidden) - .map(item => { - return ; - })} + {categories.map(item => { + return ; + })}
); diff --git a/ts/components/leftpane/overlay/OverlayMessageRequest.tsx b/ts/components/leftpane/overlay/OverlayMessageRequest.tsx index 00d9bcdfa..8341689cd 100644 --- a/ts/components/leftpane/overlay/OverlayMessageRequest.tsx +++ b/ts/components/leftpane/overlay/OverlayMessageRequest.tsx @@ -15,7 +15,10 @@ import { getConversationController } from '../../../session/conversations'; import { forceSyncConfigurationNowIfNeeded } from '../../../session/utils/syncUtils'; import { BlockedNumberController } from '../../../util'; import useKey from 'react-use/lib/useKey'; -import { clearConversationFocus, ReduxConversationType } from '../../../state/ducks/conversations'; +import { + ReduxConversationType, + resetConversationExternal, +} from '../../../state/ducks/conversations'; import { updateConfirmModal } from '../../../state/ducks/modalDialog'; export const OverlayMessageRequest = () => { @@ -66,7 +69,7 @@ export const OverlayMessageRequest = () => { // if we're looking at the convo to decline, close the convo if (selectedConversation?.id === id) { - clearConversationFocus(); + dispatch(resetConversationExternal()); } return true; })) @@ -80,7 +83,7 @@ export const OverlayMessageRequest = () => { if (convoRequestCount === newConvosBlocked.length) { dispatch(setOverlayMode(undefined)); dispatch(showLeftPaneSection(SectionType.Message)); - clearConversationFocus(); + dispatch(resetConversationExternal()); } }, }) diff --git a/ts/components/settings/SessionSettings.tsx b/ts/components/settings/SessionSettings.tsx index 99a3b0f37..334ace1a0 100644 --- a/ts/components/settings/SessionSettings.tsx +++ b/ts/components/settings/SessionSettings.tsx @@ -26,6 +26,7 @@ export enum SessionSettingCategory { Appearance = 'appearance', Privacy = 'privacy', Notifications = 'notifications', + MessageRequests = 'messageRequests', Blocked = 'blocked', } diff --git a/ts/components/settings/section/CategoryPrivacy.tsx b/ts/components/settings/section/CategoryPrivacy.tsx index 6b8fe7a00..59288bada 100644 --- a/ts/components/settings/section/CategoryPrivacy.tsx +++ b/ts/components/settings/section/CategoryPrivacy.tsx @@ -5,7 +5,6 @@ import useUpdate from 'react-use/lib/useUpdate'; import { SettingsKey } from '../../../data/settings-key'; import { CallManager } from '../../../session/utils'; import { sessionPassword, updateConfirmModal } from '../../../state/ducks/modalDialog'; -import { SectionType, setOverlayMode, showLeftPaneSection } from '../../../state/ducks/section'; import { toggleMessageRequests } from '../../../state/ducks/userConfig'; import { getHideMessageRequestBanner } from '../../../state/selectors/userConfig'; import { SessionButtonColor } from '../../basic/SessionButton'; @@ -119,16 +118,6 @@ export const SettingsCategoryPrivacy = (props: { description={window.i18n('hideRequestBannerDescription')} active={useSelector(getHideMessageRequestBanner)} /> - { - dispatch(showLeftPaneSection(SectionType.Message)); - dispatch(setOverlayMode('message-requests')); - }} - buttonColor={SessionButtonColor.Primary} - buttonText={window.i18n('openMessageRequestInbox')} - /> {!props.hasPassword && ( { window?.inboxStore?.dispatch(updateConfirmModal(null)); diff --git a/ts/state/ducks/conversations.ts b/ts/state/ducks/conversations.ts index 0ba7e00b8..ba63f73d2 100644 --- a/ts/state/ducks/conversations.ts +++ b/ts/state/ducks/conversations.ts @@ -951,6 +951,7 @@ export const { quotedMessageToAnimate, setNextMessageToPlayId, updateMentionsMembers, + resetConversationExternal, } = actions; export async function openConversationWithMessages(args: { @@ -976,10 +977,6 @@ export async function openConversationWithMessages(args: { ); } -export function clearConversationFocus() { - window.inboxStore?.dispatch(actions.resetConversationExternal()); -} - export async function openConversationToSpecificMessage(args: { conversationKey: string; messageIdToNavigateTo: string; diff --git a/ts/types/LocalizerKeys.ts b/ts/types/LocalizerKeys.ts index 3db49120f..412e6c60d 100644 --- a/ts/types/LocalizerKeys.ts +++ b/ts/types/LocalizerKeys.ts @@ -439,7 +439,6 @@ export type LocalizerKeys = | 'messageRequestAcceptedOursNoName' | 'declineRequestMessage' | 'openMessageRequestInbox' - | 'openMessageRequestInboxDescription' | 'hideRequestBanner' | 'noMessageRequestsPending' | 'noMediaUntilApproved'