fix: fixed state of overlay options depending on release status

pull/2660/head
William Grant 2 years ago
parent 15c054a35e
commit ea0a505dcf

@ -35,7 +35,8 @@ const ClosableOverlay = () => {
switch (rightOverlayMode) {
case 'disappearing-messages':
return <OverlayDisappearingMessages unlockAllModes={showNewDisppearingMessageModes} />;
// TODO legacy messages support will be removed in a future release
return <OverlayDisappearingMessages unlockNewModes={showNewDisppearingMessageModes} />;
case 'panel-settings':
default:
return <OverlayRightPanelSettings />;

@ -13,7 +13,7 @@ import { PanelRadioButton } from '../../../buttons/PanelRadioButton';
import { SessionIconButton } from '../../../icon';
import {
getSelectedConversationExpirationModes,
getSelectedConversationExpirationModesLocked,
getSelectedConversationExpirationModesWithLegacy,
getSelectedConversationExpirationSettings,
getSelectedConversationKey,
} from '../../../../state/selectors/conversations';
@ -183,16 +183,16 @@ const TimeOptions = (props: TimerOptionsProps) => {
);
};
type OverlayDisappearingMessagesProps = { unlockAllModes: boolean };
type OverlayDisappearingMessagesProps = { unlockNewModes: boolean };
export const OverlayDisappearingMessages = (props: OverlayDisappearingMessagesProps) => {
const { unlockAllModes } = props;
const { unlockNewModes } = props;
const dispatch = useDispatch();
const selectedConversationKey = useSelector(getSelectedConversationKey);
const disappearingModeOptions = useSelector(
unlockAllModes
unlockNewModes
? getSelectedConversationExpirationModes
: getSelectedConversationExpirationModesLocked
: getSelectedConversationExpirationModesWithLegacy
);
const convoProps = useSelector(getSelectedConversationExpirationSettings);

@ -1183,18 +1183,16 @@ export const getSelectedConversationExpirationModes = createSelector(
getSelectedConversation,
(convo: ReduxConversationType | undefined) => {
let modes = DisappearingMessageConversationSetting;
// TODO legacy messages support will be removed in a future release
// TODO remove legacy mode
modes = modes.slice(0, -1);
// Note to Self and Closed Groups only support deleteAfterSend and legacy modes
// Note to Self and Closed Groups only support deleteAfterSend
if (convo?.isMe || (convo?.isGroup && !convo.isPublic)) {
// only deleteAfterSend
modes = [modes[0], modes[2], modes[modes.length - 1]];
modes = [modes[0], modes[2]];
}
// Legacy mode is the 2nd option in the UI
modes = [modes[0], modes[modes.length - 1], ...modes.slice(1, modes.length - 1)];
const modesWithDisabledState: any = {};
if (modes && modes.length > 1) {
modes.forEach(mode => {
modesWithDisabledState[mode] = false;
@ -1205,18 +1203,25 @@ export const getSelectedConversationExpirationModes = createSelector(
}
);
export const getSelectedConversationExpirationModesLocked = createSelector(
getSelectedConversationExpirationModes,
(modes: any | undefined) => {
const modesWithDisabledState: any = {};
// TODO legacy messages support will be removed in a future release
export const getSelectedConversationExpirationModesWithLegacy = createSelector(
getSelectedConversation,
(convo: ReduxConversationType | undefined) => {
let modes = DisappearingMessageConversationSetting;
if (modes && Object.keys(modes).length > 1) {
Object.keys(modes).forEach(mode => {
let result = false;
if (mode !== 'legacy' && mode !== 'off') {
result = true;
}
modesWithDisabledState[mode] = result;
// Note to Self and Closed Groups only support deleteAfterSend and legacy modes
if (convo?.isMe || (convo?.isGroup && !convo.isPublic)) {
modes = [modes[0], ...modes.slice(2)];
}
// Legacy mode is the 2nd option in the UI
modes = [modes[0], modes[modes.length - 1], ...modes.slice(1, modes.length - 1)];
const modesWithDisabledState: any = {};
// The new modes are disabled by default
if (modes && modes.length > 1) {
modes.forEach(mode => {
modesWithDisabledState[mode] = Boolean(mode !== 'legacy' && mode !== 'off');
});
}

Loading…
Cancel
Save