@fluidframework/react 0.41.4 → 2.63.0-358419
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/.eslintrc.cjs +11 -0
- package/.mocharc.cjs +15 -0
- package/CHANGELOG.md +282 -0
- package/README.md +122 -273
- package/api-extractor/api-extractor-lint-alpha.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-alpha.esm.json +5 -0
- package/api-extractor/api-extractor-lint-beta.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-beta.esm.json +5 -0
- package/api-extractor/api-extractor-lint-bundle.json +5 -0
- package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-public.esm.json +5 -0
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/react.alpha.api.md +114 -0
- package/api-report/react.beta.api.md +7 -0
- package/api-report/react.public.api.md +7 -0
- package/biome.jsonc +4 -0
- package/dist/alpha.d.ts +45 -0
- package/dist/beta.d.ts +15 -0
- package/dist/index.d.ts +11 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -17
- package/dist/index.js.map +1 -1
- package/dist/package.json +4 -0
- package/dist/propNode.d.ts +114 -0
- package/dist/propNode.d.ts.map +1 -0
- package/dist/propNode.js +43 -0
- package/dist/propNode.js.map +1 -0
- package/dist/public.d.ts +15 -0
- package/dist/reactSharedTreeView.d.ts +119 -0
- package/dist/reactSharedTreeView.d.ts.map +1 -0
- package/dist/reactSharedTreeView.js +206 -0
- package/dist/reactSharedTreeView.js.map +1 -0
- package/dist/simpleIdentifier.d.ts +19 -0
- package/dist/simpleIdentifier.d.ts.map +1 -0
- package/dist/simpleIdentifier.js +33 -0
- package/dist/simpleIdentifier.js.map +1 -0
- package/dist/useObservation.d.ts +83 -0
- package/dist/useObservation.d.ts.map +1 -0
- package/dist/useObservation.js +295 -0
- package/dist/useObservation.js.map +1 -0
- package/dist/useTree.d.ts +80 -0
- package/dist/useTree.d.ts.map +1 -0
- package/dist/useTree.js +137 -0
- package/dist/useTree.js.map +1 -0
- package/lib/alpha.d.ts +45 -0
- package/lib/beta.d.ts +15 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +4 -7
- package/lib/index.js.map +1 -1
- package/lib/package.json +4 -0
- package/lib/propNode.d.ts +114 -0
- package/lib/propNode.d.ts.map +1 -0
- package/lib/propNode.js +36 -0
- package/lib/propNode.js.map +1 -0
- package/lib/public.d.ts +15 -0
- package/lib/reactSharedTreeView.d.ts +119 -0
- package/lib/reactSharedTreeView.d.ts.map +1 -0
- package/lib/reactSharedTreeView.js +176 -0
- package/lib/reactSharedTreeView.js.map +1 -0
- package/lib/simpleIdentifier.d.ts +19 -0
- package/lib/simpleIdentifier.d.ts.map +1 -0
- package/lib/simpleIdentifier.js +29 -0
- package/lib/simpleIdentifier.js.map +1 -0
- package/lib/test/propNode.spec.js +120 -0
- package/lib/test/propNode.spec.js.map +1 -0
- package/lib/test/reactSharedTreeView.spec.js +71 -0
- package/lib/test/reactSharedTreeView.spec.js.map +1 -0
- package/lib/test/simpleIdentifier.spec.js +18 -0
- package/lib/test/simpleIdentifier.spec.js.map +1 -0
- package/lib/test/useObservation.spec.js +162 -0
- package/lib/test/useObservation.spec.js.map +1 -0
- package/lib/test/useTree.spec.js +165 -0
- package/lib/test/useTree.spec.js.map +1 -0
- package/lib/tsdoc-metadata.json +11 -0
- package/lib/useObservation.d.ts +83 -0
- package/lib/useObservation.d.ts.map +1 -0
- package/lib/useObservation.js +266 -0
- package/lib/useObservation.js.map +1 -0
- package/lib/useTree.d.ts +80 -0
- package/lib/useTree.d.ts.map +1 -0
- package/lib/useTree.js +105 -0
- package/lib/useTree.js.map +1 -0
- package/package.json +150 -51
- package/react.test-files.tar +0 -0
- package/src/index.ts +42 -7
- package/src/propNode.ts +164 -0
- package/src/reactSharedTreeView.tsx +327 -0
- package/src/simpleIdentifier.ts +31 -0
- package/src/useObservation.ts +376 -0
- package/src/useTree.ts +147 -0
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +12 -15
- package/tsdoc.json +4 -0
- package/.eslintrc.js +0 -11
- package/dist/createContextFluid.d.ts +0 -7
- package/dist/createContextFluid.d.ts.map +0 -1
- package/dist/createContextFluid.js +0 -46
- package/dist/createContextFluid.js.map +0 -1
- package/dist/helpers/generateFluidObjectSchema.d.ts +0 -16
- package/dist/helpers/generateFluidObjectSchema.d.ts.map +0 -1
- package/dist/helpers/generateFluidObjectSchema.js +0 -75
- package/dist/helpers/generateFluidObjectSchema.js.map +0 -1
- package/dist/helpers/getFluidFromView.d.ts +0 -15
- package/dist/helpers/getFluidFromView.d.ts.map +0 -1
- package/dist/helpers/getFluidFromView.js +0 -30
- package/dist/helpers/getFluidFromView.js.map +0 -1
- package/dist/helpers/getFluidState.d.ts +0 -15
- package/dist/helpers/getFluidState.d.ts.map +0 -1
- package/dist/helpers/getFluidState.js +0 -47
- package/dist/helpers/getFluidState.js.map +0 -1
- package/dist/helpers/getSchema.d.ts +0 -13
- package/dist/helpers/getSchema.d.ts.map +0 -1
- package/dist/helpers/getSchema.js +0 -15
- package/dist/helpers/getSchema.js.map +0 -1
- package/dist/helpers/getViewFromFluid.d.ts +0 -18
- package/dist/helpers/getViewFromFluid.d.ts.map +0 -1
- package/dist/helpers/getViewFromFluid.js +0 -47
- package/dist/helpers/getViewFromFluid.js.map +0 -1
- package/dist/helpers/index.d.ts +0 -16
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/index.js +0 -28
- package/dist/helpers/index.js.map +0 -1
- package/dist/helpers/initializeState.d.ts +0 -22
- package/dist/helpers/initializeState.d.ts.map +0 -1
- package/dist/helpers/initializeState.js +0 -77
- package/dist/helpers/initializeState.js.map +0 -1
- package/dist/helpers/internalInterface.d.ts +0 -15
- package/dist/helpers/internalInterface.d.ts.map +0 -1
- package/dist/helpers/internalInterface.js +0 -7
- package/dist/helpers/internalInterface.js.map +0 -1
- package/dist/helpers/rootCallbackListener.d.ts +0 -24
- package/dist/helpers/rootCallbackListener.d.ts.map +0 -1
- package/dist/helpers/rootCallbackListener.js +0 -55
- package/dist/helpers/rootCallbackListener.js.map +0 -1
- package/dist/helpers/setComponentSchema.d.ts +0 -14
- package/dist/helpers/setComponentSchema.d.ts.map +0 -1
- package/dist/helpers/setComponentSchema.js +0 -18
- package/dist/helpers/setComponentSchema.js.map +0 -1
- package/dist/helpers/setFluidState.d.ts +0 -20
- package/dist/helpers/setFluidState.d.ts.map +0 -1
- package/dist/helpers/setFluidState.js +0 -94
- package/dist/helpers/setFluidState.js.map +0 -1
- package/dist/helpers/syncState.d.ts +0 -25
- package/dist/helpers/syncState.d.ts.map +0 -1
- package/dist/helpers/syncState.js +0 -98
- package/dist/helpers/syncState.js.map +0 -1
- package/dist/helpers/updateStateAndFluidObjectMap.d.ts +0 -29
- package/dist/helpers/updateStateAndFluidObjectMap.d.ts.map +0 -1
- package/dist/helpers/updateStateAndFluidObjectMap.js +0 -30
- package/dist/helpers/updateStateAndFluidObjectMap.js.map +0 -1
- package/dist/helpers/utils.d.ts +0 -12
- package/dist/helpers/utils.d.ts.map +0 -1
- package/dist/helpers/utils.js +0 -74
- package/dist/helpers/utils.js.map +0 -1
- package/dist/interface.d.ts +0 -444
- package/dist/interface.d.ts.map +0 -1
- package/dist/interface.js +0 -18
- package/dist/interface.js.map +0 -1
- package/dist/reactView.d.ts +0 -32
- package/dist/reactView.d.ts.map +0 -1
- package/dist/reactView.js +0 -79
- package/dist/reactView.js.map +0 -1
- package/dist/syncedDataObject.d.ts +0 -80
- package/dist/syncedDataObject.d.ts.map +0 -1
- package/dist/syncedDataObject.js +0 -249
- package/dist/syncedDataObject.js.map +0 -1
- package/dist/syncedObjects/array/fluidSyncedArray.d.ts +0 -11
- package/dist/syncedObjects/array/fluidSyncedArray.d.ts.map +0 -1
- package/dist/syncedObjects/array/fluidSyncedArray.js +0 -78
- package/dist/syncedObjects/array/fluidSyncedArray.js.map +0 -1
- package/dist/syncedObjects/array/index.d.ts +0 -7
- package/dist/syncedObjects/array/index.d.ts.map +0 -1
- package/dist/syncedObjects/array/index.js +0 -19
- package/dist/syncedObjects/array/index.js.map +0 -1
- package/dist/syncedObjects/array/interface.d.ts +0 -33
- package/dist/syncedObjects/array/interface.d.ts.map +0 -1
- package/dist/syncedObjects/array/interface.js +0 -3
- package/dist/syncedObjects/array/interface.js.map +0 -1
- package/dist/syncedObjects/array/syncedArray.d.ts +0 -30
- package/dist/syncedObjects/array/syncedArray.d.ts.map +0 -1
- package/dist/syncedObjects/array/syncedArray.js +0 -42
- package/dist/syncedObjects/array/syncedArray.js.map +0 -1
- package/dist/syncedObjects/counter/fluidSyncedCounter.d.ts +0 -11
- package/dist/syncedObjects/counter/fluidSyncedCounter.d.ts.map +0 -1
- package/dist/syncedObjects/counter/fluidSyncedCounter.js +0 -79
- package/dist/syncedObjects/counter/fluidSyncedCounter.js.map +0 -1
- package/dist/syncedObjects/counter/index.d.ts +0 -7
- package/dist/syncedObjects/counter/index.d.ts.map +0 -1
- package/dist/syncedObjects/counter/index.js +0 -19
- package/dist/syncedObjects/counter/index.js.map +0 -1
- package/dist/syncedObjects/counter/interface.d.ts +0 -32
- package/dist/syncedObjects/counter/interface.d.ts.map +0 -1
- package/dist/syncedObjects/counter/interface.js +0 -3
- package/dist/syncedObjects/counter/interface.js.map +0 -1
- package/dist/syncedObjects/counter/syncedCounter.d.ts +0 -29
- package/dist/syncedObjects/counter/syncedCounter.d.ts.map +0 -1
- package/dist/syncedObjects/counter/syncedCounter.js +0 -36
- package/dist/syncedObjects/counter/syncedCounter.js.map +0 -1
- package/dist/syncedObjects/index.d.ts +0 -9
- package/dist/syncedObjects/index.d.ts.map +0 -1
- package/dist/syncedObjects/index.js +0 -21
- package/dist/syncedObjects/index.js.map +0 -1
- package/dist/syncedObjects/object/index.d.ts +0 -7
- package/dist/syncedObjects/object/index.d.ts.map +0 -1
- package/dist/syncedObjects/object/index.js +0 -19
- package/dist/syncedObjects/object/index.js.map +0 -1
- package/dist/syncedObjects/object/interface.d.ts +0 -13
- package/dist/syncedObjects/object/interface.d.ts.map +0 -1
- package/dist/syncedObjects/object/interface.js +0 -7
- package/dist/syncedObjects/object/interface.js.map +0 -1
- package/dist/syncedObjects/object/syncedObject.d.ts +0 -22
- package/dist/syncedObjects/object/syncedObject.d.ts.map +0 -1
- package/dist/syncedObjects/object/syncedObject.js +0 -46
- package/dist/syncedObjects/object/syncedObject.js.map +0 -1
- package/dist/syncedObjects/string/index.d.ts +0 -7
- package/dist/syncedObjects/string/index.d.ts.map +0 -1
- package/dist/syncedObjects/string/index.js +0 -19
- package/dist/syncedObjects/string/index.js.map +0 -1
- package/dist/syncedObjects/string/interface.d.ts +0 -16
- package/dist/syncedObjects/string/interface.d.ts.map +0 -1
- package/dist/syncedObjects/string/interface.js +0 -7
- package/dist/syncedObjects/string/interface.js.map +0 -1
- package/dist/syncedObjects/string/syncedString.d.ts +0 -25
- package/dist/syncedObjects/string/syncedString.d.ts.map +0 -1
- package/dist/syncedObjects/string/syncedString.js +0 -53
- package/dist/syncedObjects/string/syncedString.js.map +0 -1
- package/dist/useReducerFluid.d.ts +0 -7
- package/dist/useReducerFluid.d.ts.map +0 -1
- package/dist/useReducerFluid.js +0 -219
- package/dist/useReducerFluid.js.map +0 -1
- package/dist/useStateFluid.d.ts +0 -10
- package/dist/useStateFluid.d.ts.map +0 -1
- package/dist/useStateFluid.js +0 -67
- package/dist/useStateFluid.js.map +0 -1
- package/lib/createContextFluid.js +0 -23
- package/lib/createContextFluid.js.map +0 -1
- package/lib/helpers/generateFluidObjectSchema.js +0 -71
- package/lib/helpers/generateFluidObjectSchema.js.map +0 -1
- package/lib/helpers/getFluidFromView.js +0 -26
- package/lib/helpers/getFluidFromView.js.map +0 -1
- package/lib/helpers/getFluidState.js +0 -43
- package/lib/helpers/getFluidState.js.map +0 -1
- package/lib/helpers/getSchema.js +0 -11
- package/lib/helpers/getSchema.js.map +0 -1
- package/lib/helpers/getViewFromFluid.js +0 -43
- package/lib/helpers/getViewFromFluid.js.map +0 -1
- package/lib/helpers/index.js +0 -16
- package/lib/helpers/index.js.map +0 -1
- package/lib/helpers/initializeState.js +0 -73
- package/lib/helpers/initializeState.js.map +0 -1
- package/lib/helpers/internalInterface.js +0 -6
- package/lib/helpers/internalInterface.js.map +0 -1
- package/lib/helpers/rootCallbackListener.js +0 -51
- package/lib/helpers/rootCallbackListener.js.map +0 -1
- package/lib/helpers/setComponentSchema.js +0 -14
- package/lib/helpers/setComponentSchema.js.map +0 -1
- package/lib/helpers/setFluidState.js +0 -90
- package/lib/helpers/setFluidState.js.map +0 -1
- package/lib/helpers/syncState.js +0 -94
- package/lib/helpers/syncState.js.map +0 -1
- package/lib/helpers/updateStateAndFluidObjectMap.js +0 -26
- package/lib/helpers/updateStateAndFluidObjectMap.js.map +0 -1
- package/lib/helpers/utils.js +0 -67
- package/lib/helpers/utils.js.map +0 -1
- package/lib/interface.js +0 -8
- package/lib/interface.js.map +0 -1
- package/lib/reactView.js +0 -56
- package/lib/reactView.js.map +0 -1
- package/lib/syncedDataObject.js +0 -245
- package/lib/syncedDataObject.js.map +0 -1
- package/lib/syncedObjects/array/fluidSyncedArray.js +0 -72
- package/lib/syncedObjects/array/fluidSyncedArray.js.map +0 -1
- package/lib/syncedObjects/array/index.js +0 -7
- package/lib/syncedObjects/array/index.js.map +0 -1
- package/lib/syncedObjects/array/interface.js +0 -2
- package/lib/syncedObjects/array/interface.js.map +0 -1
- package/lib/syncedObjects/array/syncedArray.js +0 -37
- package/lib/syncedObjects/array/syncedArray.js.map +0 -1
- package/lib/syncedObjects/counter/fluidSyncedCounter.js +0 -73
- package/lib/syncedObjects/counter/fluidSyncedCounter.js.map +0 -1
- package/lib/syncedObjects/counter/index.js +0 -7
- package/lib/syncedObjects/counter/index.js.map +0 -1
- package/lib/syncedObjects/counter/interface.js +0 -2
- package/lib/syncedObjects/counter/interface.js.map +0 -1
- package/lib/syncedObjects/counter/syncedCounter.js +0 -31
- package/lib/syncedObjects/counter/syncedCounter.js.map +0 -1
- package/lib/syncedObjects/index.js +0 -9
- package/lib/syncedObjects/index.js.map +0 -1
- package/lib/syncedObjects/object/index.js +0 -7
- package/lib/syncedObjects/object/index.js.map +0 -1
- package/lib/syncedObjects/object/interface.js +0 -6
- package/lib/syncedObjects/object/interface.js.map +0 -1
- package/lib/syncedObjects/object/syncedObject.js +0 -41
- package/lib/syncedObjects/object/syncedObject.js.map +0 -1
- package/lib/syncedObjects/string/index.js +0 -7
- package/lib/syncedObjects/string/index.js.map +0 -1
- package/lib/syncedObjects/string/interface.js +0 -6
- package/lib/syncedObjects/string/interface.js.map +0 -1
- package/lib/syncedObjects/string/syncedString.js +0 -48
- package/lib/syncedObjects/string/syncedString.js.map +0 -1
- package/lib/useReducerFluid.js +0 -196
- package/lib/useReducerFluid.js.map +0 -1
- package/lib/useStateFluid.js +0 -44
- package/lib/useStateFluid.js.map +0 -1
- package/src/createContextFluid.tsx +0 -33
- package/src/helpers/generateFluidObjectSchema.ts +0 -95
- package/src/helpers/getFluidFromView.ts +0 -38
- package/src/helpers/getFluidState.ts +0 -67
- package/src/helpers/getSchema.ts +0 -18
- package/src/helpers/getViewFromFluid.ts +0 -68
- package/src/helpers/index.tsx +0 -16
- package/src/helpers/initializeState.ts +0 -162
- package/src/helpers/internalInterface.ts +0 -16
- package/src/helpers/rootCallbackListener.ts +0 -104
- package/src/helpers/setComponentSchema.ts +0 -21
- package/src/helpers/setFluidState.ts +0 -116
- package/src/helpers/syncState.ts +0 -159
- package/src/helpers/updateStateAndFluidObjectMap.ts +0 -85
- package/src/helpers/utils.tsx +0 -109
- package/src/interface.ts +0 -617
- package/src/reactView.tsx +0 -108
- package/src/syncedDataObject.ts +0 -337
- package/src/syncedObjects/array/fluidSyncedArray.ts +0 -126
- package/src/syncedObjects/array/index.ts +0 -7
- package/src/syncedObjects/array/interface.ts +0 -45
- package/src/syncedObjects/array/syncedArray.ts +0 -65
- package/src/syncedObjects/counter/fluidSyncedCounter.ts +0 -122
- package/src/syncedObjects/counter/index.ts +0 -7
- package/src/syncedObjects/counter/interface.ts +0 -44
- package/src/syncedObjects/counter/syncedCounter.ts +0 -64
- package/src/syncedObjects/index.ts +0 -9
- package/src/syncedObjects/object/index.ts +0 -7
- package/src/syncedObjects/object/interface.ts +0 -14
- package/src/syncedObjects/object/syncedObject.ts +0 -55
- package/src/syncedObjects/string/index.ts +0 -7
- package/src/syncedObjects/string/interface.ts +0 -17
- package/src/syncedObjects/string/syncedString.ts +0 -61
- package/src/useReducerFluid.tsx +0 -436
- package/src/useStateFluid.tsx +0 -84
- package/tsconfig.esnext.json +0 -7
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { SharedCounter } from "@fluidframework/counter";
|
|
7
|
-
import {
|
|
8
|
-
IViewState,
|
|
9
|
-
IFluidState,
|
|
10
|
-
ICombinedState,
|
|
11
|
-
IFluidDataProps,
|
|
12
|
-
useReducerFluid,
|
|
13
|
-
SyncedDataObject,
|
|
14
|
-
} from "../..";
|
|
15
|
-
import { IFluidSyncedCounterReducer } from "./interface";
|
|
16
|
-
|
|
17
|
-
export function setFluidSyncedCounterConfig<
|
|
18
|
-
SV extends IViewState,
|
|
19
|
-
SF extends IFluidState
|
|
20
|
-
>(
|
|
21
|
-
syncedDataObject: SyncedDataObject,
|
|
22
|
-
syncedStateId: string,
|
|
23
|
-
viewKey: keyof SV,
|
|
24
|
-
fluidKey: keyof SF,
|
|
25
|
-
defaultViewState: SV,
|
|
26
|
-
sharedObjectCreate = SharedCounter.create,
|
|
27
|
-
) {
|
|
28
|
-
syncedDataObject.setFluidConfig<SV, SF>(syncedStateId, {
|
|
29
|
-
syncedStateId,
|
|
30
|
-
fluidToView: new Map([
|
|
31
|
-
[
|
|
32
|
-
fluidKey,
|
|
33
|
-
{
|
|
34
|
-
type: SharedCounter.name,
|
|
35
|
-
viewKey,
|
|
36
|
-
viewConverter: (viewState, fluidState) => {
|
|
37
|
-
if (fluidState[fluidKey] === undefined) {
|
|
38
|
-
throw Error("Fluid state was not initialized");
|
|
39
|
-
}
|
|
40
|
-
viewState[viewKey] = (fluidState[
|
|
41
|
-
fluidKey
|
|
42
|
-
] as any).value;
|
|
43
|
-
return viewState;
|
|
44
|
-
},
|
|
45
|
-
sharedObjectCreate,
|
|
46
|
-
listenedEvents: ["incremented"],
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
]),
|
|
50
|
-
viewToFluid: new Map([
|
|
51
|
-
[
|
|
52
|
-
viewKey,
|
|
53
|
-
{
|
|
54
|
-
type: "number",
|
|
55
|
-
fluidKey,
|
|
56
|
-
fluidConverter: (viewState, fluidState) => {
|
|
57
|
-
if (fluidState[fluidKey] === undefined) {
|
|
58
|
-
throw Error("Fluid state was not initialized");
|
|
59
|
-
}
|
|
60
|
-
viewState[viewKey] = (fluidState[
|
|
61
|
-
fluidKey
|
|
62
|
-
] as any).value;
|
|
63
|
-
return fluidState;
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
]),
|
|
68
|
-
defaultViewState,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export function generateSyncedCounterReducer<
|
|
73
|
-
SV extends IViewState,
|
|
74
|
-
SF extends IFluidState
|
|
75
|
-
>(viewKey: keyof SV, fluidKey: keyof SF): IFluidSyncedCounterReducer<SV, SF> {
|
|
76
|
-
const syncedCounterReducer = {
|
|
77
|
-
increment: {
|
|
78
|
-
function: (state, step: number) => {
|
|
79
|
-
if (state?.fluidState?.[fluidKey] === undefined) {
|
|
80
|
-
throw Error(
|
|
81
|
-
"State was not initialized prior to dispatch call",
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
const counter = state.fluidState[fluidKey];
|
|
85
|
-
counter.increment(step);
|
|
86
|
-
state.viewState[viewKey] = counter.value;
|
|
87
|
-
return { state };
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
return syncedCounterReducer;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export function useSyncedCounterReducerFluid<
|
|
95
|
-
SV extends IViewState,
|
|
96
|
-
SF extends IFluidState
|
|
97
|
-
>(
|
|
98
|
-
syncedDataObject: SyncedDataObject,
|
|
99
|
-
syncedStateId: string,
|
|
100
|
-
viewKey: keyof SV,
|
|
101
|
-
fluidKey: keyof SF,
|
|
102
|
-
defaultViewState: SV,
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
104
|
-
): [ICombinedState<SV, SF, IFluidDataProps>, IFluidSyncedCounterReducer<SV, SF>, {}] {
|
|
105
|
-
const syncedCounterReducer = generateSyncedCounterReducer(viewKey, fluidKey);
|
|
106
|
-
return useReducerFluid<
|
|
107
|
-
SV,
|
|
108
|
-
SF,
|
|
109
|
-
IFluidSyncedCounterReducer<SV, SF>,
|
|
110
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
111
|
-
{},
|
|
112
|
-
IFluidDataProps
|
|
113
|
-
>(
|
|
114
|
-
{
|
|
115
|
-
syncedDataObject,
|
|
116
|
-
syncedStateId,
|
|
117
|
-
reducer: syncedCounterReducer,
|
|
118
|
-
selector: {},
|
|
119
|
-
},
|
|
120
|
-
defaultViewState,
|
|
121
|
-
);
|
|
122
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { ISharedCounter } from "@fluidframework/counter";
|
|
6
|
-
import {
|
|
7
|
-
IViewState,
|
|
8
|
-
IFluidState,
|
|
9
|
-
IFluidReducer,
|
|
10
|
-
IFluidDataProps,
|
|
11
|
-
FluidStateUpdateFunction,
|
|
12
|
-
} from "../..";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The state interface exposed to the view for the synced counter
|
|
16
|
-
*/
|
|
17
|
-
export interface ISyncedCounterViewState extends IViewState {
|
|
18
|
-
value: number;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* The state interface for the Fluid data source that powers the synced counter
|
|
23
|
-
*/
|
|
24
|
-
export interface ISyncedCounterFluidState extends IFluidState {
|
|
25
|
-
counter: ISharedCounter;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The reducer interface for incrementing the synced counter
|
|
30
|
-
*/
|
|
31
|
-
export interface ISyncedCounterReducer {
|
|
32
|
-
increment: (step: number) => void;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* The underlying reducer interface passed to the useReducerFluid hook to bind the view and Fluid
|
|
37
|
-
* state definitions together
|
|
38
|
-
*/
|
|
39
|
-
export interface IFluidSyncedCounterReducer<
|
|
40
|
-
SV extends IViewState,
|
|
41
|
-
SF extends IFluidState
|
|
42
|
-
> extends IFluidReducer<SV, SF, IFluidDataProps> {
|
|
43
|
-
increment: FluidStateUpdateFunction<SV, SF, IFluidDataProps>;
|
|
44
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
|
|
6
|
-
import { SharedCounter } from "@fluidframework/counter";
|
|
7
|
-
import { SyncedDataObject } from "../..";
|
|
8
|
-
import { ISyncedCounterViewState, ISyncedCounterFluidState, ISyncedCounterReducer } from "./interface";
|
|
9
|
-
import { setFluidSyncedCounterConfig, useSyncedCounterReducerFluid } from "./fluidSyncedCounter";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Function to set the config for a synced counter on a syncedDataObject's SharedMap synced state. This
|
|
13
|
-
* will initialize and provide a SharedCount for the view to use. This SharedString provided is automatically
|
|
14
|
-
* bound to the state update of the functional view useSyncedCounter is called in.
|
|
15
|
-
* @param syncedDataObject - The Fluid data object on which the synced state config is being set
|
|
16
|
-
* @param syncedStateId - The ID of the view state that this config schema is being set for
|
|
17
|
-
* @param defaultValue - The default number the view value will be set to prior to the Fluid counter initializing
|
|
18
|
-
* @param sharedObjectCreate - The creation function for the SharedCounter. This can be set to pre-increment the counter
|
|
19
|
-
*/
|
|
20
|
-
export function setSyncedCounterConfig(
|
|
21
|
-
syncedDataObject: SyncedDataObject,
|
|
22
|
-
syncedStateId: string,
|
|
23
|
-
defaultValue: number = 0,
|
|
24
|
-
sharedObjectCreate: (runtime: IFluidDataStoreRuntime) => SharedCounter = SharedCounter.create,
|
|
25
|
-
) {
|
|
26
|
-
setFluidSyncedCounterConfig<ISyncedCounterViewState, ISyncedCounterFluidState>(
|
|
27
|
-
syncedDataObject,
|
|
28
|
-
syncedStateId,
|
|
29
|
-
"value",
|
|
30
|
-
"counter",
|
|
31
|
-
{ value: defaultValue },
|
|
32
|
-
sharedObjectCreate,
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Function to use the synced counter state powered by a SharedCounter that has been prepared for this view
|
|
38
|
-
* @param syncedDataObject - The Fluid data object that holds the synced state config for this view
|
|
39
|
-
* @param syncedStateId - The ID of this view state
|
|
40
|
-
* @returns [
|
|
41
|
-
* the number that the SharedCounter has been incremented to,
|
|
42
|
-
* the reducer to modify the SharedCounter by incrementing it
|
|
43
|
-
* ]
|
|
44
|
-
*/
|
|
45
|
-
export function useSyncedCounter(
|
|
46
|
-
syncedDataObject: SyncedDataObject,
|
|
47
|
-
syncedStateId: string,
|
|
48
|
-
defaultValue: number = 0,
|
|
49
|
-
): [number, ISyncedCounterReducer] {
|
|
50
|
-
type viewState = ISyncedCounterViewState;
|
|
51
|
-
type fluidState = ISyncedCounterFluidState;
|
|
52
|
-
const [state, fluidReducer] = useSyncedCounterReducerFluid<viewState, fluidState>(
|
|
53
|
-
syncedDataObject,
|
|
54
|
-
syncedStateId,
|
|
55
|
-
"value",
|
|
56
|
-
"counter",
|
|
57
|
-
{ value: defaultValue },
|
|
58
|
-
);
|
|
59
|
-
const reducer: ISyncedCounterReducer = {
|
|
60
|
-
increment: (step: number) => fluidReducer.increment.function(state, step),
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
return [state.viewState.value, reducer];
|
|
64
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { IFluidReactState } from "../..";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* The synced state definition that will fill the value parameter with the type T object that will be
|
|
10
|
-
* defined in the synced state config
|
|
11
|
-
*/
|
|
12
|
-
export interface ISyncedMapState<T> extends IFluidReactState {
|
|
13
|
-
value: T;
|
|
14
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { SyncedDataObject } from "../..";
|
|
7
|
-
import { useStateFluid } from "../../useStateFluid";
|
|
8
|
-
import { ISyncedMapState } from "./interface";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Function to set the config for any type T object on a syncedDataObject's SharedMap synced state
|
|
12
|
-
* @param syncedDataObject - The Fluid data object on which the synced state config is being set
|
|
13
|
-
* @param syncedStateId - The ID of the view state that this config schema is being set for
|
|
14
|
-
* @param defaultValue - The default value of type T that the state will be initialized with prior to
|
|
15
|
-
* Fluid initialization
|
|
16
|
-
*/
|
|
17
|
-
export function setSyncedObjectConfig<T>(
|
|
18
|
-
syncedDataObject: SyncedDataObject,
|
|
19
|
-
syncedStateId: string,
|
|
20
|
-
defaultValue: T,
|
|
21
|
-
) {
|
|
22
|
-
syncedDataObject.setConfig<ISyncedMapState<T>>(syncedStateId, {
|
|
23
|
-
syncedStateId,
|
|
24
|
-
fluidToView: new Map([
|
|
25
|
-
[
|
|
26
|
-
"value", {
|
|
27
|
-
type: "any",
|
|
28
|
-
viewKey: "value",
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
]),
|
|
32
|
-
defaultViewState: { value: defaultValue },
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Function to use the synced state of type T that has been prepared for this view
|
|
38
|
-
* @param syncedDataObject - The Fluid data object that holds the synced state config for this view
|
|
39
|
-
* @param syncedStateId - The ID of this view state
|
|
40
|
-
* @param defaultValue - The default value of type T that the view state will be initialized with
|
|
41
|
-
* @returns [the initialized synced state of type T, a synced setState call for the state]
|
|
42
|
-
*/
|
|
43
|
-
export function useSyncedObject<T>(
|
|
44
|
-
syncedDataObject: SyncedDataObject,
|
|
45
|
-
syncedStateId: string,
|
|
46
|
-
defaultValue: T,
|
|
47
|
-
): [T, (newState: T) => void] {
|
|
48
|
-
const [state, setState] = useStateFluid<ISyncedMapState<T>, ISyncedMapState<T>>(
|
|
49
|
-
{
|
|
50
|
-
syncedDataObject,
|
|
51
|
-
syncedStateId,
|
|
52
|
-
}, { value: defaultValue },
|
|
53
|
-
);
|
|
54
|
-
return [state.value, (newState: T) => setState({ value: newState })];
|
|
55
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { SharedString } from "@fluidframework/sequence";
|
|
7
|
-
import { IFluidReactState } from "../..";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* The state definition for a synced string
|
|
11
|
-
* TODO: Add a proper SharedString to string mapping but, for now, you can pass the pre-initialized SharedString
|
|
12
|
-
* directly into the CollaborativeInput provided by the react-inputs package from within
|
|
13
|
-
* the React functional view useSyncedString is called in
|
|
14
|
-
*/
|
|
15
|
-
export interface ISyncedStringState extends IFluidReactState {
|
|
16
|
-
value?: SharedString;
|
|
17
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { SharedString } from "@fluidframework/sequence";
|
|
7
|
-
import { SyncedDataObject } from "../..";
|
|
8
|
-
import { useStateFluid } from "../../useStateFluid";
|
|
9
|
-
import { ISyncedStringState } from "./interface";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Function to set the config for a synced string on a syncedDataObject's SharedMap synced state. This
|
|
13
|
-
* will initialize and provide a SharedString for the view to use. This SharedString provided is automatically
|
|
14
|
-
* bound to the state update of the functional view useSyncedString is called in. It can also easily be placed
|
|
15
|
-
* in a CollaborativeInput within a React view.
|
|
16
|
-
* @param syncedDataObject - The Fluid data object on which the synced state config is being set
|
|
17
|
-
* @param syncedStateId - The ID of the view state that this config schema is being set for
|
|
18
|
-
* @param defaultValue - The default string that the SharedString will be initialized as
|
|
19
|
-
*/
|
|
20
|
-
export function setSyncedStringConfig(
|
|
21
|
-
syncedDataObject: SyncedDataObject,
|
|
22
|
-
syncedStateId: string,
|
|
23
|
-
defaultValue: string,
|
|
24
|
-
) {
|
|
25
|
-
syncedDataObject.setConfig<ISyncedStringState>(syncedStateId, {
|
|
26
|
-
syncedStateId,
|
|
27
|
-
fluidToView: new Map([
|
|
28
|
-
[
|
|
29
|
-
"value", {
|
|
30
|
-
type: SharedString.name,
|
|
31
|
-
viewKey: "value",
|
|
32
|
-
sharedObjectCreate: (runtime) => {
|
|
33
|
-
const url = SharedString.create(runtime);
|
|
34
|
-
url.insertText(0, defaultValue);
|
|
35
|
-
return url;
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
]) as any,
|
|
40
|
-
defaultViewState: {},
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Function to use the SharedString state that has been prepared for this view
|
|
46
|
-
* @param syncedDataObject - The Fluid data object that holds the synced state config for this view
|
|
47
|
-
* @param syncedStateId - The ID of this view state
|
|
48
|
-
* @returns [the initialized SharedString, a synced setState call for the SharedString]
|
|
49
|
-
*/
|
|
50
|
-
export function useSyncedString(
|
|
51
|
-
syncedDataObject: SyncedDataObject,
|
|
52
|
-
syncedStateId: string,
|
|
53
|
-
): [SharedString | undefined, (newState: ISyncedStringState) => void] {
|
|
54
|
-
const [state, setState] = useStateFluid<ISyncedStringState, ISyncedStringState>(
|
|
55
|
-
{
|
|
56
|
-
syncedDataObject,
|
|
57
|
-
syncedStateId,
|
|
58
|
-
}, {},
|
|
59
|
-
);
|
|
60
|
-
return [state.value, setState];
|
|
61
|
-
}
|