Web: Client: Settings: fix
This commit is contained in:
parent
8674260bcb
commit
9e611da373
@ -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))));
|
||||
|
Loading…
Reference in New Issue
Block a user