Merge pull request #2199 from Bilb/prioritize-convo-details-over-message-details

Prioritize convo details over message details
pull/2203/head
Audric Ackermann 3 years ago committed by GitHub
commit ae5f0a2675
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -36,7 +36,7 @@
transform: translateX(100%); transform: translateX(100%);
will-change: transform; will-change: transform;
width: 25vw; width: 25vw;
z-index: 1; z-index: 5;
&.show { &.show {
transform: none; transform: none;

@ -3,62 +3,78 @@ import classNames from 'classnames';
import { LeftPaneSectionHeader } from './LeftPaneSectionHeader'; import { LeftPaneSectionHeader } from './LeftPaneSectionHeader';
import { useDispatch, useSelector } from 'react-redux'; 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 { getFocusedSettingsSection } from '../../state/selectors/section';
import { recoveryPhraseModal, updateDeleteAccountModal } from '../../state/ducks/modalDialog'; import { recoveryPhraseModal, updateDeleteAccountModal } from '../../state/ducks/modalDialog';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton';
import { SessionIcon } from '../icon'; import { SessionIcon } from '../icon';
import { SessionSettingCategory } from '../settings/SessionSettings'; import { SessionSettingCategory } from '../settings/SessionSettings';
import { resetConversationExternal } from '../../state/ducks/conversations';
const getCategories = () => { const getCategories = () => {
return [ return [
{ {
id: SessionSettingCategory.Appearance, id: SessionSettingCategory.Appearance,
title: window.i18n('appearanceSettingsTitle'), title: window.i18n('appearanceSettingsTitle'),
hidden: false,
}, },
{ {
id: SessionSettingCategory.Privacy, id: SessionSettingCategory.Privacy,
title: window.i18n('privacySettingsTitle'), title: window.i18n('privacySettingsTitle'),
hidden: false,
}, },
{ {
id: SessionSettingCategory.Blocked, id: SessionSettingCategory.Blocked,
title: window.i18n('blockedSettingsTitle'), title: window.i18n('blockedSettingsTitle'),
hidden: false,
}, },
{ {
id: SessionSettingCategory.Notifications, id: SessionSettingCategory.Notifications,
title: window.i18n('notificationsSettingsTitle'), 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 { item } = props;
const { id, title } = item;
const dispatch = useDispatch(); const dispatch = useDispatch();
const focusedSettingsSection = useSelector(getFocusedSettingsSection); const focusedSettingsSection = useSelector(getFocusedSettingsSection);
const isMessageRequestSetting = id === SessionSettingCategory.MessageRequests;
return ( return (
<div <div
key={item.id} key={id}
className={classNames( className={classNames(
'left-pane-setting-category-list-item', 'left-pane-setting-category-list-item',
item.id === focusedSettingsSection ? 'active' : '' id === focusedSettingsSection ? 'active' : ''
)} )}
role="link" role="link"
onClick={() => { onClick={() => {
dispatch(showSettingsSection(item.id)); if (isMessageRequestSetting) {
dispatch(showLeftPaneSection(SectionType.Message));
dispatch(setOverlayMode('message-requests'));
dispatch(resetConversationExternal());
} else {
dispatch(showSettingsSection(id));
}
}} }}
> >
<div> <div>
<strong>{item.title}</strong> <strong>{title}</strong>
</div> </div>
<div> <div>
{item.id === focusedSettingsSection && ( {id === focusedSettingsSection && (
<SessionIcon iconSize="medium" iconType="chevron" iconRotation={270} /> <SessionIcon iconSize="medium" iconType="chevron" iconRotation={270} />
)} )}
</div> </div>
@ -72,11 +88,9 @@ const LeftPaneSettingsCategories = () => {
return ( return (
<div className="module-left-pane__list" key={0}> <div className="module-left-pane__list" key={0}>
<div className="left-pane-setting-category-list"> <div className="left-pane-setting-category-list">
{categories {categories.map(item => {
.filter(m => !m.hidden) return <LeftPaneSettingsCategoryRow key={item.id} item={item} />;
.map(item => { })}
return <LeftPaneSettingsCategoryRow key={item.id} item={item} />;
})}
</div> </div>
</div> </div>
); );

@ -15,7 +15,10 @@ import { getConversationController } from '../../../session/conversations';
import { forceSyncConfigurationNowIfNeeded } from '../../../session/utils/syncUtils'; import { forceSyncConfigurationNowIfNeeded } from '../../../session/utils/syncUtils';
import { BlockedNumberController } from '../../../util'; import { BlockedNumberController } from '../../../util';
import useKey from 'react-use/lib/useKey'; 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'; import { updateConfirmModal } from '../../../state/ducks/modalDialog';
export const OverlayMessageRequest = () => { export const OverlayMessageRequest = () => {
@ -66,7 +69,7 @@ export const OverlayMessageRequest = () => {
// if we're looking at the convo to decline, close the convo // if we're looking at the convo to decline, close the convo
if (selectedConversation?.id === id) { if (selectedConversation?.id === id) {
clearConversationFocus(); dispatch(resetConversationExternal());
} }
return true; return true;
})) }))
@ -80,7 +83,7 @@ export const OverlayMessageRequest = () => {
if (convoRequestCount === newConvosBlocked.length) { if (convoRequestCount === newConvosBlocked.length) {
dispatch(setOverlayMode(undefined)); dispatch(setOverlayMode(undefined));
dispatch(showLeftPaneSection(SectionType.Message)); dispatch(showLeftPaneSection(SectionType.Message));
clearConversationFocus(); dispatch(resetConversationExternal());
} }
}, },
}) })

@ -26,6 +26,7 @@ export enum SessionSettingCategory {
Appearance = 'appearance', Appearance = 'appearance',
Privacy = 'privacy', Privacy = 'privacy',
Notifications = 'notifications', Notifications = 'notifications',
MessageRequests = 'messageRequests',
Blocked = 'blocked', Blocked = 'blocked',
} }

@ -5,7 +5,6 @@ import useUpdate from 'react-use/lib/useUpdate';
import { SettingsKey } from '../../../data/settings-key'; import { SettingsKey } from '../../../data/settings-key';
import { CallManager } from '../../../session/utils'; import { CallManager } from '../../../session/utils';
import { sessionPassword, updateConfirmModal } from '../../../state/ducks/modalDialog'; import { sessionPassword, updateConfirmModal } from '../../../state/ducks/modalDialog';
import { SectionType, setOverlayMode, showLeftPaneSection } from '../../../state/ducks/section';
import { toggleMessageRequests } from '../../../state/ducks/userConfig'; import { toggleMessageRequests } from '../../../state/ducks/userConfig';
import { getHideMessageRequestBanner } from '../../../state/selectors/userConfig'; import { getHideMessageRequestBanner } from '../../../state/selectors/userConfig';
import { SessionButtonColor } from '../../basic/SessionButton'; import { SessionButtonColor } from '../../basic/SessionButton';
@ -119,16 +118,6 @@ export const SettingsCategoryPrivacy = (props: {
description={window.i18n('hideRequestBannerDescription')} description={window.i18n('hideRequestBannerDescription')}
active={useSelector(getHideMessageRequestBanner)} active={useSelector(getHideMessageRequestBanner)}
/> />
<SessionSettingButtonItem
title={window.i18n('openMessageRequestInbox')}
description={window.i18n('openMessageRequestInboxDescription')}
onClick={() => {
dispatch(showLeftPaneSection(SectionType.Message));
dispatch(setOverlayMode('message-requests'));
}}
buttonColor={SessionButtonColor.Primary}
buttonText={window.i18n('openMessageRequestInbox')}
/>
{!props.hasPassword && ( {!props.hasPassword && (
<SessionSettingButtonItem <SessionSettingButtonItem
title={window.i18n('setAccountPasswordTitle')} title={window.i18n('setAccountPasswordTitle')}

@ -30,9 +30,9 @@ import {
removeAllMessagesInConversation, removeAllMessagesInConversation,
} from '../data/data'; } from '../data/data';
import { import {
clearConversationFocus,
conversationReset, conversationReset,
quoteMessage, quoteMessage,
resetConversationExternal,
} from '../state/ducks/conversations'; } from '../state/ducks/conversations';
import { getDecryptedMediaUrl } from '../session/crypto/DecryptedAttachmentsManager'; import { getDecryptedMediaUrl } from '../session/crypto/DecryptedAttachmentsManager';
import { IMAGE_JPEG } from '../types/MIME'; import { IMAGE_JPEG } from '../types/MIME';
@ -159,7 +159,7 @@ export const declineConversationWithConfirm = (convoId: string, syncToDevices: b
await declineConversationWithoutConfirm(convoId, syncToDevices); await declineConversationWithoutConfirm(convoId, syncToDevices);
await blockConvoById(convoId); await blockConvoById(convoId);
await forceSyncConfigurationNowIfNeeded(); await forceSyncConfigurationNowIfNeeded();
clearConversationFocus(); window?.inboxStore?.dispatch(resetConversationExternal());
}, },
onClickCancel: () => { onClickCancel: () => {
window?.inboxStore?.dispatch(updateConfirmModal(null)); window?.inboxStore?.dispatch(updateConfirmModal(null));

@ -951,6 +951,7 @@ export const {
quotedMessageToAnimate, quotedMessageToAnimate,
setNextMessageToPlayId, setNextMessageToPlayId,
updateMentionsMembers, updateMentionsMembers,
resetConversationExternal,
} = actions; } = actions;
export async function openConversationWithMessages(args: { 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: { export async function openConversationToSpecificMessage(args: {
conversationKey: string; conversationKey: string;
messageIdToNavigateTo: string; messageIdToNavigateTo: string;

@ -439,7 +439,6 @@ export type LocalizerKeys =
| 'messageRequestAcceptedOursNoName' | 'messageRequestAcceptedOursNoName'
| 'declineRequestMessage' | 'declineRequestMessage'
| 'openMessageRequestInbox' | 'openMessageRequestInbox'
| 'openMessageRequestInboxDescription'
| 'hideRequestBanner' | 'hideRequestBanner'
| 'noMessageRequestsPending' | 'noMessageRequestsPending'
| 'noMediaUntilApproved' | 'noMediaUntilApproved'

Loading…
Cancel
Save