Skip to content

Commit b125f75

Browse files
fix changes
1 parent e9e8e76 commit b125f75

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

.changeset/fair-planes-walk.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@journeyapps/powersync-sdk-react-native': patch
3+
'@journeyapps/powersync-sdk-common': patch
4+
---
5+
6+
Use default timeout in post streaming warning message. Update connectivity status on streaming messages.

packages/powersync-sdk-common/src/client/sync/stream/AbstractStreamingSyncImplementation.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,13 @@ export abstract class AbstractStreamingSyncImplementation extends BaseObserver<S
5454

5555
private isUploadingCrud: boolean;
5656

57+
protected _isConnected: boolean;
58+
5759
constructor(options: AbstractStreamingSyncImplementationOptions) {
5860
super();
5961
this.options = { ...DEFAULT_STREAMING_SYNC_OPTIONS, ...options };
6062
this.isUploadingCrud = false;
63+
this._isConnected = false;
6164
}
6265

6366
get lastSyncedAt() {
@@ -68,6 +71,10 @@ export abstract class AbstractStreamingSyncImplementation extends BaseObserver<S
6871
return this.options.logger!;
6972
}
7073

74+
get isConnected() {
75+
return this._isConnected;
76+
}
77+
7178
abstract obtainLock<T>(lockOptions: LockOptions<T>): Promise<T>;
7279

7380
async hasCompletedSync() {
@@ -163,6 +170,9 @@ export abstract class AbstractStreamingSyncImplementation extends BaseObserver<S
163170
},
164171
signal
165172
)) {
173+
// A connection is active and messages are being received
174+
this.updateSyncStatus(true);
175+
166176
if (isStreamingSyncCheckpoint(line)) {
167177
targetCheckpoint = line.checkpoint;
168178
const bucketsToDelete = new Set<string>(bucketSet);
@@ -289,7 +299,11 @@ export abstract class AbstractStreamingSyncImplementation extends BaseObserver<S
289299
}
290300

291301
private updateSyncStatus(connected: boolean, lastSyncedAt?: Date) {
302+
const previousValues = [this._isConnected, this._lastSyncedAt?.valueOf()];
292303
this._lastSyncedAt = lastSyncedAt ?? this.lastSyncedAt;
293-
this.iterateListeners((cb) => cb.statusChanged?.(new SyncStatus(connected, this.lastSyncedAt)));
304+
this._isConnected = connected;
305+
if (!_.isEqual(previousValues, [this.isConnected, this._lastSyncedAt?.valueOf()])) {
306+
this.iterateListeners((cb) => cb.statusChanged?.(new SyncStatus(this.isConnected, this.lastSyncedAt)));
307+
}
294308
}
295309
}

packages/powersync-sdk-react-native/src/sync/stream/ReactNativeRemote.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ export class ReactNativeRemote extends AbstractRemote {
6565
Platform.OS == 'android'
6666
? setTimeout(() => {
6767
this.logger.warn(
68-
`HTTP Streaming POST is taking longer than 30 seconds to resolve. If using a debug build, please ensure Flipper Network plugin is disabled.`
68+
`HTTP Streaming POST is taking longer than ${Math.ceil(
69+
STREAMING_POST_TIMEOUT_MS / 1000
70+
)} seconds to resolve. If using a debug build, please ensure Flipper Network plugin is disabled.`
6971
);
7072
}, STREAMING_POST_TIMEOUT_MS)
7173
: null;

0 commit comments

Comments
 (0)