@microsoft/live-share-react 1.0.0-preview.22 → 1.0.0-preview.24

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 (173) hide show
  1. package/README.md +7 -10
  2. package/bin/interfaces/LiveInterfaceExtensions.d.ts +17 -0
  3. package/bin/interfaces/LiveInterfaceExtensions.d.ts.map +1 -1
  4. package/bin/internal/errors.d.ts +26 -0
  5. package/bin/internal/errors.d.ts.map +1 -0
  6. package/bin/internal/errors.js +39 -0
  7. package/bin/internal/errors.js.map +1 -0
  8. package/bin/internal/index.d.ts +4 -0
  9. package/bin/internal/index.d.ts.map +1 -0
  10. package/bin/internal/index.js +4 -0
  11. package/bin/internal/index.js.map +1 -0
  12. package/bin/internal/type-guards.d.ts +6 -0
  13. package/bin/internal/type-guards.d.ts.map +1 -0
  14. package/bin/internal/type-guards.js +8 -0
  15. package/bin/internal/type-guards.js.map +1 -0
  16. package/bin/internal/useSharedStateRegistry.d.ts.map +1 -0
  17. package/bin/internal/useSharedStateRegistry.js.map +1 -0
  18. package/bin/live-hooks/useLiveEvent.d.ts.map +1 -1
  19. package/bin/live-hooks/useLiveEvent.js +12 -4
  20. package/bin/live-hooks/useLiveEvent.js.map +1 -1
  21. package/bin/live-hooks/useLivePresence.d.ts +2 -2
  22. package/bin/live-hooks/useLivePresence.d.ts.map +1 -1
  23. package/bin/live-hooks/useLivePresence.js +19 -14
  24. package/bin/live-hooks/useLivePresence.js.map +1 -1
  25. package/bin/live-hooks/useLiveState.d.ts +2 -2
  26. package/bin/live-hooks/useLiveState.d.ts.map +1 -1
  27. package/bin/live-hooks/useLiveState.js +15 -8
  28. package/bin/live-hooks/useLiveState.js.map +1 -1
  29. package/bin/live-hooks/useLiveTimer.d.ts.map +1 -1
  30. package/bin/live-hooks/useLiveTimer.js +21 -15
  31. package/bin/live-hooks/useLiveTimer.js.map +1 -1
  32. package/bin/live-hooks/useMediaSynchronizer.d.ts.map +1 -1
  33. package/bin/live-hooks/useMediaSynchronizer.js +31 -12
  34. package/bin/live-hooks/useMediaSynchronizer.js.map +1 -1
  35. package/bin/providers/AzureProvider.d.ts +1 -1
  36. package/bin/providers/AzureProvider.d.ts.map +1 -1
  37. package/bin/providers/AzureProvider.js +1 -1
  38. package/bin/providers/AzureProvider.js.map +1 -1
  39. package/bin/providers/LiveShareProvider.js +1 -1
  40. package/bin/providers/LiveShareProvider.js.map +1 -1
  41. package/bin/shared-hooks/useSharedMap.d.ts.map +1 -1
  42. package/bin/shared-hooks/useSharedMap.js +15 -8
  43. package/bin/shared-hooks/useSharedMap.js.map +1 -1
  44. package/bin/shared-hooks/useSharedState.d.ts.map +1 -1
  45. package/bin/shared-hooks/useSharedState.js +9 -3
  46. package/bin/shared-hooks/useSharedState.js.map +1 -1
  47. package/bin/types/ActionTypes.d.ts +8 -2
  48. package/bin/types/ActionTypes.d.ts.map +1 -1
  49. package/package.json +9 -9
  50. package/src/interfaces/LiveInterfaceExtensions.ts +17 -0
  51. package/src/internal/errors.ts +48 -0
  52. package/src/internal/index.ts +3 -0
  53. package/src/internal/type-guards.ts +9 -0
  54. package/src/live-hooks/useLiveEvent.ts +29 -6
  55. package/src/live-hooks/useLivePresence.ts +33 -21
  56. package/src/live-hooks/useLiveState.ts +31 -17
  57. package/src/live-hooks/useLiveTimer.ts +32 -26
  58. package/src/live-hooks/useMediaSynchronizer.ts +60 -8
  59. package/src/providers/AzureProvider.tsx +1 -1
  60. package/src/providers/LiveShareProvider.tsx +1 -1
  61. package/src/shared-hooks/useSharedMap.ts +29 -10
  62. package/src/shared-hooks/useSharedState.ts +9 -3
  63. package/src/types/ActionTypes.ts +10 -2
  64. package/bin/internal-hooks/index.d.ts +0 -2
  65. package/bin/internal-hooks/index.d.ts.map +0 -1
  66. package/bin/internal-hooks/index.js +0 -2
  67. package/bin/internal-hooks/index.js.map +0 -1
  68. package/bin/internal-hooks/useDynamicDDSRegistry.d.ts +0 -14
  69. package/bin/internal-hooks/useDynamicDDSRegistry.d.ts.map +0 -1
  70. package/bin/internal-hooks/useDynamicDDSRegistry.js +0 -142
  71. package/bin/internal-hooks/useDynamicDDSRegistry.js.map +0 -1
  72. package/bin/internal-hooks/useSharedStateRegistry.d.ts.map +0 -1
  73. package/bin/internal-hooks/useSharedStateRegistry.js.map +0 -1
  74. package/bin/internal-hooks/useStateRef.d.ts +0 -7
  75. package/bin/internal-hooks/useStateRef.d.ts.map +0 -1
  76. package/bin/internal-hooks/useStateRef.js +0 -15
  77. package/bin/internal-hooks/useStateRef.js.map +0 -1
  78. package/bin/live-hooks/useLiveAICompletion.d.ts +0 -29
  79. package/bin/live-hooks/useLiveAICompletion.d.ts.map +0 -1
  80. package/bin/live-hooks/useLiveAICompletion.js +0 -186
  81. package/bin/live-hooks/useLiveAICompletion.js.map +0 -1
  82. package/bin/live-hooks/useLiveCoPilot.d.ts +0 -28
  83. package/bin/live-hooks/useLiveCoPilot.d.ts.map +0 -1
  84. package/bin/live-hooks/useLiveCoPilot.js +0 -178
  85. package/bin/live-hooks/useLiveCoPilot.js.map +0 -1
  86. package/bin/live-share-turbo/AzureTurboClient.d.ts +0 -39
  87. package/bin/live-share-turbo/AzureTurboClient.d.ts.map +0 -1
  88. package/bin/live-share-turbo/AzureTurboClient.js +0 -56
  89. package/bin/live-share-turbo/AzureTurboClient.js.map +0 -1
  90. package/bin/live-share-turbo/LiveShareTurboClient.d.ts +0 -53
  91. package/bin/live-share-turbo/LiveShareTurboClient.d.ts.map +0 -1
  92. package/bin/live-share-turbo/LiveShareTurboClient.js +0 -69
  93. package/bin/live-share-turbo/LiveShareTurboClient.js.map +0 -1
  94. package/bin/live-share-turbo/dds-objects/TurboDataObject.d.ts +0 -31
  95. package/bin/live-share-turbo/dds-objects/TurboDataObject.d.ts.map +0 -1
  96. package/bin/live-share-turbo/dds-objects/TurboDataObject.js +0 -75
  97. package/bin/live-share-turbo/dds-objects/TurboDataObject.js.map +0 -1
  98. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.d.ts +0 -48
  99. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.d.ts.map +0 -1
  100. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.js +0 -104
  101. package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.js.map +0 -1
  102. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.d.ts +0 -28
  103. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.d.ts.map +0 -1
  104. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.js +0 -68
  105. package/bin/live-share-turbo/dds-objects/TurboLiveEvent.js.map +0 -1
  106. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.d.ts +0 -60
  107. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.d.ts.map +0 -1
  108. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.js +0 -111
  109. package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.js.map +0 -1
  110. package/bin/live-share-turbo/dds-objects/TurboLivePresence.d.ts +0 -77
  111. package/bin/live-share-turbo/dds-objects/TurboLivePresence.d.ts.map +0 -1
  112. package/bin/live-share-turbo/dds-objects/TurboLivePresence.js +0 -137
  113. package/bin/live-share-turbo/dds-objects/TurboLivePresence.js.map +0 -1
  114. package/bin/live-share-turbo/dds-objects/TurboLiveState.d.ts +0 -30
  115. package/bin/live-share-turbo/dds-objects/TurboLiveState.d.ts.map +0 -1
  116. package/bin/live-share-turbo/dds-objects/TurboLiveState.js +0 -74
  117. package/bin/live-share-turbo/dds-objects/TurboLiveState.js.map +0 -1
  118. package/bin/live-share-turbo/dds-objects/TurboSharedMap.d.ts +0 -61
  119. package/bin/live-share-turbo/dds-objects/TurboSharedMap.d.ts.map +0 -1
  120. package/bin/live-share-turbo/dds-objects/TurboSharedMap.js +0 -108
  121. package/bin/live-share-turbo/dds-objects/TurboSharedMap.js.map +0 -1
  122. package/bin/live-share-turbo/dds-objects/index.d.ts +0 -8
  123. package/bin/live-share-turbo/dds-objects/index.d.ts.map +0 -1
  124. package/bin/live-share-turbo/dds-objects/index.js +0 -8
  125. package/bin/live-share-turbo/dds-objects/index.js.map +0 -1
  126. package/bin/live-share-turbo/index.d.ts +0 -5
  127. package/bin/live-share-turbo/index.d.ts.map +0 -1
  128. package/bin/live-share-turbo/index.js +0 -5
  129. package/bin/live-share-turbo/index.js.map +0 -1
  130. package/bin/live-share-turbo/interfaces/IFluidTurboClient.d.ts +0 -15
  131. package/bin/live-share-turbo/interfaces/IFluidTurboClient.d.ts.map +0 -1
  132. package/bin/live-share-turbo/interfaces/IFluidTurboClient.js +0 -2
  133. package/bin/live-share-turbo/interfaces/IFluidTurboClient.js.map +0 -1
  134. package/bin/live-share-turbo/interfaces/index.d.ts +0 -3
  135. package/bin/live-share-turbo/interfaces/index.d.ts.map +0 -1
  136. package/bin/live-share-turbo/interfaces/index.js +0 -3
  137. package/bin/live-share-turbo/interfaces/index.js.map +0 -1
  138. package/bin/live-share-turbo/internals/FluidTurboClient.d.ts +0 -39
  139. package/bin/live-share-turbo/internals/FluidTurboClient.d.ts.map +0 -1
  140. package/bin/live-share-turbo/internals/FluidTurboClient.js +0 -121
  141. package/bin/live-share-turbo/internals/FluidTurboClient.js.map +0 -1
  142. package/bin/live-share-turbo/internals/index.d.ts +0 -2
  143. package/bin/live-share-turbo/internals/index.d.ts.map +0 -1
  144. package/bin/live-share-turbo/internals/index.js +0 -2
  145. package/bin/live-share-turbo/internals/index.js.map +0 -1
  146. package/bin/live-share-turbo/internals/types.d.ts +0 -4
  147. package/bin/live-share-turbo/internals/types.d.ts.map +0 -1
  148. package/bin/live-share-turbo/internals/types.js +0 -2
  149. package/bin/live-share-turbo/internals/types.js.map +0 -1
  150. package/bin/providers/FluidContextProvider.d.ts +0 -34
  151. package/bin/providers/FluidContextProvider.d.ts.map +0 -1
  152. package/bin/providers/FluidContextProvider.js +0 -99
  153. package/bin/providers/FluidContextProvider.js.map +0 -1
  154. package/bin/providers/LiveShareContextProvider.d.ts +0 -42
  155. package/bin/providers/LiveShareContextProvider.d.ts.map +0 -1
  156. package/bin/providers/LiveShareContextProvider.js +0 -63
  157. package/bin/providers/LiveShareContextProvider.js.map +0 -1
  158. package/bin/shared-hooks/useLockedTask.d.ts +0 -11
  159. package/bin/shared-hooks/useLockedTask.d.ts.map +0 -1
  160. package/bin/shared-hooks/useLockedTask.js +0 -82
  161. package/bin/shared-hooks/useLockedTask.js.map +0 -1
  162. package/bin/shared-hooks/useTaskManager.d.ts +0 -13
  163. package/bin/shared-hooks/useTaskManager.d.ts.map +0 -1
  164. package/bin/shared-hooks/useTaskManager.js +0 -86
  165. package/bin/shared-hooks/useTaskManager.js.map +0 -1
  166. package/bin/utils/getContainerSchema.d.ts +0 -8
  167. package/bin/utils/getContainerSchema.d.ts.map +0 -1
  168. package/bin/utils/getContainerSchema.js +0 -41
  169. package/bin/utils/getContainerSchema.js.map +0 -1
  170. package/src/internal-hooks/index.ts +0 -1
  171. /package/bin/{internal-hooks → internal}/useSharedStateRegistry.d.ts +0 -0
  172. /package/bin/{internal-hooks → internal}/useSharedStateRegistry.js +0 -0
  173. /package/src/{internal-hooks → internal}/useSharedStateRegistry.ts +0 -0
