fix: review changes #2, refactorised toggleLinkPreviews function

pull/2656/head
tomobre 2 years ago
parent 138d8da676
commit 77f0138d49

@ -12,7 +12,8 @@ import { TypingBubble } from '../../conversation/TypingBubble';
import { SessionSettingButtonItem, SessionToggleWithDescription } from '../SessionSettingListItem'; import { SessionSettingButtonItem, SessionToggleWithDescription } from '../SessionSettingListItem';
import { displayPasswordModal } from '../SessionSettings'; import { displayPasswordModal } from '../SessionSettings';
async function toggleLinkPreviews(isToggleOn: boolean, setIsToggleOn: (value: boolean) => void) { async function toggleLinkPreviews(forceUpdate: () => void) {
const isToggleOn = Boolean(window.getSettingValue(SettingsKey.settingsLinkPreview));
if (!isToggleOn) { if (!isToggleOn) {
window.inboxStore?.dispatch( window.inboxStore?.dispatch(
updateConfirmModal({ updateConfirmModal({
@ -22,13 +23,14 @@ async function toggleLinkPreviews(isToggleOn: boolean, setIsToggleOn: (value: bo
onClickOk: async () => { onClickOk: async () => {
const newValue = !isToggleOn; const newValue = !isToggleOn;
await window.setSettingValue(SettingsKey.settingsLinkPreview, newValue); await window.setSettingValue(SettingsKey.settingsLinkPreview, newValue);
setIsToggleOn(newValue); forceUpdate();
}, },
}) })
); );
} else { } else {
await window.setSettingValue(SettingsKey.settingsLinkPreview, false);
await Data.createOrUpdateItem({ id: hasLinkPreviewPopupBeenDisplayed, value: false }); await Data.createOrUpdateItem({ id: hasLinkPreviewPopupBeenDisplayed, value: false });
setIsToggleOn(false); forceUpdate();
} }
} }
@ -45,9 +47,7 @@ export const SettingsCategoryPrivacy = (props: {
hasPassword: boolean | null; hasPassword: boolean | null;
onPasswordUpdated: (action: string) => void; onPasswordUpdated: (action: string) => void;
}) => { }) => {
const [isLinkPreviewsOn, setIsLinkPreviewsOn] = React.useState( const isLinkPreviewsOn = Boolean(window.getSettingValue(SettingsKey.settingsLinkPreview));
Boolean(window.getSettingValue(SettingsKey.settingsLinkPreview))
);
const forceUpdate = useUpdate(); const forceUpdate = useUpdate();
@ -77,8 +77,7 @@ export const SettingsCategoryPrivacy = (props: {
/> />
<SessionToggleWithDescription <SessionToggleWithDescription
onClickToggle={async () => { onClickToggle={async () => {
await toggleLinkPreviews(isLinkPreviewsOn, setIsLinkPreviewsOn); await toggleLinkPreviews(forceUpdate);
forceUpdate();
}} }}
title={window.i18n('linkPreviewsTitle')} title={window.i18n('linkPreviewsTitle')}
description={window.i18n('linkPreviewDescription')} description={window.i18n('linkPreviewDescription')}

Loading…
Cancel
Save