@microsoft/live-share-react 1.2.1-preview.0 → 1.3.0-preview.0

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.
Files changed (80) hide show
  1. package/bin/internal/errors.d.ts.map +1 -1
  2. package/bin/internal/errors.js +7 -4
  3. package/bin/internal/errors.js.map +1 -1
  4. package/bin/internal/index.d.ts +0 -1
  5. package/bin/internal/index.d.ts.map +1 -1
  6. package/bin/internal/index.js +0 -1
  7. package/bin/internal/index.js.map +1 -1
  8. package/bin/live-hooks/useLiveCanvas.d.ts +1 -0
  9. package/bin/live-hooks/useLiveCanvas.d.ts.map +1 -1
  10. package/bin/live-hooks/useLiveCanvas.js +1 -0
  11. package/bin/live-hooks/useLiveCanvas.js.map +1 -1
  12. package/bin/live-hooks/useLiveEvent.d.ts +1 -0
  13. package/bin/live-hooks/useLiveEvent.d.ts.map +1 -1
  14. package/bin/live-hooks/useLiveEvent.js +1 -0
  15. package/bin/live-hooks/useLiveEvent.js.map +1 -1
  16. package/bin/live-hooks/useLiveFollowMode.d.ts +1 -0
  17. package/bin/live-hooks/useLiveFollowMode.d.ts.map +1 -1
  18. package/bin/live-hooks/useLiveFollowMode.js +7 -6
  19. package/bin/live-hooks/useLiveFollowMode.js.map +1 -1
  20. package/bin/live-hooks/useLivePresence.d.ts +1 -0
  21. package/bin/live-hooks/useLivePresence.d.ts.map +1 -1
  22. package/bin/live-hooks/useLivePresence.js +1 -0
  23. package/bin/live-hooks/useLivePresence.js.map +1 -1
  24. package/bin/live-hooks/useLiveState.d.ts +1 -0
  25. package/bin/live-hooks/useLiveState.d.ts.map +1 -1
  26. package/bin/live-hooks/useLiveState.js +1 -0
  27. package/bin/live-hooks/useLiveState.js.map +1 -1
  28. package/bin/live-hooks/useLiveTimer.d.ts +17 -0
  29. package/bin/live-hooks/useLiveTimer.d.ts.map +1 -1
  30. package/bin/live-hooks/useLiveTimer.js +17 -0
  31. package/bin/live-hooks/useLiveTimer.js.map +1 -1
  32. package/bin/live-hooks/useMediaSynchronizer.d.ts +1 -0
  33. package/bin/live-hooks/useMediaSynchronizer.d.ts.map +1 -1
  34. package/bin/live-hooks/useMediaSynchronizer.js +1 -0
  35. package/bin/live-hooks/useMediaSynchronizer.js.map +1 -1
  36. package/bin/providers/AzureProvider.d.ts +83 -4
  37. package/bin/providers/AzureProvider.d.ts.map +1 -1
  38. package/bin/providers/AzureProvider.js +18 -1
  39. package/bin/providers/AzureProvider.js.map +1 -1
  40. package/bin/providers/LiveShareProvider.d.ts +36 -8
  41. package/bin/providers/LiveShareProvider.d.ts.map +1 -1
  42. package/bin/providers/LiveShareProvider.js +19 -1
  43. package/bin/providers/LiveShareProvider.js.map +1 -1
  44. package/bin/shared-hooks/index.d.ts +1 -0
  45. package/bin/shared-hooks/index.d.ts.map +1 -1
  46. package/bin/shared-hooks/index.js +1 -0
  47. package/bin/shared-hooks/index.js.map +1 -1
  48. package/bin/shared-hooks/useDynamicDDS.d.ts +4 -0
  49. package/bin/shared-hooks/useDynamicDDS.d.ts.map +1 -1
  50. package/bin/shared-hooks/useDynamicDDS.js +4 -0
  51. package/bin/shared-hooks/useDynamicDDS.js.map +1 -1
  52. package/bin/shared-hooks/useSharedMap.d.ts +1 -0
  53. package/bin/shared-hooks/useSharedMap.d.ts.map +1 -1
  54. package/bin/shared-hooks/useSharedMap.js +1 -0
  55. package/bin/shared-hooks/useSharedMap.js.map +1 -1
  56. package/bin/shared-hooks/useSharedState.d.ts +1 -0
  57. package/bin/shared-hooks/useSharedState.d.ts.map +1 -1
  58. package/bin/shared-hooks/useSharedState.js +1 -0
  59. package/bin/shared-hooks/useSharedState.js.map +1 -1
  60. package/bin/shared-hooks/useSharedStateRegistry.d.ts +37 -0
  61. package/bin/shared-hooks/useSharedStateRegistry.d.ts.map +1 -0
  62. package/bin/shared-hooks/useSharedStateRegistry.js +105 -0
  63. package/bin/shared-hooks/useSharedStateRegistry.js.map +1 -0
  64. package/package.json +8 -8
  65. package/src/internal/errors.ts +15 -6
  66. package/src/internal/index.ts +0 -1
  67. package/src/live-hooks/useLiveCanvas.ts +1 -0
  68. package/src/live-hooks/useLiveEvent.ts +1 -0
  69. package/src/live-hooks/useLiveFollowMode.ts +7 -6
  70. package/src/live-hooks/useLivePresence.ts +1 -0
  71. package/src/live-hooks/useLiveState.ts +1 -0
  72. package/src/live-hooks/useLiveTimer.ts +17 -0
  73. package/src/live-hooks/useMediaSynchronizer.ts +1 -0
  74. package/src/providers/AzureProvider.tsx +92 -3
  75. package/src/providers/LiveShareProvider.tsx +49 -9
  76. package/src/shared-hooks/index.ts +1 -0
  77. package/src/shared-hooks/useDynamicDDS.ts +4 -0
  78. package/src/shared-hooks/useSharedMap.ts +1 -0
  79. package/src/shared-hooks/useSharedState.ts +1 -0
  80. package/src/{internal → shared-hooks}/useSharedStateRegistry.ts +6 -0
