jazz-tools 0.18.16 → 0.18.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.svelte-kit/__package__/jazz.class.svelte.d.ts +14 -0
- package/.svelte-kit/__package__/jazz.class.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/jazz.class.svelte.js +37 -0
- package/.svelte-kit/__package__/media/image.svelte +104 -98
- package/.svelte-kit/__package__/media/image.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/testing.d.ts +1 -1
- package/.svelte-kit/__package__/testing.d.ts.map +1 -1
- package/.svelte-kit/__package__/testing.js +1 -1
- package/.svelte-kit/__package__/tests/TestConnectionStatus.svelte +8 -0
- package/.svelte-kit/__package__/tests/TestConnectionStatus.svelte.d.ts +27 -0
- package/.svelte-kit/__package__/tests/TestConnectionStatus.svelte.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/media/image.svelte.test.js +16 -2
- package/.svelte-kit/__package__/tests/sync-connection-status.svelte.test.d.ts +2 -0
- package/.svelte-kit/__package__/tests/sync-connection-status.svelte.test.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/sync-connection-status.svelte.test.js +47 -0
- package/.turbo/turbo-build.log +52 -52
- package/CHANGELOG.md +27 -0
- package/dist/browser/BrowserContextManager.d.ts +4 -0
- package/dist/browser/BrowserContextManager.d.ts.map +1 -1
- package/dist/browser/createBrowserContext.d.ts +4 -0
- package/dist/browser/createBrowserContext.d.ts.map +1 -1
- package/dist/browser/index.js +36 -4
- package/dist/browser/index.js.map +1 -1
- package/dist/{chunk-GRN6OAUX.js → chunk-FHRKDKDY.js} +80 -6
- package/dist/chunk-FHRKDKDY.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/react/hooks.d.ts +1 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +6 -2
- package/dist/react/index.js.map +1 -1
- package/dist/react/media/image.d.ts.map +1 -1
- package/dist/react-core/hooks.d.ts +26 -0
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +16 -1
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-core/testing.d.ts +1 -1
- package/dist/react-core/testing.d.ts.map +1 -1
- package/dist/react-core/testing.js +3 -1
- package/dist/react-core/testing.js.map +1 -1
- package/dist/react-core/tests/useSyncConnectionStatus.test.d.ts +2 -0
- package/dist/react-core/tests/useSyncConnectionStatus.test.d.ts.map +1 -0
- package/dist/react-native-core/ReactNativeContextManager.d.ts +4 -0
- package/dist/react-native-core/ReactNativeContextManager.d.ts.map +1 -1
- package/dist/react-native-core/hooks.d.ts +1 -1
- package/dist/react-native-core/hooks.d.ts.map +1 -1
- package/dist/react-native-core/index.js +41 -7
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/react-native-core/media/image.d.ts.map +1 -1
- package/dist/react-native-core/platform.d.ts +4 -0
- package/dist/react-native-core/platform.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.d.ts +14 -0
- package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +37 -0
- package/dist/svelte/media/image.svelte +104 -98
- package/dist/svelte/media/image.svelte.d.ts.map +1 -1
- package/dist/svelte/testing.d.ts +1 -1
- package/dist/svelte/testing.d.ts.map +1 -1
- package/dist/svelte/testing.js +1 -1
- package/dist/svelte/tests/TestConnectionStatus.svelte +8 -0
- package/dist/svelte/tests/TestConnectionStatus.svelte.d.ts +27 -0
- package/dist/svelte/tests/TestConnectionStatus.svelte.d.ts.map +1 -0
- package/dist/svelte/tests/media/image.svelte.test.js +16 -2
- package/dist/svelte/tests/sync-connection-status.svelte.test.d.ts +2 -0
- package/dist/svelte/tests/sync-connection-status.svelte.test.d.ts.map +1 -0
- package/dist/svelte/tests/sync-connection-status.svelte.test.js +47 -0
- package/dist/testing.js +34 -4
- package/dist/testing.js.map +1 -1
- package/dist/tools/implementation/ContextManager.d.ts +4 -0
- package/dist/tools/implementation/ContextManager.d.ts.map +1 -1
- package/dist/tools/implementation/refs.d.ts +1 -1
- package/dist/tools/implementation/refs.d.ts.map +1 -1
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +4 -0
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
- package/dist/tools/subscribe/SubscriptionScope.d.ts +7 -0
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/index.d.ts.map +1 -1
- package/dist/tools/testing.d.ts +8 -0
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/types.d.ts +4 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/browser/createBrowserContext.ts +34 -4
- package/src/react/hooks.tsx +1 -0
- package/src/react/index.ts +1 -0
- package/src/react/media/image.tsx +2 -0
- package/src/react/tests/media/image.test.tsx +20 -2
- package/src/react-core/hooks.ts +42 -0
- package/src/react-core/testing.tsx +1 -0
- package/src/react-core/tests/useAccountWithSelector.test.ts +98 -2
- package/src/react-core/tests/useSyncConnectionStatus.test.ts +48 -0
- package/src/react-native-core/hooks.tsx +1 -0
- package/src/react-native-core/media/image.tsx +4 -1
- package/src/react-native-core/platform.ts +32 -4
- package/src/svelte/jazz.class.svelte.ts +44 -0
- package/src/svelte/media/image.svelte +104 -98
- package/src/svelte/testing.ts +1 -0
- package/src/svelte/tests/TestConnectionStatus.svelte +8 -0
- package/src/svelte/tests/media/image.svelte.test.ts +18 -2
- package/src/svelte/tests/sync-connection-status.svelte.test.ts +61 -0
- package/src/tools/implementation/ContextManager.ts +8 -0
- package/src/tools/implementation/refs.ts +27 -3
- package/src/tools/subscribe/CoValueCoreSubscription.ts +14 -0
- package/src/tools/subscribe/SubscriptionScope.ts +67 -2
- package/src/tools/subscribe/index.ts +8 -0
- package/src/tools/testing.ts +29 -0
- package/src/tools/tests/ContextManager.test.ts +2 -2
- package/src/tools/tests/coMap.test.ts +42 -0
- package/src/tools/tests/subscribe.test.ts +1 -4
- package/src/tools/types.ts +4 -0
- package/dist/chunk-GRN6OAUX.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ContextManager.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/ContextManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAmB,MAAM,QAAQ,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAkB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,aAAa,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,GAAG,SAAS,OAAO,IAAI;IAC7D,2BAA2B,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,CAAC;AAEF,KAAK,2BAA2B,CAAC,GAAG,SAAS,OAAO,IAAI;IACtD,EAAE,EAAE,GAAG,CAAC;IACR,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"ContextManager.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/ContextManager.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { type Account } from "../coValues/account.js";
|
2
|
-
import
|
2
|
+
import { AnonymousJazzAgent, CoValue, ID, RefEncoded } from "../internal.js";
|
3
3
|
export declare class Ref<out V extends CoValue> {
|
4
4
|
readonly id: ID<V>;
|
5
5
|
readonly controlledAccount: Account | AnonymousJazzAgent;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,
|
1
|
+
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,OAAO,EACP,EAAE,EACF,UAAU,EAEX,MAAM,gBAAgB,CAAC;AAOxB,qBAAa,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO;IAElC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,GAAG,kBAAkB;IACxD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAHf,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACT,iBAAiB,EAAE,OAAO,GAAG,kBAAkB,EAC/C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,OAAO;IAOpB,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwD/B,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAEhC;CACF;AAED,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACnD,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,SAAS,EACnD,cAAc,EAAE,MAAM,IAAI,EAAE,EAC5B,iBAAiB,EAAE,OAAO,GAAG,kBAAkB,EAC/C,eAAe,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,UAAU,CAAC,OAAO,CAAC,GAClD;KAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;CAAE,GAAG;IACjC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB,CAgDA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,OAAO,GACxD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACnB,KAAK,CAAC"}
|
@@ -16,6 +16,10 @@ export declare class CoValueCoreSubscription {
|
|
16
16
|
private listener;
|
17
17
|
private skipRetry?;
|
18
18
|
constructor(localNode: LocalNode, id: string, listener: (value: RawCoValue | "unavailable") => void, skipRetry?: boolean, branch?: BranchDefinition);
|
19
|
+
/**
|
20
|
+
* Rehydrates the subscription by resetting the unsubscribed flag and initializing the subscription again
|
21
|
+
*/
|
22
|
+
pullValue(): void;
|
19
23
|
/**
|
20
24
|
* Main entry point for subscription initialization.
|
21
25
|
* Determines the subscription strategy based on current availability and branch requirements.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CoValueCoreSubscription.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/CoValueCoreSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAET,UAAU,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,SAAS,CAAC,CAAU;gBAG1B,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,EACrD,SAAS,CAAC,EAAE,OAAO,EACnB,MAAM,CAAC,EAAE,gBAAgB;IAY3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IA6BpC;;;OAGG;IACH,OAAO,CAAC,SAAS;IASjB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAM7C;;;OAGG;IACH,WAAW,IAAI,IAAI;CAKpB"}
|
1
|
+
{"version":3,"file":"CoValueCoreSubscription.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/CoValueCoreSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAET,UAAU,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,SAAS,CAAC,CAAU;gBAG1B,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,EACrD,SAAS,CAAC,EAAE,OAAO,EACnB,MAAM,CAAC,EAAE,gBAAgB;IAY3B;;OAEG;IACH,SAAS;IAWT;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IA6BpC;;;OAGG;IACH,OAAO,CAAC,SAAS;IASjB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAM7C;;;OAGG;IACH,WAAW,IAAI,IAAI;CAKpB"}
|
@@ -34,6 +34,7 @@ export declare class SubscriptionScope<D extends CoValue> {
|
|
34
34
|
totalValidTransactions: number;
|
35
35
|
migrated: boolean;
|
36
36
|
migrating: boolean;
|
37
|
+
closed: boolean;
|
37
38
|
silenceUpdates: boolean;
|
38
39
|
constructor(node: LocalNode, resolve: RefsToResolve<D>, id: ID<D>, schema: RefEncoded<D>, skipRetry?: boolean, bestEffortResolution?: boolean, unstable_branch?: BranchDefinition | undefined);
|
39
40
|
updateValue(value: SubscriptionValue<D, any>): void;
|
@@ -50,6 +51,12 @@ export declare class SubscriptionScope<D extends CoValue> {
|
|
50
51
|
setListener(listener: (value: SubscriptionValue<D, any>) => void): void;
|
51
52
|
subscribeToKey(key: string): void;
|
52
53
|
isSubscribedToId(id: string): boolean;
|
54
|
+
/**
|
55
|
+
* Checks if the currently unloaded value has got some updates
|
56
|
+
*
|
57
|
+
* Used to make the autoload work on closed subscription scopes
|
58
|
+
*/
|
59
|
+
pullValue(listener: (value: SubscriptionValue<D, any>) => void): void;
|
53
60
|
subscribeToId(id: string, descriptor: RefEncoded<any>): void;
|
54
61
|
loadChildren(): boolean;
|
55
62
|
loadCoMapKey(map: CoMap, key: string, depth: Record<string, any> | true): string | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAEL,MAAM,EACN,KAAK,EACL,KAAK,OAAO,EACZ,KAAK,EAAE,EACP,KAAK,UAAU,EACf,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGhF,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO;
|
1
|
+
{"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,qDA0B/D;AAED,yBAAyB;AAEzB;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,OAqBZ;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAC/C,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,OAa5B"}
|
package/dist/tools/testing.d.ts
CHANGED
@@ -25,6 +25,12 @@ export declare function runWithoutActiveAccount<Result>(callback: () => Result):
|
|
25
25
|
export declare function createJazzTestGuest(): Promise<{
|
26
26
|
guest: AnonymousJazzAgent;
|
27
27
|
}>;
|
28
|
+
export declare class MockConnectionStatus {
|
29
|
+
static connected: boolean;
|
30
|
+
static connectionListeners: Set<(isConnected: boolean) => void>;
|
31
|
+
static setIsConnected(isConnected: boolean): void;
|
32
|
+
static addConnectionListener(listener: (isConnected: boolean) => void): () => void;
|
33
|
+
}
|
28
34
|
export type TestJazzContextManagerProps<Acc extends Account> = JazzContextManagerBaseProps<Acc> & {
|
29
35
|
defaultProfileName?: string;
|
30
36
|
AccountSchema?: AccountClass<Acc> & CoValueFromRaw<Acc>;
|
@@ -47,6 +53,8 @@ export declare class TestJazzContextManager<Acc extends Account> extends JazzCon
|
|
47
53
|
node: LocalNode;
|
48
54
|
done: () => void;
|
49
55
|
logOut: () => Promise<void>;
|
56
|
+
addConnectionListener: (listener: (isConnected: boolean) => void) => () => void;
|
57
|
+
connected: () => boolean;
|
50
58
|
}>;
|
51
59
|
}
|
52
60
|
export declare function linkAccounts(a: Account, b: Account, aRole?: "server" | "client", bRole?: "server" | "client"): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,kBAAkB,EAEvB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAM5B,MAAM,eAAe,CAAC;AAOvB,qBAAa,YAAa,SAAQ,YAAY;WAC/B,MAAM;CAoBpB;AAED,wBAAgB,gCAAgC,0BAiC/C;AAKD,wBAAsB,qBAAqB,CACzC,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,iBAAiB,EACrB,OAAO,CAAC,EAAE;IACV,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuD/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,QAAQ,EAAE,MAAM,MAAM,GACrB,MAAM,CAcR;AAED,wBAAsB,mBAAmB;;GASxC;AAED,MAAM,MAAM,2BAA2B,CAAC,GAAG,SAAS,OAAO,IACzD,2BAA2B,CAAC,GAAG,CAAC,GAAG;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,qBAAa,sBAAsB,CACjC,GAAG,SAAS,OAAO,CACnB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,OAAO,EAC3C,OAAO,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EAC7C,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAS1C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,OAAO,EACpC,OAAO,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/types.d.ts
CHANGED
@@ -19,6 +19,8 @@ export type JazzAuthContext<Acc extends Account> = {
|
|
19
19
|
logOut: () => Promise<void>;
|
20
20
|
done: () => void;
|
21
21
|
isAuthenticated?: boolean;
|
22
|
+
addConnectionListener: (listener: (connected: boolean) => void) => () => void;
|
23
|
+
connected: () => boolean;
|
22
24
|
};
|
23
25
|
export type JazzGuestContext = {
|
24
26
|
guest: AnonymousJazzAgent;
|
@@ -28,6 +30,8 @@ export type JazzGuestContext = {
|
|
28
30
|
logOut: () => void;
|
29
31
|
done: () => void;
|
30
32
|
isAuthenticated?: boolean;
|
33
|
+
addConnectionListener: (listener: (connected: boolean) => void) => () => void;
|
34
|
+
connected: () => boolean;
|
31
35
|
};
|
32
36
|
export type JazzContextType<Acc extends Account> = JazzAuthContext<Acc> | JazzGuestContext;
|
33
37
|
export type NewAccountProps = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;CAC/E,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CACxC,WAAW,EAAE,eAAe,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,uBAAuB,GAAG,CACpC,aAAa,EAAE,WAAW,EAC1B,aAAa,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAC5B,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1B,iCAAiC;AACjC,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,OAAO,IAAI;IACjD,EAAE,EAAE,GAAG,CAAC;IACR,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;CAC/E,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CACxC,WAAW,EAAE,eAAe,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,uBAAuB,GAAG,CACpC,aAAa,EAAE,WAAW,EAC1B,aAAa,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAC5B,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1B,iCAAiC;AACjC,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,OAAO,IAAI;IACjD,EAAE,EAAE,GAAG,CAAC;IACR,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC9E,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC9E,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,OAAO,IAC3C,eAAe,CAAC,GAAG,CAAC,GACpB,gBAAgB,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC9B,GACD;IACE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,CAAC;IAC5C,IAAI,EAAE,OAAO,CAAC;CACf,CAAC"}
|
package/package.json
CHANGED
@@ -177,7 +177,7 @@
|
|
177
177
|
},
|
178
178
|
"type": "module",
|
179
179
|
"license": "MIT",
|
180
|
-
"version": "0.18.
|
180
|
+
"version": "0.18.18",
|
181
181
|
"dependencies": {
|
182
182
|
"@manuscripts/prosemirror-recreate-steps": "^0.1.4",
|
183
183
|
"@scure/base": "1.2.1",
|
@@ -194,9 +194,9 @@
|
|
194
194
|
"prosemirror-transform": "^1.9.0",
|
195
195
|
"use-sync-external-store": "^1.5.0",
|
196
196
|
"zod": "3.25.76",
|
197
|
-
"cojson": "0.18.
|
198
|
-
"cojson-storage-indexeddb": "0.18.
|
199
|
-
"cojson-transport-ws": "0.18.
|
197
|
+
"cojson": "0.18.18",
|
198
|
+
"cojson-storage-indexeddb": "0.18.18",
|
199
|
+
"cojson-transport-ws": "0.18.18"
|
200
200
|
},
|
201
201
|
"devDependencies": {
|
202
202
|
"@scure/bip39": "^1.3.0",
|
@@ -59,6 +59,8 @@ async function setupPeers(options: BaseBrowserContextOptions) {
|
|
59
59
|
|
60
60
|
if (options.sync.when === "never") {
|
61
61
|
return {
|
62
|
+
addConnectionListener: () => () => {},
|
63
|
+
connected: () => false,
|
62
64
|
toggleNetwork: () => {},
|
63
65
|
peersToLoadFrom,
|
64
66
|
storage,
|
@@ -100,6 +102,16 @@ async function setupPeers(options: BaseBrowserContextOptions) {
|
|
100
102
|
|
101
103
|
return {
|
102
104
|
toggleNetwork,
|
105
|
+
addConnectionListener(listener: (connected: boolean) => void) {
|
106
|
+
wsPeer.subscribe(listener);
|
107
|
+
|
108
|
+
return () => {
|
109
|
+
wsPeer.unsubscribe(listener);
|
110
|
+
};
|
111
|
+
},
|
112
|
+
connected() {
|
113
|
+
return wsPeer.connected;
|
114
|
+
},
|
103
115
|
peersToLoadFrom,
|
104
116
|
storage,
|
105
117
|
setNode,
|
@@ -110,8 +122,15 @@ async function setupPeers(options: BaseBrowserContextOptions) {
|
|
110
122
|
export async function createJazzBrowserGuestContext(
|
111
123
|
options: BaseBrowserContextOptions,
|
112
124
|
) {
|
113
|
-
const {
|
114
|
-
|
125
|
+
const {
|
126
|
+
toggleNetwork,
|
127
|
+
peersToLoadFrom,
|
128
|
+
setNode,
|
129
|
+
crypto,
|
130
|
+
storage,
|
131
|
+
addConnectionListener,
|
132
|
+
connected,
|
133
|
+
} = await setupPeers(options);
|
115
134
|
|
116
135
|
const context = await createAnonymousJazzContext({
|
117
136
|
crypto,
|
@@ -134,6 +153,8 @@ export async function createJazzBrowserGuestContext(
|
|
134
153
|
logOut: () => {
|
135
154
|
return context.logOut();
|
136
155
|
},
|
156
|
+
addConnectionListener,
|
157
|
+
connected,
|
137
158
|
};
|
138
159
|
}
|
139
160
|
|
@@ -153,8 +174,15 @@ export async function createJazzBrowserContext<
|
|
153
174
|
| (AccountClass<Account> & CoValueFromRaw<Account>)
|
154
175
|
| AnyAccountSchema,
|
155
176
|
>(options: BrowserContextOptions<S>) {
|
156
|
-
const {
|
157
|
-
|
177
|
+
const {
|
178
|
+
toggleNetwork,
|
179
|
+
peersToLoadFrom,
|
180
|
+
setNode,
|
181
|
+
crypto,
|
182
|
+
storage,
|
183
|
+
addConnectionListener,
|
184
|
+
connected,
|
185
|
+
} = await setupPeers(options);
|
158
186
|
|
159
187
|
let unsubscribeAuthUpdate = () => {};
|
160
188
|
|
@@ -202,6 +230,8 @@ export async function createJazzBrowserContext<
|
|
202
230
|
unsubscribeAuthUpdate();
|
203
231
|
return context.logOut();
|
204
232
|
},
|
233
|
+
addConnectionListener,
|
234
|
+
connected,
|
205
235
|
};
|
206
236
|
}
|
207
237
|
|
package/src/react/hooks.tsx
CHANGED
package/src/react/index.ts
CHANGED
@@ -140,6 +140,8 @@ export const Image = forwardRef<HTMLImageElement, ImageProps>(function Image(
|
|
140
140
|
return lazyPlaceholder;
|
141
141
|
}
|
142
142
|
|
143
|
+
if (image === undefined)
|
144
|
+
return "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
|
143
145
|
if (!image) return undefined;
|
144
146
|
|
145
147
|
const bestImage = highestResAvailable(
|
@@ -13,17 +13,35 @@ describe("Image", async () => {
|
|
13
13
|
vi.spyOn(Account, "getMe").mockReturnValue(account);
|
14
14
|
|
15
15
|
describe("initial rendering", () => {
|
16
|
-
it("should render
|
16
|
+
it("should render a blank placeholder while waiting for the coValue to load", async () => {
|
17
17
|
const { container } = render(
|
18
18
|
<Image imageId="co_zMTubMby3QiKDYnW9e2BEXW7Xaq" alt="test" />,
|
19
19
|
{ account },
|
20
20
|
);
|
21
|
+
|
21
22
|
const img = container.querySelector("img");
|
22
23
|
expect(img).toBeDefined();
|
23
24
|
expect(img!.getAttribute("width")).toBe(null);
|
24
25
|
expect(img!.getAttribute("height")).toBe(null);
|
25
26
|
expect(img!.alt).toBe("test");
|
26
|
-
expect(img!.src).toBe(
|
27
|
+
expect(img!.src).toBe(
|
28
|
+
"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
|
29
|
+
);
|
30
|
+
});
|
31
|
+
|
32
|
+
it("should render nothing if coValue is not found", async () => {
|
33
|
+
const { container } = render(
|
34
|
+
<Image imageId="co_zMTubMby3QiKDYnW9e2BEXW7Xaq" alt="test" />,
|
35
|
+
{ account },
|
36
|
+
);
|
37
|
+
await waitFor(() => {
|
38
|
+
const img = container.querySelector("img");
|
39
|
+
expect(img).toBeDefined();
|
40
|
+
expect(img!.getAttribute("width")).toBe(null);
|
41
|
+
expect(img!.getAttribute("height")).toBe(null);
|
42
|
+
expect(img!.alt).toBe("test");
|
43
|
+
expect(img!.src).toBe("");
|
44
|
+
});
|
27
45
|
});
|
28
46
|
|
29
47
|
it("should render an empty image if the image is not loaded yet", async () => {
|
package/src/react-core/hooks.ts
CHANGED
@@ -719,6 +719,22 @@ export function useAccountWithSelector<
|
|
719
719
|
select: (account: Loaded<A, R> | undefined | null) => TSelectorReturn;
|
720
720
|
/** Equality function to determine if the selected value has changed, defaults to `Object.is` */
|
721
721
|
equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;
|
722
|
+
/**
|
723
|
+
* Create or load a branch for isolated editing.
|
724
|
+
*
|
725
|
+
* Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.
|
726
|
+
* It's a fork of your data graph: the same schema, but with diverging values.
|
727
|
+
*
|
728
|
+
* The checkout of the branch is applied on all the resolved values.
|
729
|
+
*
|
730
|
+
* @param name - A unique name for the branch. This identifies the branch
|
731
|
+
* and can be used to switch between different branches of the same CoValue.
|
732
|
+
* @param owner - The owner of the branch. Determines who can access and modify
|
733
|
+
* the branch. If not provided, the branch is owned by the current user.
|
734
|
+
*
|
735
|
+
* For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.
|
736
|
+
*/
|
737
|
+
unstable_branch?: BranchDefinition;
|
722
738
|
},
|
723
739
|
): TSelectorReturn {
|
724
740
|
const subscription = useAccountSubscription(AccountSchema, options);
|
@@ -783,3 +799,29 @@ export function experimental_useInboxSender<
|
|
783
799
|
|
784
800
|
return sendMessage;
|
785
801
|
}
|
802
|
+
|
803
|
+
/**
|
804
|
+
* Hook that returns the current connection status to the Jazz sync server.
|
805
|
+
*
|
806
|
+
* @returns `true` when connected to the server, `false` when disconnected
|
807
|
+
*
|
808
|
+
* @remarks
|
809
|
+
* On connection drop, this hook will return `false` only when Jazz detects the disconnection
|
810
|
+
* after 5 seconds of not receiving a ping from the server.
|
811
|
+
*/
|
812
|
+
export function useSyncConnectionStatus() {
|
813
|
+
const context = useJazzContext();
|
814
|
+
|
815
|
+
const connected = useSyncExternalStore(
|
816
|
+
useCallback(
|
817
|
+
(callback) => {
|
818
|
+
return context.addConnectionListener(callback);
|
819
|
+
},
|
820
|
+
[context],
|
821
|
+
),
|
822
|
+
() => context.connected(),
|
823
|
+
() => context.connected(),
|
824
|
+
);
|
825
|
+
|
826
|
+
return connected;
|
827
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// @vitest-environment happy-dom
|
2
2
|
|
3
|
-
import { Account, RefsToResolve, co, z } from "jazz-tools";
|
4
|
-
import { beforeEach, describe, expect, it } from "vitest";
|
3
|
+
import { Account, RefsToResolve, co, z, Group } from "jazz-tools";
|
4
|
+
import { assert, beforeEach, describe, expect, it } from "vitest";
|
5
5
|
import { useAccountWithSelector, useJazzContextManager } from "../hooks.js";
|
6
6
|
import { useIsAuthenticated } from "../index.js";
|
7
7
|
import {
|
@@ -408,4 +408,100 @@ describe("useAccountWithSelector", () => {
|
|
408
408
|
|
409
409
|
expect(result.current.result).toEqual("initial-suffix2");
|
410
410
|
});
|
411
|
+
|
412
|
+
it("should work with branches - create branch, edit and merge", async () => {
|
413
|
+
const AccountRoot = co.map({
|
414
|
+
name: z.string(),
|
415
|
+
age: z.number(),
|
416
|
+
email: z.string(),
|
417
|
+
});
|
418
|
+
|
419
|
+
const AccountSchema = co
|
420
|
+
.account({
|
421
|
+
root: AccountRoot,
|
422
|
+
profile: co.profile(),
|
423
|
+
})
|
424
|
+
.withMigration((account, creationProps) => {
|
425
|
+
if (!account.$jazz.refs.root) {
|
426
|
+
account.$jazz.set("root", {
|
427
|
+
name: "John Doe",
|
428
|
+
age: 30,
|
429
|
+
email: "john@example.com",
|
430
|
+
});
|
431
|
+
}
|
432
|
+
});
|
433
|
+
|
434
|
+
const account = await createJazzTestAccount({
|
435
|
+
AccountSchema,
|
436
|
+
isCurrentActiveAccount: true,
|
437
|
+
});
|
438
|
+
|
439
|
+
const group = Group.create();
|
440
|
+
group.addMember("everyone", "writer");
|
441
|
+
const { result } = renderHook(
|
442
|
+
() => {
|
443
|
+
const branchAccountRoot = useAccountWithSelector(AccountSchema, {
|
444
|
+
resolve: {
|
445
|
+
root: true,
|
446
|
+
},
|
447
|
+
select: (account) => account?.root,
|
448
|
+
unstable_branch: { name: "feature-branch" },
|
449
|
+
});
|
450
|
+
|
451
|
+
const mainAccountRoot = useAccountWithSelector(AccountSchema, {
|
452
|
+
resolve: {
|
453
|
+
root: true,
|
454
|
+
},
|
455
|
+
select: (account) => account?.root,
|
456
|
+
});
|
457
|
+
|
458
|
+
return {
|
459
|
+
branchAccountRoot,
|
460
|
+
mainAccountRoot,
|
461
|
+
};
|
462
|
+
},
|
463
|
+
{
|
464
|
+
account,
|
465
|
+
},
|
466
|
+
);
|
467
|
+
|
468
|
+
await act(async () => {
|
469
|
+
// Wait for the account to be loaded
|
470
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
471
|
+
});
|
472
|
+
|
473
|
+
expect(result.current).not.toBeNull();
|
474
|
+
|
475
|
+
const branchAccountRoot = result.current.branchAccountRoot;
|
476
|
+
const mainAccountRoot = result.current.mainAccountRoot;
|
477
|
+
|
478
|
+
assert(branchAccountRoot);
|
479
|
+
assert(mainAccountRoot);
|
480
|
+
|
481
|
+
act(() => {
|
482
|
+
branchAccountRoot.$jazz.applyDiff({
|
483
|
+
name: "John Smith",
|
484
|
+
age: 31,
|
485
|
+
email: "john.smith@example.com",
|
486
|
+
});
|
487
|
+
});
|
488
|
+
|
489
|
+
// Verify the branch has the changes
|
490
|
+
expect(branchAccountRoot.name).toBe("John Smith");
|
491
|
+
expect(branchAccountRoot.age).toBe(31);
|
492
|
+
expect(branchAccountRoot.email).toBe("john.smith@example.com");
|
493
|
+
|
494
|
+
// Verify the original is unchanged
|
495
|
+
expect(mainAccountRoot.name).toBe("John Doe");
|
496
|
+
expect(mainAccountRoot.age).toBe(30);
|
497
|
+
expect(mainAccountRoot.email).toBe("john@example.com");
|
498
|
+
|
499
|
+
// Merge the branch back
|
500
|
+
branchAccountRoot.$jazz.unstable_merge();
|
501
|
+
|
502
|
+
// Verify the original now has the merged changes
|
503
|
+
expect(mainAccountRoot.name).toBe("John Smith");
|
504
|
+
expect(mainAccountRoot.age).toBe(31);
|
505
|
+
expect(mainAccountRoot.email).toBe("john.smith@example.com");
|
506
|
+
});
|
411
507
|
});
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// @vitest-environment happy-dom
|
2
|
+
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
4
|
+
import { useSyncConnectionStatus } from "../hooks";
|
5
|
+
import {
|
6
|
+
createJazzTestAccount,
|
7
|
+
setupJazzTestSync,
|
8
|
+
MockConnectionStatus,
|
9
|
+
} from "../testing";
|
10
|
+
import { act, cleanup, renderHook } from "./testUtils";
|
11
|
+
|
12
|
+
describe("useSyncConnectionStatus", () => {
|
13
|
+
beforeEach(async () => {
|
14
|
+
await setupJazzTestSync();
|
15
|
+
await createJazzTestAccount({
|
16
|
+
isCurrentActiveAccount: true,
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
20
|
+
afterEach(() => {
|
21
|
+
vi.clearAllMocks();
|
22
|
+
cleanup();
|
23
|
+
});
|
24
|
+
|
25
|
+
it("should return true by default in the test environment", () => {
|
26
|
+
const { result } = renderHook(() => useSyncConnectionStatus());
|
27
|
+
|
28
|
+
expect(result.current).toBe(true);
|
29
|
+
});
|
30
|
+
|
31
|
+
it("should handle updates", async () => {
|
32
|
+
const { result } = renderHook(() => useSyncConnectionStatus());
|
33
|
+
|
34
|
+
expect(result.current).toBe(true);
|
35
|
+
|
36
|
+
act(() => {
|
37
|
+
MockConnectionStatus.setIsConnected(false);
|
38
|
+
});
|
39
|
+
|
40
|
+
expect(result.current).toBe(false);
|
41
|
+
|
42
|
+
act(() => {
|
43
|
+
MockConnectionStatus.setIsConnected(true);
|
44
|
+
});
|
45
|
+
|
46
|
+
expect(result.current).toBe(true);
|
47
|
+
});
|
48
|
+
});
|
@@ -69,7 +69,10 @@ export const Image = forwardRef<RNImage, ImageProps>(function Image(
|
|
69
69
|
ref,
|
70
70
|
) {
|
71
71
|
const image = useCoState(ImageDefinition, imageId);
|
72
|
-
const [src, setSrc] = useState<string | undefined>(
|
72
|
+
const [src, setSrc] = useState<string | undefined>(
|
73
|
+
image?.placeholderDataURL ??
|
74
|
+
"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
|
75
|
+
);
|
73
76
|
|
74
77
|
const dimensions: { width: number | undefined; height: number | undefined } =
|
75
78
|
useMemo(() => {
|
@@ -56,6 +56,8 @@ async function setupPeers(options: BaseReactNativeContextOptions) {
|
|
56
56
|
if (options.sync.when === "never") {
|
57
57
|
return {
|
58
58
|
toggleNetwork: () => {},
|
59
|
+
addConnectionListener: () => () => {},
|
60
|
+
connected: () => false,
|
59
61
|
peersToLoadFrom,
|
60
62
|
setNode: () => {},
|
61
63
|
crypto,
|
@@ -96,6 +98,14 @@ async function setupPeers(options: BaseReactNativeContextOptions) {
|
|
96
98
|
|
97
99
|
return {
|
98
100
|
toggleNetwork,
|
101
|
+
addConnectionListener(listener: (connected: boolean) => void) {
|
102
|
+
wsPeer.subscribe(listener);
|
103
|
+
|
104
|
+
return () => {
|
105
|
+
wsPeer.unsubscribe(listener);
|
106
|
+
};
|
107
|
+
},
|
108
|
+
connected: () => wsPeer.connected,
|
99
109
|
peersToLoadFrom,
|
100
110
|
setNode,
|
101
111
|
crypto,
|
@@ -106,8 +116,15 @@ async function setupPeers(options: BaseReactNativeContextOptions) {
|
|
106
116
|
export async function createJazzReactNativeGuestContext(
|
107
117
|
options: BaseReactNativeContextOptions,
|
108
118
|
) {
|
109
|
-
const {
|
110
|
-
|
119
|
+
const {
|
120
|
+
toggleNetwork,
|
121
|
+
peersToLoadFrom,
|
122
|
+
setNode,
|
123
|
+
crypto,
|
124
|
+
storage,
|
125
|
+
addConnectionListener,
|
126
|
+
connected,
|
127
|
+
} = await setupPeers(options);
|
111
128
|
|
112
129
|
const context = createAnonymousJazzContext({
|
113
130
|
crypto,
|
@@ -130,6 +147,8 @@ export async function createJazzReactNativeGuestContext(
|
|
130
147
|
logOut: () => {
|
131
148
|
return context.logOut();
|
132
149
|
},
|
150
|
+
addConnectionListener,
|
151
|
+
connected,
|
133
152
|
};
|
134
153
|
}
|
135
154
|
|
@@ -149,8 +168,15 @@ export async function createJazzReactNativeContext<
|
|
149
168
|
| (AccountClass<Account> & CoValueFromRaw<Account>)
|
150
169
|
| AnyAccountSchema,
|
151
170
|
>(options: ReactNativeContextOptions<S>) {
|
152
|
-
const {
|
153
|
-
|
171
|
+
const {
|
172
|
+
toggleNetwork,
|
173
|
+
peersToLoadFrom,
|
174
|
+
setNode,
|
175
|
+
crypto,
|
176
|
+
storage,
|
177
|
+
addConnectionListener,
|
178
|
+
connected,
|
179
|
+
} = await setupPeers(options);
|
154
180
|
|
155
181
|
let unsubscribeAuthUpdate = () => {};
|
156
182
|
|
@@ -201,6 +227,8 @@ export async function createJazzReactNativeContext<
|
|
201
227
|
unsubscribeAuthUpdate();
|
202
228
|
return context.logOut();
|
203
229
|
},
|
230
|
+
addConnectionListener,
|
231
|
+
connected,
|
204
232
|
};
|
205
233
|
}
|
206
234
|
|