diff options
| -rw-r--r-- | src/stores/settings.ts | 71 |
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)); } |