aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/stores/settings.ts71
1 files changed, 36 insertions, 35 deletions
diff --git a/src/stores/settings.ts b/src/stores/settings.ts
index b3706b95..24d9eef0 100644
--- a/src/stores/settings.ts
+++ b/src/stores/settings.ts
@@ -197,42 +197,43 @@ settings.subscribe((value) => {
if (value.settingsSync && get(settingsSyncPulled) === true) {
fetch(root(`/api/configuration?id=${get(identity).id}`))
.then((response) => {
- if (response.ok)
- response.json().then((data) => {
- const isEqualsJson = (
- firstObject: Settings,
- secondObject: Settings,
- ) => {
- type AnyObject = { [key: string]: unknown };
-
- return (
- Object.keys(firstObject).length ===
- Object.keys(secondObject).length &&
- Object.keys(firstObject).every(
- (key) =>
- (firstObject as unknown as AnyObject)[key] ===
- (secondObject as unknown as AnyObject)[key],
- )
- );
- };
-
- if (data?.configuration && !isEqualsJson(data.configuration, value))
- fetch(root(`/api/configuration`), {
- method: "PUT",
- body: JSON.stringify(value),
+ if (!response.ok) return;
+
+ return response.json().then((data) => {
+ const isEqualsJson = (
+ firstObject: Settings,
+ secondObject: Settings,
+ ) => {
+ type AnyObject = { [key: string]: unknown };
+
+ return (
+ Object.keys(firstObject).length ===
+ Object.keys(secondObject).length &&
+ Object.keys(firstObject).every(
+ (key) =>
+ (firstObject as unknown as AnyObject)[key] ===
+ (secondObject as unknown as AnyObject)[key],
+ )
+ );
+ };
+
+ if (data?.configuration && !isEqualsJson(data.configuration, value))
+ fetch(root(`/api/configuration`), {
+ method: "PUT",
+ body: JSON.stringify(value),
+ })
+ .then((response) => {
+ if (response.ok) console.log("Pushed local configuration");
+
+ settingsSyncTimes.update((times) => ({
+ ...times,
+ lastPush: new Date(),
+ }));
})
- .then((response) => {
- if (response.ok) console.log("Pushed local configuration");
-
- settingsSyncTimes.update((times) => ({
- ...times,
- lastPush: new Date(),
- }));
- })
- .catch((error) =>
- console.error("Settings sync push failed", error),
- );
- });
+ .catch((error) =>
+ console.error("Settings sync push failed", error),
+ );
+ });
})
.catch((error) => console.error("Settings sync pull failed", error));
}