Web: Client: Settings: fix

This commit is contained in:
Viktor Fomin 2022-04-14 15:22:28 +03:00
parent 8674260bcb
commit 9e611da373

View File

@ -46,6 +46,7 @@ const IpSecurity = (props) => {
ipRestrictions,
setIpRestrictions,
initSettings,
isInit,
} = props;
const regexp = /^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/; //check ip valid
@ -54,20 +55,15 @@ const IpSecurity = (props) => {
const [ips, setIps] = useState();
const [showReminder, setShowReminder] = useState(false);
const [isLoading, setIsLoading] = useState(false);
const [isSaving, setIsSaving] = useState(false);
const getSettings = () => {
const currentSettings = getFromSessionStorage("currentIPSettings");
const defaultSettings = getFromSessionStorage("defaultIPSettings");
if (defaultSettings) {
saveToSessionStorage("defaultIPSettings", defaultSettings);
} else {
const defaultData = {
enable: ipRestrictionEnable,
ips: ipRestrictions,
};
saveToSessionStorage("defaultIPSettings", defaultData);
}
const defaultData = {
enable: ipRestrictionEnable,
ips: ipRestrictions,
};
saveToSessionStorage("defaultIPSettings", defaultData);
if (currentSettings) {
setEnable(currentSettings.enable);
@ -76,16 +72,21 @@ const IpSecurity = (props) => {
setEnable(ipRestrictionEnable);
setIps(ipRestrictions);
}
setIsLoading(true);
};
useEffect(() => {
initSettings();
checkWidth();
getSettings();
window.addEventListener("resize", checkWidth);
if (!isInit) initSettings().then(() => setIsLoading(true));
else setIsLoading(true);
return () => window.removeEventListener("resize", checkWidth);
}, []);
useEffect(() => {
if (!isInit) return;
getSettings();
}, [isLoading]);
useEffect(() => {
@ -132,8 +133,10 @@ const IpSecurity = (props) => {
};
const onSaveClick = async () => {
setIsSaving(true);
const valid = ips.map((ip) => regexp.test(ip));
if (valid.includes(false)) {
setIsSaving(false);
return;
}
@ -150,6 +153,8 @@ const IpSecurity = (props) => {
} catch (error) {
toastr.error(error);
}
setIsSaving(false);
};
const onCancelClick = () => {
@ -222,6 +227,7 @@ const IpSecurity = (props) => {
cancelButtonLabel={t("Common:CancelButton")}
displaySettings={true}
hasScroll={false}
isSaving={isSaving}
/>
</MainContainer>
);
@ -235,7 +241,7 @@ export default inject(({ auth, setup }) => {
setIpRestrictions,
} = auth.settingsStore;
const { initSettings } = setup;
const { initSettings, isInit } = setup;
return {
ipRestrictionEnable,
@ -243,5 +249,6 @@ export default inject(({ auth, setup }) => {
ipRestrictions,
setIpRestrictions,
initSettings,
isInit,
};
})(withTranslation(["Settings", "Common"])(withRouter(observer(IpSecurity))));