diff --git a/frontend/sync-client/src/services/sync-service.ts b/frontend/sync-client/src/services/sync-service.ts index daf21a2..392a4d2 100644 --- a/frontend/sync-client/src/services/sync-service.ts +++ b/frontend/sync-client/src/services/sync-service.ts @@ -23,9 +23,15 @@ export class SyncService { private readonly settings: Settings, private readonly logger: Logger ) { - this.createClient(settings.getSettings()); + this.createClient(settings.getSettings().remoteUri); - settings.addOnSettingsChangeHandlers(this.createClient.bind(this)); + settings.addOnSettingsChangeHandlers((newSettings, oldSettings) => { + if (newSettings.remoteUri === oldSettings.remoteUri) { + return; + } + + this.createClient(newSettings.remoteUri); + }); } private static formatError( @@ -281,14 +287,14 @@ export class SyncService { return response.data; } - private createClient(settings: SyncSettings): void { + private createClient(remoteUri: string): void { this.client = createClient({ - baseUrl: settings.remoteUri, + baseUrl: remoteUri, fetch: retriedFetchFactory(this.logger) }); this.clientWithoutRetries = createClient({ - baseUrl: settings.remoteUri + baseUrl: remoteUri }); } } diff --git a/frontend/sync-client/src/sync-operations/syncer.ts b/frontend/sync-client/src/sync-operations/syncer.ts index 454ce5a..2ca399a 100644 --- a/frontend/sync-client/src/sync-operations/syncer.ts +++ b/frontend/sync-client/src/sync-operations/syncer.ts @@ -37,7 +37,10 @@ export class Syncer { concurrency: settings.getSettings().syncConcurrency }); - settings.addOnSettingsChangeHandlers((newSettings) => { + settings.addOnSettingsChangeHandlers((newSettings, oldSettings) => { + if (newSettings.syncConcurrency === oldSettings.syncConcurrency) { + return; + } this.syncQueue.concurrency = newSettings.syncConcurrency; });