@@ -9,11 +9,25 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import React from "react";
12
- import { useSharedStateRegistry, } from "../internal";
12
+ import { useSharedStateRegistry, } from "../shared-hooks";
13
13
  import { AzureTurboClient, } from "@microsoft/live-share-turbo";
14
+ /**
15
+ * @hidden
16
+ */
14
17
  export const FluidContext = React.createContext({});
18
+ /**
19
+ * Hook to get the latest React context state for `FluidContext`.
20
+ *
21
+ * @remarks
22
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
23
+ *
24
+ * @returns current state of `LiveShareContext`
25
+ */
15
26
  export const useFluidObjectsContext = () => {
16
27
  const context = React.useContext(FluidContext);
28
+ if (!isFluidObjectsContext(context)) {
29
+ throw new Error("@microsoft/live-share-react: attempting to use `useFluidObjectsContext()` from a component that is not a child of `<LiveShareProvider>` or `<AzureProvider>`.\nTo fix this error, ensure that you are only using Live Share hooks (e.g., `useLiveState`) from a child component of `<LiveShareProvider>` or `<AzureProvider>`.");
30
+ }
17
31
  return context;
18
32
  };
19
33
  /**
@@ -99,4 +113,7 @@ export const AzureProvider = (props) => {
99
113
  createContainer,
100
114
  getContainer }, stateRegistryCallbacks) }, { children: props.children })));
101
115
  };
116
+ function isFluidObjectsContext(value) {
117
+ return !!(value === null || value === void 0 ? void 0 : value.clientRef);
118
+ }
102
119
  //# sourceMappingURL=AzureProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AzureProvider.js","sourceRoot":"","sources":["../../src/providers/AzureProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AzureProvider.js","sourceRoot":"","sources":["../../src/providers/AzureProvider.tsx"],"names":[],"mappings":";;;;;;;;;;AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAEH,sBAAsB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,gBAAgB,GAEnB,MAAM,6BAA6B,CAAC;AAuDrC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAC3C,EAAmB,CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAkB,EAAE;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CACX,gUAAgU,CACnU,CAAC;KACL;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AA0CF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkC,CAAC,KAAK,EAAE,EAAE;;IAClE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAU,KAAK,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAC1B,IAAI,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAC5C,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,EAEzC,CAAC;IACJ,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAqB,CAAC;IAEtE,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAE/D;;OAEG;IACH,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAClC,CACI,WAAmB,EACnB,cAA0C,EACX,EAAE;QACjC,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI;gBACA,MAAM,OAAO,GACT,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,CAChC,WAAW,EACX,cAAc,CACjB,CAAC;gBACN,UAAU,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,CAAC;aACpB;YAAC,OAAO,KAAU,EAAE;gBACjB,IAAI,KAAK,YAAY,KAAK,EAAE;oBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;iBACvB;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;aACjB;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC,CAAA,EACD,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAClC,CAAC;IAEF;;OAEG;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACrC,CACI,cAA0C,EAC1C,qBAA4D,EAC7B,EAAE;QACjC,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI;gBACA,MAAM,OAAO,GACT,MAAM,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC5D,IAAI,qBAAqB,EAAE;oBACvB,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC5C;gBACD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;gBACnC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,CAAC;aACpB;YAAC,OAAO,KAAU,EAAE;gBACjB,IAAI,KAAK,YAAY,KAAK,EAAE;oBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;iBACvB;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;aACjB;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC,CAAA,EACD,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAClC,CAAC;IAEF;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACjB,wFAAwF;QACxF,mGAAmG;QACnG,gGAAgG;QAChG,IACI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,eAAe,MAAK,SAAS;YACjD,UAAU,CAAC,OAAO;YAElB,OAAO;QACX,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE;YACvC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;SACzD;aAAM,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE;YACjD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SACzC;IACL,CAAC,EAAE;QACC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,eAAe;QACnC,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,cAAc;QACpB,YAAY;QACZ,eAAe;KAClB,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,YAAY,CAAC,QAAQ,kBAClB,KAAK,kBACD,SAAS,EACT,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAC7B,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAC3B,SAAS;YACT,eAAe;YACf,YAAY,IACT,sBAAsB,iBAG5B,KAAK,CAAC,QAAQ,IACK,CAC3B,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,qBAAqB,CAAC,KAAU;IACrC,OAAO,CAAC,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAA,CAAC;AAC9B,CAAC"}
@@ -5,6 +5,13 @@
5
5
  import { IFluidContainer, LoadableObjectClassRecord } from "fluid-framework";
6
6
  import React from "react";
7
7
  import { ILiveShareClientOptions, ILiveShareHost, ILiveShareJoinResults, ITimestampProvider } from "@microsoft/live-share";
8
+ /**
9
+ * React Context provider values for `<LiveShareProvider>`.
10
+ *
11
+ * @remarks
12
+ * To get the latest values, use the {@link useLiveShareContext} hook.
13
+ * Use the {@link useFluidObjectsContext} hook for other relevant context values.
14
+ */
8
15
  export interface ILiveShareContext {
9
16
  /**
10
17
  * True if the local user created the Fluid container
@@ -24,34 +31,56 @@ export interface ILiveShareContext {
24
31
  */
25
32
  timestampProvider: ITimestampProvider | undefined;
26
33
  /**
27
- * Join callback method
34
+ * Join callback method for manually connecting to the Fluid container.
35
+ *
36
+ * @remarks
37
+ * Use this callback if `joinOnLoad` is `false` or `undefined` in {@link ILiveShareProviderProps}.
38
+ *
28
39
  * @param initialObjects Optional. The initial objects for the Fluid container schema.
29
40
  * @param onInitializeContainer Optional. Callback for when the container is first created.
30
- * @returns `ILiveShareJoinResults`, which includes the Fluid container
41
+ * @returns Promise with `ILiveShareJoinResults`, which includes the Fluid container
31
42
  */
32
43
  join: (initialObjects?: LoadableObjectClassRecord, onInitializeContainer?: (container: IFluidContainer) => void) => Promise<ILiveShareJoinResults>;
33
44
  }
