Web: Client: Settings: fix session logic

This commit is contained in:
Viktor Fomin 2022-04-06 10:58:35 +03:00
parent 4960c16805
commit ef7a1be29d
2 changed files with 26 additions and 14 deletions

View File

@ -38,6 +38,13 @@ const TwoFactorAuth = (props) => {
const getSettings = () => {
const { tfaSettings, smsAvailable, appAvailable } = props;
const currentSettings = getFromSessionStorage("currentTfaSettings");
const defaultSettings = getFromSessionStorage("defaultTfaSettings");
if (defaultSettings) {
saveToSessionStorage("defaultTfaSettings", defaultSettings);
} else {
saveToSessionStorage("defaultTfaSettings", tfaSettings);
}
if (currentSettings) {
setType(currentSettings);
@ -45,9 +52,6 @@ const TwoFactorAuth = (props) => {
setType(tfaSettings);
}
const defaultSettings = getFromSessionStorage("defaultTfaSettings");
saveToSessionStorage("defaultTfaSettings", defaultSettings || tfaSettings);
setSmsDisabled(smsAvailable);
setAppDisabled(appAvailable);
setIsLoading(true);
@ -58,9 +62,11 @@ const TwoFactorAuth = (props) => {
getSettings();
window.addEventListener("resize", checkWidth);
return () => window.removeEventListener("resize", checkWidth);
}, []);
}, [isLoading]);
useEffect(() => {
if (!isLoading) return;
const defaultSettings = getFromSessionStorage("defaultTfaSettings");
saveToSessionStorage("currentTfaSettings", type);

View File

@ -47,9 +47,21 @@ const TrustedMail = (props) => {
const [type, setType] = useState("0");
const [domains, setDomains] = useState([]);
const [showReminder, setShowReminder] = useState(false);
const [isLoading, setIsLoading] = useState(false);
const getSettings = async () => {
const currentSettings = getFromSessionStorage("currentTrustedMailSettings");
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
if (defaultSettings) {
saveToSessionStorage("defaultTrustedMailSettings", defaultSettings);
} else {
const defaultData = {
type: String(trustedDomainsType),
domains: trustedDomains,
};
saveToSessionStorage("defaultTrustedMailSettings", defaultData);
}
if (currentSettings) {
setType(currentSettings.type);
@ -59,15 +71,7 @@ const TrustedMail = (props) => {
setDomains(trustedDomains);
}
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
const defaultData = {
type: String(trustedDomainsType),
domains: trustedDomains,
};
saveToSessionStorage(
"defaultTrustedMailSettings",
defaultSettings || defaultData
);
setIsLoading(true);
};
useEffect(() => {
@ -75,9 +79,11 @@ const TrustedMail = (props) => {
getSettings();
window.addEventListener("resize", checkWidth);
return () => window.removeEventListener("resize", checkWidth);
}, []);
}, [isLoading]);
useEffect(() => {
if (!isLoading) return;
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
const newSettings = {
type: type,