@@ -1,63 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import React from "react";
12
- import { useSharedStateRegistry } from "../internal-hooks";
13
- import { FluidContext } from "./FluidContextProvider";
14
- import { LiveShareTurboClient } from "@microsoft/live-share-turbo";
15
- export const LiveShareContext = React.createContext({});
16
- export const useLiveShareContext = () => {
17
- const context = React.useContext(LiveShareContext);
18
- return context;
19
- };
20
- /**
21
- * React Context provider component for using Live Share data objects & joining a Live Share session using `LiveShareClient`.
22
- */
23
- export const LiveShareContextProvider = (props) => {
24
- const startedRef = React.useRef(false);
25
- const clientRef = React.useRef(new LiveShareTurboClient(props.host, props.clientOptions));
26
- const [results, setResults] = React.useState();
27
- const [joinError, setJoinError] = React.useState();
28
- const stateRegistryCallbacks = useSharedStateRegistry(results);
29
- /**
30
- * Join container callback for joining the Live Share session
31
- */
32
- const join = React.useCallback((initialObjects, onInitializeContainer) => __awaiter(void 0, void 0, void 0, function* () {
33
- startedRef.current = true;
34
- const results = yield clientRef.current.join(initialObjects, onInitializeContainer);
35
- setResults(results);
36
- return results;
37
- }), []);
38
- /**
39
- * Joins the container on load if `props.joinOnLoad` is true
40
- */
41
- React.useEffect(() => {
42
- if (results !== undefined || startedRef.current || !props.joinOnLoad)
43
- return;
44
- join(props.initialObjects).catch((error) => {
45
- console.log(error);
46
- if (error instanceof Error) {
47
- setJoinError(error);
48
- }
49
- else {
50
- setJoinError(new Error("LiveShareContextProvider: An unknown error occurred while joining container."));
51
- }
52
- });
53
- }, [results, props.joinOnLoad, props.initialObjects, join]);
54
- return (_jsx(LiveShareContext.Provider, Object.assign({ value: {
55
- created: results === null || results === void 0 ? void 0 : results.created,
56
- join,
57
- } }, { children: _jsx(FluidContext.Provider, Object.assign({ value: Object.assign({ clientRef, container: results === null || results === void 0 ? void 0 : results.container, services: results === null || results === void 0 ? void 0 : results.services, joinError, getContainer: () => __awaiter(void 0, void 0, void 0, function* () {
58
- throw new Error("Cannot join new container through getContainer in LiveShareContextProvider");
59
- }), createContainer: () => __awaiter(void 0, void 0, void 0, function* () {
60
- throw new Error("Cannot create new container through createContainer in LiveShareContextProvider");
61
- }) }, stateRegistryCallbacks) }, { children: props.children })) })));
62
- };
63
- //# sourceMappingURL=LiveShareContextProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveShareContextProvider.js","sourceRoot":"","sources":["../../src/providers/LiveShareContextProvider.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * A hook for joining a queue to lock tasks for a given id. Guaranteed to have only one user assigned to a task at a time.
3
- *
4
- * @param uniqueKey the unique key for the TaskManager DDS
5
- * @param taskId the task id to lock
6
- * @returns stateful data about the status of the task lock
7
- */
8
- export declare const useLockedTask: (uniqueKey: string, taskId?: string) => {
9
- lockedTask: boolean;
10
- };
11
- //# sourceMappingURL=useLockedTask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLockedTask.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useLockedTask.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,cAAe,MAAM,WAAW,MAAM;gBAChD,OAAO;CA+DtB,CAAC"}
@@ -1,82 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import React, { useEffect } from "react";
11
- import { TaskManager } from "@fluid-experimental/task-manager";
12
- import { useDynamicDDS } from "./useDynamicDDS";
13
- /**
14
- * A hook for joining a queue to lock tasks for a given id. Guaranteed to have only one user assigned to a task at a time.
15
- *
16
- * @param uniqueKey the unique key for the TaskManager DDS
17
- * @param taskId the task id to lock
18
- * @returns stateful data about the status of the task lock
19
- */
20
- export const useLockedTask = (uniqueKey, taskId) => {
21
- /**
22
- * TaskId currently in queue for
23
- */
24
- const currentTaskIdRef = React.useRef(undefined);
25
- /**
26
- * Stateful boolean that is true when the user is currently assigned the task
27
- */
28
- const [lockedTask, setLockedTask] = React.useState(false);
29
- /**
30
- * User facing: dynamically load the TaskManager DDS for the given unique key.
31
- */
32
- const { dds: taskManager } = useDynamicDDS(uniqueKey, TaskManager);
33
- /**
34
- * When the task id changes, lock the task. When the task id is undefined, abandon the task.
35
- */
36
- useEffect(() => {
37
- let mounted = true;
38
- if (taskManager) {
39
- if (taskId && currentTaskIdRef.current !== taskId) {
40
- if (currentTaskIdRef.current) {
41
- taskManager.abandon(currentTaskIdRef.current);
42
- setLockedTask(false);
43
- }
44
- currentTaskIdRef.current = taskId;
45
- const onLockTask = () => __awaiter(void 0, void 0, void 0, function* () {
46
- try {
47
- yield taskManager.lockTask(taskId);
48
- if (mounted) {
49
- setLockedTask(true);
50
- }
51
- }
52
- catch (_a) {
53
- if (mounted) {
54
- setLockedTask(false);
55
- currentTaskIdRef.current = undefined;
56
- }
57
- }
58
- });
59
- onLockTask();
60
- }
61
- else if (!taskId && currentTaskIdRef.current) {
62
- taskManager.abandon(currentTaskIdRef.current);
63
- setLockedTask(false);
64
- currentTaskIdRef.current = undefined;
65
- }
66
- }
67
- /**
68
- * When the component unmounts, abandon the task if it is still locked
69
- */
70
- return () => {
71
- mounted = false;
72
- if (currentTaskIdRef.current) {
73
- taskManager === null || taskManager === void 0 ? void 0 : taskManager.abandon(currentTaskIdRef.current);
74
- }
75
- currentTaskIdRef.current = undefined;
76
- };
77
- }, [taskManager, taskId]);
78
- return {
79
- lockedTask,
80
- };
81
- };
82
- //# sourceMappingURL=useLockedTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLockedTask.js","sourceRoot":"","sources":["../../src/shared-hooks/useLockedTask.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,MAAe,EAE9D,EAAE;IACA;;OAEG;IACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IACrE;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEnE;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,aAAa,CAAc,SAAS,EAAE,WAAW,CAAC,CAAC;IAEhF;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,WAAW,EAAE;YACb,IAAI,MAAM,IAAI,gBAAgB,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC/C,IAAI,gBAAgB,CAAC,OAAO,EAAE;oBAC1B,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC9C,aAAa,CAAC,KAAK,CAAC,CAAC;iBACxB;gBACD,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC;gBAClC,MAAM,UAAU,GAAG,GAAS,EAAE;oBAC1B,IAAI;wBACA,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACnC,IAAI,OAAO,EAAE;4BACT,aAAa,CAAC,IAAI,CAAC,CAAC;yBACvB;qBACJ;oBAAC,WAAM;wBACJ,IAAI,OAAO,EAAE;4BACT,aAAa,CAAC,KAAK,CAAC,CAAC;4BACrB,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;yBACxC;qBACJ;gBACL,CAAC,CAAA,CAAA;gBACD,UAAU,EAAE,CAAC;aAChB;iBAAM,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBAC5C,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;aACxC;SACJ;QACD;;WAEG;QACH,OAAO,GAAG,EAAE;YACR,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBAC1B,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aAClD;YACD,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;QACzC,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,OAAO;QACH,UAAU;KACb,CAAC;AACN,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- import { TaskManager } from "@fluid-experimental/task-manager";
2
- /**
3
- * A hook for joining a queue to lock tasks for a given id. Guaranteed to have only one user assigned to a task at a time.
4
- *
5
- * @param uniqueKey the unique key for the TaskManager DDS
6
- * @param taskId the task id to lock
7
- * @returns stateful data about the status of the task lock
8
- */
9
- export declare const useTaskManager: (uniqueKey: string, taskId?: string) => {
10
- lockedTask: boolean;
11
- taskManager: TaskManager | undefined;
12
- };
13
- //# sourceMappingURL=useTaskManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTaskManager.d.ts","sourceRoot":"","sources":["../../src/shared-hooks/useTaskManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAG,MAAM,kCAAkC,CAAC;AAMhE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,cAAe,MAAM,WAAW,MAAM;gBACjD,OAAO;iBACN,WAAW,GAAG,SAAS;CAgEvC,CAAC"}
@@ -1,86 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import React from "react";
11
- import { useDynamicDDS } from "./useDynamicDDS";
12
- import { TaskManager } from "@fluid-experimental/task-manager";
13
- import { DynamicObjectRegistry } from "@microsoft/live-share";
14
- // Register TaskManager as dynamic object
15
- DynamicObjectRegistry.registerObjectClass(TaskManager, TaskManager.getFactory().type);
16
- /**
17
- * A hook for joining a queue to lock tasks for a given id. Guaranteed to have only one user assigned to a task at a time.
18
- *
19
- * @param uniqueKey the unique key for the TaskManager DDS
20
- * @param taskId the task id to lock
21
- * @returns stateful data about the status of the task lock
22
- */
23
- export const useTaskManager = (uniqueKey, taskId) => {
24
- /**
25
- * TaskId currently in queue for
26
- */
27
- const currentTaskIdRef = React.useRef(undefined);
28
- /**
29
- * Stateful boolean that is true when the user is currently assigned the task
30
- */
31
- const [lockedTask, setLockedTask] = React.useState(false);
32
- /**
33
- * User facing: dynamically load the TaskManager DDS for the given unique key.
34
- */
35
- const { dds: taskManager } = useDynamicDDS(uniqueKey, TaskManager);
36
- /**
37
- * When the task id changes, lock the task. When the task id is undefined, abandon the task.
38
- */
39
- React.useEffect(() => {
40
- let mounted = true;
41
- if (taskManager) {
42
- if (taskId && currentTaskIdRef.current !== taskId) {
43
- if (currentTaskIdRef.current) {
44
- taskManager.abandon(currentTaskIdRef.current);
45
- setLockedTask(false);
46
- }
47
- currentTaskIdRef.current = taskId;
48
- const onLockTask = () => __awaiter(void 0, void 0, void 0, function* () {
49
- try {
50
- yield taskManager.lockTask(taskId);
51
- if (mounted) {
52
- setLockedTask(true);
53
- }
54
- }
55
- catch (_a) {
56
- if (mounted) {
57
- setLockedTask(false);
58
- currentTaskIdRef.current = undefined;
59
- }
60
- }
61
- });
62
- onLockTask();
63
- }
64
- else if (!taskId && currentTaskIdRef.current) {
65
- taskManager.abandon(currentTaskIdRef.current);
66
- setLockedTask(false);
67
- currentTaskIdRef.current = undefined;
68
- }
69
- }
70
- /**
71
- * When the component unmounts, abandon the task if it is still locked
72
- */
73
- return () => {
74
- mounted = false;
75
- if (currentTaskIdRef.current) {
76
- taskManager === null || taskManager === void 0 ? void 0 : taskManager.abandon(currentTaskIdRef.current);
77
- }
78
- currentTaskIdRef.current = undefined;
79
- };
80
- }, [taskManager, taskId]);
81
- return {
82
- lockedTask,
83
- taskManager,
84
- };
85
- };
86
- //# sourceMappingURL=useTaskManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTaskManager.js","sourceRoot":"","sources":["../../src/shared-hooks/useTaskManager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAG,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,yCAAyC;AACzC,qBAAqB,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,MAAe,EAG/D,EAAE;IACA;;OAEG;IACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IACrE;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEnE;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,aAAa,CAAc,SAAS,EAAE,WAAW,CAAC,CAAC;IAEhF;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,WAAW,EAAE;YACb,IAAI,MAAM,IAAI,gBAAgB,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC/C,IAAI,gBAAgB,CAAC,OAAO,EAAE;oBAC1B,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC9C,aAAa,CAAC,KAAK,CAAC,CAAC;iBACxB;gBACD,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC;gBAClC,MAAM,UAAU,GAAG,GAAS,EAAE;oBAC1B,IAAI;wBACA,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACnC,IAAI,OAAO,EAAE;4BACT,aAAa,CAAC,IAAI,CAAC,CAAC;yBACvB;qBACJ;oBAAC,WAAM;wBACJ,IAAI,OAAO,EAAE;4BACT,aAAa,CAAC,KAAK,CAAC,CAAC;4BACrB,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;yBACxC;qBACJ;gBACL,CAAC,CAAA,CAAA;gBACD,UAAU,EAAE,CAAC;aAChB;iBAAM,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBAC5C,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;aACxC;SACJ;QACD;;WAEG;QACH,OAAO,GAAG,EAAE;YACR,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBAC1B,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aAClD;YACD,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;QACzC,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,OAAO;QACH,UAAU;QACV,WAAW;KACd,CAAC;AACN,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the Microsoft Live Share SDK License.
4
- */
5
- import { ContainerSchema, LoadableObjectClass } from "fluid-framework";
6
- export declare function getContainerSchema(additionalDynamicObjectTypes: LoadableObjectClass<any>[] | undefined): ContainerSchema;
7
- export declare function getLiveShareContainerSchema(additionalDynamicObjectTypes: LoadableObjectClass<any>[] | undefined): ContainerSchema;
8
- //# sourceMappingURL=getContainerSchema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getContainerSchema.d.ts","sourceRoot":"","sources":["../../src/utils/getContainerSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EACH,eAAe,EACf,mBAAmB,EAItB,MAAM,iBAAiB,CAAC;AAUzB,wBAAgB,kBAAkB,CAC9B,4BAA4B,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GACrE,eAAe,CAUjB;AAED,wBAAgB,2BAA2B,CACvC,4BAA4B,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,mBAgBvE"}
@@ -1,41 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the Microsoft Live Share SDK License.
4
- */
5
- import { LiveEvent, LivePresence, LiveState, LiveTimer, } from "@microsoft/live-share";
6
- import { LiveCanvas } from "@microsoft/live-share-canvas";
7
- import { LiveMediaSession } from "@microsoft/live-share-media";
8
- import { SharedDirectory, SharedMap, SharedString, } from "fluid-framework";
9
- const schema = {
10
- initialObjects: {
11
- stateMap: SharedMap,
12
- dynamicObjects: SharedMap,
13
- },
14
- dynamicObjectTypes: [SharedMap, SharedString, SharedDirectory],
15
- };
16
- export function getContainerSchema(additionalDynamicObjectTypes) {
17
- const _additionalDynamicObjectTypes = additionalDynamicObjectTypes !== null && additionalDynamicObjectTypes !== void 0 ? additionalDynamicObjectTypes : [];
18
- return {
19
- initialObjects: schema.initialObjects,
20
- dynamicObjectTypes: [
21
- ...schema.dynamicObjectTypes,
22
- ..._additionalDynamicObjectTypes,
23
- ],
24
- };
25
- }
26
- export function getLiveShareContainerSchema(additionalDynamicObjectTypes) {
27
- const liveShareDynamicObjects = [
28
- LiveEvent,
29
- LivePresence,
30
- LiveState,
31
- LiveMediaSession,
32
- LiveTimer,
33
- LiveCanvas,
34
- ];
35
- const _additionalDynamicObjectTypes = additionalDynamicObjectTypes !== null && additionalDynamicObjectTypes !== void 0 ? additionalDynamicObjectTypes : [];
36
- return getContainerSchema([
37
- ...liveShareDynamicObjects,
38
- ..._additionalDynamicObjectTypes,
39
- ]);
40
- }
41
- //# sourceMappingURL=getContainerSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getContainerSchema.js","sourceRoot":"","sources":["../../src/utils/getContainerSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAGH,eAAe,EACf,SAAS,EACT,YAAY,GACf,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,GAAoB;IAC5B,cAAc,EAAE;QACZ,QAAQ,EAAE,SAAS;QACnB,cAAc,EAAE,SAAS;KAC5B;IACD,kBAAkB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC;CACjE,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAC9B,4BAAoE;IAEpE,MAAM,6BAA6B,GAC/B,4BAA4B,aAA5B,4BAA4B,cAA5B,4BAA4B,GAAI,EAAE,CAAC;IACvC,OAAO;QACH,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,kBAAkB,EAAE;YAChB,GAAG,MAAM,CAAC,kBAAmB;YAC7B,GAAG,6BAA6B;SACnC;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,4BAAoE;IAEpE,MAAM,uBAAuB,GAA+B;QACxD,SAAS;QACT,YAAY;QACZ,SAAS;QACT,gBAAgB;QAChB,SAAS;QACT,UAAU;KACb,CAAC;IACF,MAAM,6BAA6B,GAC/B,4BAA4B,aAA5B,4BAA4B,cAA5B,4BAA4B,GAAI,EAAE,CAAC;IACvC,OAAO,kBAAkB,CAAC;QACtB,GAAG,uBAAuB;QAC1B,GAAG,6BAA6B;KACnC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./useSharedStateRegistry";