45
+ /**
46
+ * @hidden
47
+ */
34
48
  export declare const LiveShareContext: React.Context<ILiveShareContext>;
49
+ /**
50
+ * Hook to get the latest React context state for `LiveShareContext`.
51
+ *
52
+ * @remarks
53
+ * This hook can only be used in a child component of `<LiveShareProvider>`.
54
+ * See `useFluidObjectsContext` for other information related to the Live Share session, such as the `container`.
55
+ *
56
+ * @returns current state of `LiveShareContext`
57
+ */
35
58
  export declare const useLiveShareContext: () => ILiveShareContext;
36
- interface ILiveShareProviderProps {
59
+ /**
60
+ * Prop types for {@link LiveShareProvider} component.
61
+ */
62
+ export interface ILiveShareProviderProps {
37
63
  /**
38
64
  * Optional. React children node for the React Context Provider
39
65
  */
40
66
  children?: React.ReactNode;
41
67
  /**
42
- * Optional. Options to pass into LiveShareClient initializer
68
+ * Optional. Options for initializing `LiveShareClient`.
43
69
  */
44
70
  clientOptions?: ILiveShareClientOptions;
45
71
  /**
46
- * Host to initialize LiveShareClient with
72
+ * Host to initialize `LiveShareClient` with.
73
+ *
74
+ * @remarks
75
+ * If using the `LiveShareClient` class from `@microsoft/teams-js`, you must ensure that you have first called `teamsJs.app.initialize()` before calling `LiveShareClient.create()`.
47
76
  */
48
77
  host: ILiveShareHost;
49
78
  /**
50
- * Optional. Initial Fluid objects to load when the container is first created
79
+ * The initial object schema to use when {@link joinOnLoad} is true.
51
80
  */
52
81
  initialObjects?: LoadableObjectClassRecord;
53
82
  /**
54
- * Optional. Flag to determine whether to join Fluid container on load
83
+ * Optional. Flag to determine whether to join Fluid container on load.
55
84
  */
56
85
  joinOnLoad?: boolean;
57
86
  }
@@ -59,5 +88,4 @@ interface ILiveShareProviderProps {
59
88
  * React Context provider component for using Live Share data objects & joining a Live Share session using `LiveShareClient`.
60
89
  */
61
90
  export declare const LiveShareProvider: React.FC<ILiveShareProviderProps>;
62
- export {};
63
91
  //# sourceMappingURL=LiveShareProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveShareProvider.d.ts","sourceRoot":"","sources":["../../src/providers/LiveShareProvider.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAClD;;;;;OAKG;IACH,IAAI,EAAE,CACF,cAAc,CAAC,EAAE,yBAAyB,EAC1C,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,KAC3D,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,gBAAgB,kCAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,iBAGtC,CAAC;AAEF,UAAU,uBAAuB;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAuF/D,CAAC"}
1
+ {"version":3,"file":"LiveShareProvider.d.ts","sourceRoot":"","sources":["../../src/providers/LiveShareProvider.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAI/B;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAClD;;;;;;;;;OASG;IACH,IAAI,EAAE,CACF,cAAc,CAAC,EAAE,yBAAyB,EAC1C,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,KAC3D,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,kCAE5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,QAAO,iBAQtC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC;;;;;OAKG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAuF/D,CAAC"}
@@ -9,12 +9,27 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import React from "react";
12
- import { useSharedStateRegistry } from "../internal";
12
+ import { useSharedStateRegistry } from "../shared-hooks";
13
13
  import { FluidContext } from "./AzureProvider";
14
14
  import { LiveShareTurboClient } from "@microsoft/live-share-turbo";
15
+ /**
16
+ * @hidden
17
+ */
15
18
  export const LiveShareContext = React.createContext({});
19
+ /**
20
+ * Hook to get the latest React context state for `LiveShareContext`.
21
+ *
22
+ * @remarks
23
+ * This hook can only be used in a child component of `<LiveShareProvider>`.
24
+ * See `useFluidObjectsContext` for other information related to the Live Share session, such as the `container`.
25
+ *
26
+ * @returns current state of `LiveShareContext`
27
+ */
16
28
  export const useLiveShareContext = () => {
17
29
  const context = React.useContext(LiveShareContext);
30
+ if (!isLiveShareContext(context)) {
31
+ throw new Error("@microsoft/live-share-react: attempting to use `useLiveShareContext()` from a component that is not a child of `<LiveShareProvider>`.\nTo fix this error, ensure that you are only using Live Share hooks (e.g., `useLiveState`) from a child component of `<LiveShareProvider>`.");
32
+ }
18
33
  return context;
19
34
  };
20
35
  /**
@@ -66,4 +81,7 @@ export const LiveShareProvider = (props) => {
66
81
  throw new Error("Cannot create new container through createContainer in LiveShareProvider");
67
82
  }) }, stateRegistryCallbacks) }, { children: props.children })) })));
68
83
  };
84
+ function isLiveShareContext(value) {
85
+ return (typeof (value === null || value === void 0 ? void 0 : value.created) === "boolean" && typeof (value === null || value === void 0 ? void 0 : value.join) === "function");
86
+ }
69
87
  //# sourceMappingURL=LiveShareProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveShareProvider.js","sourceRoot":"","sources":["../../src/providers/LiveShareProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveShareProvider.js","sourceRoot":"","sources":["../../src/providers/LiveShareProvider.tsx"],"names":[],"mappings":";;;;;;;;;;AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAOzD,OAAO,EAAE,YAAY,EAA0B,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AA2CnE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAC/C,EAAuB,CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAsB,EAAE;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACnD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACX,mRAAmR,CACtR,CAAC;KACL;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AA+BF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsC,CAAC,KAAK,EAAE,EAAE;IAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAC1B,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAC5D,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,EAEzC,CAAC;IACJ,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAqB,CAAC;IAEtE,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAE/D;;OAEG;IACH,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAC1B,CACI,cAA0C,EAC1C,qBAA4D,EAC9B,EAAE;QAChC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CACxC,cAAc,EACd,qBAAqB,CACxB,CAAC;QACF,UAAU,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA,EACD,EAAE,CACL,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,wFAAwF;QACxF,mGAAmG;QACnG,gGAAgG;QAChG,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU;YAChE,OAAO;QACX,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,KAAK,YAAY,KAAK,EAAE;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;aACvB;iBAAM;gBACH,YAAY,CACR,IAAI,KAAK,CACL,uEAAuE,CAC1E,CACJ,CAAC;aACL;QACL,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5D,OAAO,CACH,KAAC,gBAAgB,CAAC,QAAQ,kBACtB,KAAK,EAAE;YACH,OAAO,EAAE,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;YAC3B,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB;YAC7C,MAAM,EAAE,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA;YAC5B,SAAS;YACT,IAAI;SACP,gBAED,KAAC,YAAY,CAAC,QAAQ,kBAClB,KAAK,kBACD,SAAS,EACT,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAC7B,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAC3B,SAAS,EACT,YAAY,EAAE,GAAS,EAAE;oBACrB,MAAM,IAAI,KAAK,CACX,qEAAqE,CACxE,CAAC;gBACN,CAAC,CAAA,EACD,eAAe,EAAE,GAAS,EAAE;oBACxB,MAAM,IAAI,KAAK,CACX,0EAA0E,CAC7E,CAAC;gBACN,CAAC,CAAA,IACE,sBAAsB,iBAG5B,KAAK,CAAC,QAAQ,IACK,IACA,CAC/B,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAU;IAClC,OAAO,CACH,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,KAAK,SAAS,IAAI,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA,KAAK,UAAU,CAC3E,CAAC;AACN,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./useSharedState";
2
2
  export * from "./useSharedMap";
3
3
  export * from "./useDynamicDDS";
4
+ export * from "./useSharedStateRegistry";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./useSharedState";
2
2
  export * from "./useSharedMap";
3
3
  export * from "./useDynamicDDS";
4
+ export * from "./useSharedStateRegistry";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
@@ -6,6 +6,10 @@ import { FluidObject, IFluidLoadable } from "@fluidframework/core-interfaces";
6
6
  import { LoadableObjectClass } from "fluid-framework";
7
7
  /**
8
8
  * Hook to gets or creates a DDS that corresponds to a given uniqueKey string.
9
+ *
10
+ * @remarks
11
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
12
+ *
9
13
  * @template T Type of Fluid LoadableObjectClass type to load. Must conform to IFluidLoadable interface.
10
14
  * @param uniqueKey uniqueKey value for the data object
11
15
  * @param loadableObjectClass Fluid LoadableObjectClass<T> to create/load.
@@ -1 +1 @@
1
- {"version":3,"file":"useDynamicDDS.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useDynamicDDS.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,CAAC,SAAS,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,cAAc,EAE5D,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GACrC;IACC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B,CAkDA"}
1
+ {"version":3,"file":"useDynamicDDS.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useDynamicDDS.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CACzB,CAAC,SAAS,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,cAAc,EAE5D,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GACrC;IACC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B,CAkDA"}
@@ -15,6 +15,10 @@ import React from "react";
15
15
  import { useFluidObjectsContext } from "../providers";
16
16
  /**
17
17
  * Hook to gets or creates a DDS that corresponds to a given uniqueKey string.
18
+ *
19
+ * @remarks
20
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
21
+ *
18
22
  * @template T Type of Fluid LoadableObjectClass type to load. Must conform to IFluidLoadable interface.
19
23
  * @param uniqueKey uniqueKey value for the data object
20
24
  * @param loadableObjectClass Fluid LoadableObjectClass<T> to create/load.
@@ -1 +1 @@
1
- {"version":3,"file":"useDynamicDDS.js","sourceRoot":"","sources":["../../src/shared-hooks/useDynamicDDS.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAGzB,SAAiB,EACjB,mBAA2C,EAC3C,iBAAoC;IAKpC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAK,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAS,CAAC;IAClD;;OAEG;IACH,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE1D;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI;gBACA,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CACtC,SAAS,EACT,mBAAmB,EACnB,iBAAiB,CACpB,CAAC;gBACF,IAAI,OAAO,EAAE;oBACT,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;aACJ;YAAC,OAAO,KAAc,EAAE;gBACrB,IAAI,KAAK,YAAY,KAAK,EAAE;oBACxB,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACnB;qBAAM;oBACH,QAAQ,CACJ,IAAI,KAAK,CACL,gEAAgE,CACnE,CACJ,CAAC;iBACL;aACJ;QACL,CAAC,CAAA,CAAC;QACF,QAAQ,EAAE,CAAC;QACX,OAAO,GAAG,EAAE;YACR,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE9C,OAAO;QACH,GAAG;QACH,KAAK;KACR,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"useDynamicDDS.js","sourceRoot":"","sources":["../../src/shared-hooks/useDynamicDDS.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAGzB,SAAiB,EACjB,mBAA2C,EAC3C,iBAAoC;IAKpC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAK,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAS,CAAC;IAClD;;OAEG;IACH,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE1D;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI;gBACA,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CACtC,SAAS,EACT,mBAAmB,EACnB,iBAAiB,CACpB,CAAC;gBACF,IAAI,OAAO,EAAE;oBACT,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;aACJ;YAAC,OAAO,KAAc,EAAE;gBACrB,IAAI,KAAK,YAAY,KAAK,EAAE;oBACxB,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACnB;qBAAM;oBACH,QAAQ,CACJ,IAAI,KAAK,CACL,gEAAgE,CACnE,CACJ,CAAC;iBACL;aACJ;QACL,CAAC,CAAA,CAAC;QACF,QAAQ,EAAE,CAAC;QACX,OAAO,GAAG,EAAE;YACR,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE9C,OAAO;QACH,GAAG;QACH,KAAK;KACR,CAAC;AACN,CAAC"}
@@ -10,6 +10,7 @@ import { IUseSharedMapResults, SharedMapInitialData } from "../types";
10
10
  * The primary benefit of using the `useSharedMap` hook rather than the Fluid `SharedMap`
11
11
  * directly is that it integrates nicely with React state and automates repetitive tasks.
12
12
  * If you want to use `SharedMap` this hook creates directly, you can do that as well.
13
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
13
14
  *
14
15
  * @template TData Optional typing for objects stored in the SharedMap. Default is `any` type.
15
16
  * @param uniqueKey the unique key for the `SharedMap`. If one does not yet exist, a new `SharedMap`
@@ -1 +1 @@
1
- {"version":3,"file":"useSharedMap.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useSharedMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAStE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAG,GAAG,EACpC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,KAAK,CAAC,CAmG7B"}
1
+ {"version":3,"file":"useSharedMap.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useSharedMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAStE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAG,GAAG,EACpC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,KAAK,CAAC,CAmG7B"}
@@ -15,6 +15,7 @@ import { ActionContainerNotJoinedError, ActionLiveDataObjectUndefinedError, } fr
15
15
  * The primary benefit of using the `useSharedMap` hook rather than the Fluid `SharedMap`
16
16
  * directly is that it integrates nicely with React state and automates repetitive tasks.
17
17
  * If you want to use `SharedMap` this hook creates directly, you can do that as well.
18
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
18
19
  *
19
20
  * @template TData Optional typing for objects stored in the SharedMap. Default is `any` type.
20
21
  * @param uniqueKey the unique key for the `SharedMap`. If one does not yet exist, a new `SharedMap`
@@ -1 +1 @@
1
- {"version":3,"file":"useSharedMap.js","sourceRoot":"","sources":["../../src/shared-hooks/useSharedMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSharedMap.js","sourceRoot":"","sources":["../../src/shared-hooks/useSharedMap.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { DisposeSharedStateAction, SetSharedStateAction } from "../types";
10
10
  * Values set through this state is automatically attached to a `SharedMap` that the `AzureProvider`
11
11
  * creates. If you are synchronizing complex data structures that multiple users will be setting simultaneously,
12
12
  * consider using an optimized hook for your data structure (e.g., `useSharedMap`, `useSharedString`, etc.).
13
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
13
14
  *
14
15
  * @template S Typing for objects stored associated with the `uniqueKey`.
15
16
  * @param uniqueKey the unique key for a `SharedMap`. If you use the same key for multiple components, those components will reference the same state.
@@ -1 +1 @@
1
- {"version":3,"file":"useSharedState.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useSharedState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI1E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,GAAG,EAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,CAAC,GAChB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAkExD"}
1
+ {"version":3,"file":"useSharedState.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useSharedState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI1E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,GAAG,EAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,CAAC,GAChB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAkExD"}
@@ -13,6 +13,7 @@ import { isPrevStateCallback } from "../internal";
13
13
  * Values set through this state is automatically attached to a `SharedMap` that the `AzureProvider`
14
14
  * creates. If you are synchronizing complex data structures that multiple users will be setting simultaneously,
15
15
  * consider using an optimized hook for your data structure (e.g., `useSharedMap`, `useSharedString`, etc.).
16
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
16
17
  *
17
18
  * @template S Typing for objects stored associated with the `uniqueKey`.
18
19
  * @param uniqueKey the unique key for a `SharedMap`. If you use the same key for multiple components, those components will reference the same state.
@@ -1 +1 @@
1
- {"version":3,"file":"useSharedState.js","sourceRoot":"","sources":["../../src/shared-hooks/useSharedState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC1B,SAAiB,EACjB,YAAe;IAEf;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAI,YAAY,CAAC,CAAC;IACpE;;OAEG;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C;;OAEG;IACH,MAAM,EACF,4BAA4B,EAC5B,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,GACpB,GAAG,sBAAsB,EAAE,CAAC;IAE7B;;OAEG;IACH,MAAM,cAAc,GAA4B,KAAK,CAAC,WAAW,CAC7D,CAAC,KAAgC,EAAE,EAAE;QACjC,aAAa,CAAC,CAAC,SAAS,EAAE,EAAE;YACxB,MAAM,UAAU,GAAG,mBAAmB,CAAI,KAAK,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;gBAClB,CAAC,CAAC,KAAK,CAAC;YACZ,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC,EACD,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAChD,CAAC;IAEF;;OAEG;IACH,MAAM,kBAAkB,GACpB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnB,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvC;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,4BAA4B,CACxB,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,aAAa,CAChB,CAAC;QACF,OAAO,GAAG,EAAE;YACR,8BAA8B,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC;IACN,CAAC,EAAE;QACC,SAAS;QACT,4BAA4B;QAC5B,8BAA8B;KACjC,CAAC,CAAC;IAEH,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"useSharedState.js","sourceRoot":"","sources":["../../src/shared-hooks/useSharedState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC1B,SAAiB,EACjB,YAAe;IAEf;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAI,YAAY,CAAC,CAAC;IACpE;;OAEG;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C;;OAEG;IACH,MAAM,EACF,4BAA4B,EAC5B,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,GACpB,GAAG,sBAAsB,EAAE,CAAC;IAE7B;;OAEG;IACH,MAAM,cAAc,GAA4B,KAAK,CAAC,WAAW,CAC7D,CAAC,KAAgC,EAAE,EAAE;QACjC,aAAa,CAAC,CAAC,SAAS,EAAE,EAAE;YACxB,MAAM,UAAU,GAAG,mBAAmB,CAAI,KAAK,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;gBAClB,CAAC,CAAC,KAAK,CAAC;YACZ,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC,EACD,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAChD,CAAC;IAEF;;OAEG;IACH,MAAM,kBAAkB,GACpB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnB,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvC;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,4BAA4B,CACxB,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,aAAa,CAChB,CAAC;QACF,OAAO,GAAG,EAAE;YACR,8BAA8B,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC;IACN,CAAC,EAAE;QACC,SAAS;QACT,4BAA4B;QAC5B,8BAA8B;KACjC,CAAC,CAAC;IAEH,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,37 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ import { DeleteSharedStateAction, IAzureContainerResults, RegisterSharedSetStateAction, UnregisterSharedSetStateAction, UpdateSharedStateAction } from "../types";
6
+ /**
7
+ * Response for the {@link useSharedStateRegistry} hook.
8
+ */
9
+ export interface ISharedStateRegistryResponse {
10
+ /**
11
+ * Register a set state action callback
12
+ */
13
+ registerSharedSetStateAction: RegisterSharedSetStateAction;
14
+ /**
15
+ * Unregister a set state action callback
16
+ */
17
+ unregisterSharedSetStateAction: UnregisterSharedSetStateAction;
18
+ /**
19
+ * Setter callback to update the shared state
20
+ */
21
+ updateSharedState: UpdateSharedStateAction;
22
+ /**
23
+ * Delete a shared state value
24
+ */
25
+ deleteSharedState: DeleteSharedStateAction;
26
+ }
27
+ /**
28
+ * Hook used internally to keep track of the SharedSetStateActionMap for each unique key. It sets state values for provided keys and updates components listening to the values.
29
+ *
30
+ * @remarks
31
+ * Use this if you are building a custom `LiveShareProvider` or `AzureProvider` implementation in your app.
32
+ *
33
+ * @param results IAzureContainerResults response or undefined
34
+ * @returns ISharedStateRegistryResponse object
35
+ */
36
+ export declare const useSharedStateRegistry: (results: IAzureContainerResults | undefined) => ISharedStateRegistryResponse;
37
+ //# sourceMappingURL=useSharedStateRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSharedStateRegistry.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useSharedStateRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAE5B,8BAA8B,EAC9B,uBAAuB,EAC1B,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D;;OAEG;IACH,8BAA8B,EAAE,8BAA8B,CAAC;IAC/D;;OAEG;IACH,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C;;OAEG;IACH,iBAAiB,EAAE,uBAAuB,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,YACtB,sBAAsB,GAAG,SAAS,KAC5C,4BAwHF,CAAC"}
@@ -0,0 +1,105 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ import React from "react";
6
+ /**
7
+ * Hook used internally to keep track of the SharedSetStateActionMap for each unique key. It sets state values for provided keys and updates components listening to the values.
8
+ *
9
+ * @remarks
10
+ * Use this if you are building a custom `LiveShareProvider` or `AzureProvider` implementation in your app.
11
+ *
12
+ * @param results IAzureContainerResults response or undefined
13
+ * @returns ISharedStateRegistryResponse object
14
+ */
15
+ export const useSharedStateRegistry = (results) => {
16
+ const registeredSharedSetStateActionMapRef = React.useRef(new Map());
17
+ /**
18
+ * @see ISharedStateRegistryResponse.registerSharedSetStateAction
19
+ */
20
+ const registerSharedSetStateAction = React.useCallback((uniqueKey, componentId, setLocalStateAction) => {
21
+ let actionsMap = registeredSharedSetStateActionMapRef.current.get(uniqueKey);
22
+ if (actionsMap) {
23
+ if (!actionsMap.has(componentId)) {
24
+ actionsMap.set(componentId, setLocalStateAction);
25
+ }
26
+ }
27
+ else {
28
+ actionsMap = new Map();
29
+ actionsMap.set(componentId, setLocalStateAction);
30
+ registeredSharedSetStateActionMapRef.current.set(uniqueKey, actionsMap);
31
+ }
32
+ // Set initial values, if known
33
+ const stateMap = results === null || results === void 0 ? void 0 : results.container.initialObjects.TURBO_STATE_MAP;
34
+ const initialValue = stateMap === null || stateMap === void 0 ? void 0 : stateMap.get(uniqueKey);
35
+ if (initialValue) {
36
+ setLocalStateAction(initialValue);
37
+ }
38
+ }, [results]);
39
+ /**
40
+ * @see ISharedStateRegistryResponse.unregisterSharedSetStateAction
41
+ */
42
+ const unregisterSharedSetStateAction = React.useCallback((uniqueKey, componentId) => {
43
+ let actionsMap = registeredSharedSetStateActionMapRef.current.get(uniqueKey);
44
+ if (actionsMap === null || actionsMap === void 0 ? void 0 : actionsMap.has(componentId)) {
45
+ actionsMap.delete(componentId);
46
+ }
47
+ }, []);
48
+ /**
49
+ * @see ISharedStateRegistryResponse.updateSharedState
50
+ */
51
+ const updateSharedState = React.useCallback((uniqueKey, value) => {
52
+ if (!results)
53
+ return;
54
+ const { container } = results;
55
+ const stateMap = container.initialObjects
56
+ .TURBO_STATE_MAP;
57
+ stateMap.set(uniqueKey, value);
58
+ }, [results]);
59
+ /**
60
+ * @see ISharedStateRegistryResponse.deleteSharedState
61
+ */
62
+ const deleteSharedState = React.useCallback((uniqueKey) => {
63
+ if (!results)
64
+ return;
65
+ const { container } = results;
66
+ let actionsMap = registeredSharedSetStateActionMapRef.current.get(uniqueKey);
67
+ actionsMap === null || actionsMap === void 0 ? void 0 : actionsMap.clear();
68
+ const stateMap = container.initialObjects
69
+ .TURBO_STATE_MAP;
70
+ stateMap.delete(uniqueKey);
71
+ }, [results]);
72
+ React.useEffect(() => {
73
+ if (!results)
74
+ return;
75
+ const { container } = results;
76
+ const stateMap = container.initialObjects.TURBO_STATE_MAP;
77
+ const valueChangedListener = (changed) => {
78
+ if (registeredSharedSetStateActionMapRef.current.has(changed.key)) {
79
+ const value = stateMap.get(changed.key);
80
+ const actionMap = registeredSharedSetStateActionMapRef.current.get(changed.key);
81
+ actionMap === null || actionMap === void 0 ? void 0 : actionMap.forEach((setLocalStateHandler) => {
82
+ setLocalStateHandler(value);
83
+ });
84
+ }
85
+ };
86
+ stateMap.on("valueChanged", valueChangedListener);
87
+ // Set initial values
88
+ stateMap.forEach((value, key) => {
89
+ const actionMap = registeredSharedSetStateActionMapRef.current.get(key);
90
+ actionMap === null || actionMap === void 0 ? void 0 : actionMap.forEach((setLocalStateHandler) => {
91
+ setLocalStateHandler(value);
92
+ });
93
+ });
94
+ return () => {
95
+ stateMap.off("valueChanged", valueChangedListener);
96
+ };
97
+ }, [results]);
98
+ return {
99
+ registerSharedSetStateAction,
100
+ unregisterSharedSetStateAction,
101
+ updateSharedState,
102
+ deleteSharedState,
103
+ };
104
+ };
105
+ //# sourceMappingURL=useSharedStateRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSharedStateRegistry.js","sourceRoot":"","sources":["../../src/shared-hooks/useSharedStateRegistry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/live-share-react",
3
- "version": "1.2.1-preview.0",
3
+ "version": "1.3.0-preview.0",
4
4
  "description": "Build collaborative React apps using Microsoft's Fluid & Live Share frameworks with ease.",
5
5
  "author": "Microsoft",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -12,7 +12,7 @@
12
12
  "typecheck": "tsc"
13
13
  },
14
14
  "dependencies": {
15
- "@microsoft/live-share-turbo": "1.2.1-preview.0",
15
+ "@microsoft/live-share-turbo": "1.3.0-preview.0",
16
16
  "url": "^0.11.0",
17
17
  "uuid": "^9.0.0"
18
18
  },
@@ -20,9 +20,9 @@
20
20
  "@babel/core": "^7.21.8",
21
21
  "@fluidframework/azure-client": "^1.1.1",
22
22
  "@fluidframework/test-client-utils": "^1.3.6",
23
- "@microsoft/live-share": "1.2.1",
24
- "@microsoft/live-share-canvas": "1.2.1",
25
- "@microsoft/live-share-media": "1.2.1",
23
+ "@microsoft/live-share": "1.3.0",
24
+ "@microsoft/live-share-canvas": "1.3.0",
25
+ "@microsoft/live-share-media": "1.3.0",
26
26
  "@types/react": "^18.0.0",
27
27
  "@types/react-dom": "^18.0.0",
28
28
  "@types/uuid": "^9.0.1",
@@ -32,9 +32,9 @@
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@fluidframework/azure-client": "^1.0.0",
35
- "@microsoft/live-share": "1.2.1",
36
- "@microsoft/live-share-canvas": "1.2.1",
37
- "@microsoft/live-share-media": "1.2.1",
35
+ "@microsoft/live-share": "1.3.0",
36
+ "@microsoft/live-share-canvas": "1.3.0",
37
+ "@microsoft/live-share-media": "1.3.0",
38
38
  "fluid-framework": "^1.2.3",
39
39
  "react": "^16.8.0 || ^17 || ^18",
40
40
  "react-dom": "^16.8.0 || ^17 || ^18"
@@ -3,9 +3,8 @@
3
3
  */
4
4
  class UseLiveDataObjectActionError extends Error {
5
5
  constructor(ddsName: string, functionName: string, message: string) {
6
- super(
7
- `use${toFirstLetterUppercase(ddsName)} ${functionName}: ${message}`
8
- );
6
+ const hookName = `use${toFirstLetterUppercase(ddsName)}`;
7
+ super(`${hookName} ${functionName}: ${message}`);
9
8
  }
10
9
  }
11
10
 
@@ -14,7 +13,11 @@ class UseLiveDataObjectActionError extends Error {
14
13
  */
15
14
  export class ActionContainerNotJoinedError extends UseLiveDataObjectActionError {
16
15
  constructor(ddsName: string, functionName: string) {
17
- super(ddsName, functionName, "container has not yet been joined");
16
+ super(
17
+ ddsName,
18
+ functionName,
19
+ "container has not yet been joined.\nTo fix this error, ensure `container` from `useFluidObjectsContext()` is defined before calling this function.\nIf using `<LiveShareProvider>`, you can instead check the `joined` response is true from `useLiveShareContext()` before calling this function."
20
+ );
18
21
  }
19
22
  }
20
23
 
@@ -23,10 +26,11 @@ export class ActionContainerNotJoinedError extends UseLiveDataObjectActionError
23
26
  */
24
27
  export class ActionLiveDataObjectUndefinedError extends UseLiveDataObjectActionError {
25
28
  constructor(ddsName: string, functionName: string) {
29
+ const hookName = `use${toFirstLetterUppercase(ddsName)}`;
26
30
  super(
27
31
  ddsName,
28
32
  functionName,
29
- `${ddsName} is undefined, which means it is still being dynamically created`
33
+ `${ddsName} is undefined, which means it is still being dynamically created.\nTo fix this error, ensure that \`${ddsName}\` (found in the response of \`${hookName}\`) is defined before calling this function.`
30
34
  );
31
35
  }
32
36
  }
@@ -36,7 +40,12 @@ export class ActionLiveDataObjectUndefinedError extends UseLiveDataObjectActionE
36
40
  */
37
41
  export class ActionLiveDataObjectInitializedError extends UseLiveDataObjectActionError {
38
42
  constructor(ddsName: string, functionName: string) {
39
- super(ddsName, functionName, `${ddsName} is not initialized`);
43
+ const hookName = `use${toFirstLetterUppercase(ddsName)}`;
44
+ super(
45
+ ddsName,
46
+ functionName,
47
+ `${ddsName} is not yet initialized.\nTo fix this error, ensure that \`${ddsName}?.isInitialized\` is true (found in the response of \`${hookName}\`) before calling this function.`
48
+ );
40
49
  }
41
50
  }
42
51
 
@@ -1,3 +1,2 @@
1
- export * from "./useSharedStateRegistry";
2
1
  export * from "./errors";
3
2
  export * from "./type-guards";
@@ -22,6 +22,7 @@ import { isRefObject } from "../utils";
22
22
  * @remarks
23
23
  * Use this hook to set up an `LiveCanvas` object, which is used for collaborative inking. It takes several input parameters, including a unique key,
24
24
  * a reference to a canvas element, and various settings for the inking tool, brush, and canvas offset and scale.
25
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
25
26
  *
26
27
  * @param uniqueKey the unique key for the `LiveCanvas`. If one does not yet exist, a new one.
27
28
  * @param canvasElementRef the HTML div element ref or document ID that `InkingManager` will use for canvas-based collaboration.
@@ -30,6 +30,7 @@ import { useFluidObjectsContext } from "../providers";
30
30
  * @remarks
31
31
  * Use this hook if you want to send transient JSON objects to everyone connected to the Fluid container,
32
32
  * such as when sending push notifications or reactions.
33
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
33
34
  *
34
35
  * @template TEvent Optional typing for events sent & received. Default is `object` type.
35
36
  * @param uniqueKey the unique key for the `LiveEvent`. If one does not yet exist, a new one