@powerhousedao/reactor-browser 4.0.0-staging.6 → 4.0.1

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 (49) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/hooks/document-state.d.ts.map +1 -1
  3. package/dist/src/hooks/document-state.js +2 -2
  4. package/dist/src/hooks/document-state.js.map +1 -1
  5. package/dist/src/hooks/index.d.ts +2 -0
  6. package/dist/src/hooks/index.d.ts.map +1 -1
  7. package/dist/src/hooks/index.js +2 -0
  8. package/dist/src/hooks/index.js.map +1 -1
  9. package/dist/src/hooks/useAddDebouncedOperations.d.ts +2 -1
  10. package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +1 -1
  11. package/dist/src/hooks/useAddDebouncedOperations.js +15 -8
  12. package/dist/src/hooks/useAddDebouncedOperations.js.map +1 -1
  13. package/dist/src/hooks/useDocument.d.ts +1 -0
  14. package/dist/src/hooks/useDocument.d.ts.map +1 -1
  15. package/dist/src/hooks/useDocument.js +14 -8
  16. package/dist/src/hooks/useDocument.js.map +1 -1
  17. package/dist/src/hooks/useDocumentEditor.d.ts +3 -3
  18. package/dist/src/hooks/useDocumentEditor.d.ts.map +1 -1
  19. package/dist/src/hooks/useDocumentEditor.js +6 -8
  20. package/dist/src/hooks/useDocumentEditor.js.map +1 -1
  21. package/dist/src/hooks/useDriveActions.d.ts +4 -1
  22. package/dist/src/hooks/useDriveActions.d.ts.map +1 -1
  23. package/dist/src/hooks/useDriveActions.js +22 -4
  24. package/dist/src/hooks/useDriveActions.js.map +1 -1
  25. package/dist/src/hooks/useDriveActionsWithUiNodes.d.ts +17 -0
  26. package/dist/src/hooks/useDriveActionsWithUiNodes.d.ts.map +1 -0
  27. package/dist/src/hooks/useDriveActionsWithUiNodes.js +72 -0
  28. package/dist/src/hooks/useDriveActionsWithUiNodes.js.map +1 -0
  29. package/dist/src/hooks/useDriveContext.d.ts +95 -1
  30. package/dist/src/hooks/useDriveContext.d.ts.map +1 -1
  31. package/dist/src/hooks/useDriveContext.js.map +1 -1
  32. package/dist/src/hooks/useUiNodesContext.d.ts +25 -0
  33. package/dist/src/hooks/useUiNodesContext.d.ts.map +1 -0
  34. package/dist/src/hooks/useUiNodesContext.js +168 -0
  35. package/dist/src/hooks/useUiNodesContext.js.map +1 -0
  36. package/dist/src/reactor.js +1 -1
  37. package/dist/src/reactor.js.map +1 -1
  38. package/dist/src/types/drive-editor.d.ts +69 -83
  39. package/dist/src/types/drive-editor.d.ts.map +1 -1
  40. package/dist/src/uiNodes/constants.d.ts +17 -0
  41. package/dist/src/uiNodes/constants.d.ts.map +1 -0
  42. package/dist/src/uiNodes/constants.js +24 -0
  43. package/dist/src/uiNodes/constants.js.map +1 -0
  44. package/dist/src/uiNodes/types.d.ts +61 -0
  45. package/dist/src/uiNodes/types.d.ts.map +1 -0
  46. package/dist/src/uiNodes/types.js +2 -0
  47. package/dist/src/uiNodes/types.js.map +1 -0
  48. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  49. package/package.json +3 -3
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerhousedao/reactor-browser",
3
- "version": "3.3.0-dev.19",
3
+ "version": "4.0.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1 +1 @@
1
- {"version":3,"file":"document-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/document-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GACzC,IAAI,CACF,gBAAgB,EAChB,cAAc,GAAG,UAAU,GAAG,iBAAiB,GAAG,sBAAsB,CACzE,CAAC;AAEJ,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CA+D5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,UAGvC;IACL,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,+BAaJ;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,UAGvC;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,eAYpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB,aASA"}
1
+ {"version":3,"file":"document-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/document-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GACzC,IAAI,CACF,gBAAgB,EAChB,cAAc,GAAG,UAAU,GAAG,iBAAiB,GAAG,sBAAsB,CACzE,CAAC;AAEJ,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAgE5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,UAGvC;IACL,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,+BAaJ;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,UAGvC;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,eAYpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB,aASA"}
@@ -14,7 +14,7 @@ export function useDocumentsState(args) {
14
14
  const ids = documentIds ?? (await reactor.getDocuments(driveId));
15
15
  const statesByDocumentId = {};
16
16
  for (const id of ids) {
17
- const document = await reactor.getDocument(id, options);
17
+ const document = await reactor.getDocument(driveId, id, options);
18
18
  statesByDocumentId[id] = {
19
19
  ...document.state,
20
20
  documentType: document.header.documentType,
@@ -37,7 +37,7 @@ export function useDocumentsState(args) {
37
37
  if (update.driveId !== driveId ||
38
38
  (documentIds && !documentIds.includes(update.documentId)))
39
39
  return;
40
- const updatedDocument = await reactor.getDocument(update.documentId, options);
40
+ const updatedDocument = await reactor.getDocument(driveId, update.documentId, options);
41
41
  setStatesByDocumentId((prev) => {
42
42
  const newStatesByDocumentId = { ...prev };
43
43
  newStatesByDocumentId[update.documentId] = {
@@ -1 +1 @@
1
- {"version":3,"file":"document-state.js","sourceRoot":"","sources":["../../../src/hooks/document-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-state.js","sourceRoot":"","sources":["../../../src/hooks/document-state.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export * from "./useDocument.js";
3
3
  export * from "./useDocumentDrives.js";
4
4
  export * from "./useDocumentEditor.js";
5
5
  export * from "./useDriveActions.js";
6
+ export * from "./useDriveActionsWithUiNodes.js";
6
7
  export * from "./useDriveContext.js";
8
+ export * from "./useUiNodesContext.js";
7
9
  export * from "./useUserPermissions.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -3,6 +3,8 @@ export * from "./useDocument.js";
3
3
  export * from "./useDocumentDrives.js";
4
4
  export * from "./useDocumentEditor.js";
5
5
  export * from "./useDriveActions.js";
6
+ export * from "./useDriveActionsWithUiNodes.js";
6
7
  export * from "./useDriveContext.js";
8
+ export * from "./useUiNodesContext.js";
7
9
  export * from "./useUserPermissions.js";
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { type Operation, type PHDocument } from "document-model";
2
2
  import { type IDocumentDriveServer } from "document-drive";
3
3
  export type UseAddDebouncedOperationsProps = {
4
- documentId: string | undefined;
4
+ driveId: string;
5
+ documentId: string;
5
6
  };
6
7
  export declare function useAddDebouncedOperations(reactor: IDocumentDriveServer | undefined, props: UseAddDebouncedOperationsProps): (operation: Operation) => Promise<PHDocument | undefined>;
7
8
  //# sourceMappingURL=useAddDebouncedOperations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAddDebouncedOperations.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddDebouncedOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AA0C3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,KAAK,EAAE,8BAA8B,eAvClB,SAAS,qCA2E7B"}
1
+ {"version":3,"file":"useAddDebouncedOperations.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddDebouncedOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AA2C3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,KAAK,EAAE,8BAA8B,eAxClB,SAAS,qCA0F7B"}
@@ -1,4 +1,5 @@
1
- import { useCallback, useMemo } from "react";
1
+ import { useCallback, useEffect, useMemo, useRef } from "react";
2
+ import { useDocumentDrives } from "./useDocumentDrives.js";
2
3
  import { useUserPermissions } from "./useUserPermissions.js";
3
4
  function debounceOperations(callback, timeout = 50) {
4
5
  let timer;
@@ -27,27 +28,33 @@ function debounceOperations(callback, timeout = 50) {
27
28
  };
28
29
  }
29
30
  export function useAddDebouncedOperations(reactor, props) {
30
- const { documentId } = props;
31
+ const { driveId, documentId } = props;
32
+ const [documentDrives] = useDocumentDrives(reactor);
33
+ const documentDrivesRef = useRef(documentDrives);
31
34
  const { isAllowedToEditDocuments } = useUserPermissions() || {
32
35
  isAllowedToCreateDocuments: false,
33
36
  isAllowedToEditDocuments: false,
34
37
  };
35
- const addOperations = useCallback(async (id, operations) => {
38
+ useEffect(() => {
39
+ documentDrivesRef.current = documentDrives;
40
+ }, [documentDrives]);
41
+ const addOperations = useCallback(async (driveId, id, operations) => {
36
42
  if (!isAllowedToEditDocuments) {
37
43
  throw new Error("User is not allowed to edit documents");
38
44
  }
39
45
  if (!reactor) {
40
46
  throw new Error("Reactor is not loaded");
41
47
  }
42
- if (!id) {
43
- throw new Error("Document id is not set");
48
+ const drive = documentDrivesRef.current.find((drive) => drive.header.id === driveId);
49
+ if (!drive) {
50
+ throw new Error(`Drive with id ${driveId} not found`);
44
51
  }
45
- const newDocument = await reactor.queueOperations(id, operations);
52
+ const newDocument = await reactor.queueOperations(driveId, id, operations);
46
53
  return newDocument.document;
47
54
  }, [isAllowedToEditDocuments, reactor]);
48
55
  const addDebouncedOperations = useMemo(() => {
49
- return debounceOperations((operations) => addOperations(documentId, operations));
50
- }, [addOperations, documentId]);
56
+ return debounceOperations((operations) => addOperations(driveId, documentId, operations));
57
+ }, [addOperations, driveId, documentId]);
51
58
  return addDebouncedOperations;
52
59
  }
53
60
  //# sourceMappingURL=useAddDebouncedOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAddDebouncedOperations.js","sourceRoot":"","sources":["../../../src/hooks/useAddDebouncedOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAddDebouncedOperations.js","sourceRoot":"","sources":["../../../src/hooks/useAddDebouncedOperations.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type IDocumentDriveServer } from "document-drive";
2
2
  import { type PHDocument } from "document-model";
3
3
  export type DocumentMeta = {
4
+ driveId?: string;
4
5
  documentId?: string;
5
6
  documentType?: string;
6
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDocument.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,WAAW,CACzB,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,YAAY,GAAE,YAAiB,0BAqChC"}
1
+ {"version":3,"file":"useDocument.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,WAAW,CACzB,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,YAAY,GAAE,YAAiB,0BA2ChC"}
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useEffect, useState } from "react";
2
2
  export function useDocument(reactor, documentMeta = {}) {
3
- const { documentId, documentType } = documentMeta;
3
+ const { documentId, documentType, driveId } = documentMeta;
4
4
  const [document, setDocument] = useState();
5
5
  const onStrandUpdate = useCallback((cb) => {
6
6
  if (!reactor) {
@@ -11,22 +11,28 @@ export function useDocument(reactor, documentMeta = {}) {
11
11
  useEffect(() => {
12
12
  if (!reactor)
13
13
  return;
14
- if (!documentId || !documentType)
14
+ if (!driveId || !documentId || !documentType)
15
15
  return;
16
- reactor.getDocument(documentId).then(setDocument).catch(console.error);
17
- }, [documentId, documentType, reactor]);
16
+ reactor
17
+ .getDocument(driveId, documentId)
18
+ .then(setDocument)
19
+ .catch(console.error);
20
+ }, [driveId, documentId, documentType, reactor]);
18
21
  useEffect(() => {
19
22
  if (!reactor)
20
23
  return;
21
- if (!documentId || !documentType)
24
+ if (!driveId || !documentId || !documentType)
22
25
  return;
23
26
  const removeListener = onStrandUpdate((strand) => {
24
- if (strand.documentId === documentId) {
25
- reactor.getDocument(documentId).then(setDocument).catch(console.error);
27
+ if (strand.driveId === driveId && strand.documentId === documentId) {
28
+ reactor
29
+ .getDocument(driveId, documentId)
30
+ .then(setDocument)
31
+ .catch(console.error);
26
32
  }
27
33
  });
28
34
  return removeListener;
29
- }, [onStrandUpdate, documentId, documentType]);
35
+ }, [onStrandUpdate, driveId, documentId, documentType]);
30
36
  return document;
31
37
  }
32
38
  //# sourceMappingURL=useDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDocument.js","sourceRoot":"","sources":["../../../src/hooks/useDocument.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOzD,MAAM,UAAU,WAAW,CACzB,OAAyC,EACzC,eAA6B,EAAE;IAE/B,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;IAElD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAA0B,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,EAAkC,EAAE,EAAE;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY;YAAE,OAAO;QAEzC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY;YAAE,OAAO;QAEzC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"useDocument.js","sourceRoot":"","sources":["../../../src/hooks/useDocument.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQzD,MAAM,UAAU,WAAW,CACzB,OAAyC,EACzC,eAA6B,EAAE;IAE/B,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAE3D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAA0B,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,EAAkC,EAAE,EAAE;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY;YAAE,OAAO;QAErD,OAAO;aACJ,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC;aAChC,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY;YAAE,OAAO;QAErD,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACnE,OAAO;qBACJ,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC;qBAChC,IAAI,CAAC,WAAW,CAAC;qBACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAExD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -7,10 +7,10 @@ export type DocumentDispatchCallback<TDocument extends PHDocument> = (operation:
7
7
  newState: TDocument;
8
8
  }) => void;
9
9
  export type UseDocumentEditorProps<TDocument extends PHDocument> = {
10
- driveId: string | undefined;
11
- nodeId: string | undefined;
10
+ driveId: string;
11
+ nodeId: string;
12
12
  document: TDocument | undefined;
13
- documentModelModule: DocumentModelModule<TDocument> | undefined;
13
+ documentModelModule: DocumentModelModule<TDocument>;
14
14
  user?: User;
15
15
  onExport?: () => void;
16
16
  onOpenSwitchboardLink?: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentEditor.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDocumentEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAM/C,MAAM,MAAM,wBAAwB,CAAC,SAAS,SAAS,UAAU,IAAI,CACnE,SAAS,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAC3C,KAAK,EAAE;IACL,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB,KACE,IAAI,CAAC;AAEV,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,UAAU,IAAI;IACjE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,mBAAmB,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAChE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,UAAU,EACjE,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG;IACzC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CAC9B;uBAqBS,kBAAkB,CAAC,SAAS,CAAC,oBACnB,mBAAmB;;;EAsCxC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,SAAS,UAAU,EAC5D,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC;wEA1CpB,mBAAmB;;;EAsDxC"}
1
+ {"version":3,"file":"useDocumentEditor.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDocumentEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAM/C,MAAM,MAAM,wBAAwB,CAAC,SAAS,SAAS,UAAU,IAAI,CACnE,SAAS,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAC3C,KAAK,EAAE;IACL,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB,KACE,IAAI,CAAC;AAEV,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,UAAU,IAAI;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,mBAAmB,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,UAAU,EACjE,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG;IACzC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CAC9B;uBAuBS,kBAAkB,CAAC,SAAS,CAAC,oBACnB,mBAAmB;;;EAkCxC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,SAAS,UAAU,EAC5D,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC;wEAtCpB,mBAAmB;;;EAkDxC"}
@@ -3,20 +3,18 @@ import { useAddDebouncedOperations } from "./useAddDebouncedOperations.js";
3
3
  import { useConnectCrypto, useConnectDid } from "./useConnectCrypto.js";
4
4
  import { useDocumentDispatch } from "./useDocumentDispatch.js";
5
5
  export function useDocumentEditorProps(reactor, props) {
6
- const { nodeId, documentModelModule, document: initialDocument, user, connectDid, sign, } = props;
7
- const addDebouncedOperations = useAddDebouncedOperations(reactor, {
6
+ const { nodeId, driveId, documentModelModule, document: initialDocument, user, connectDid, sign, } = props;
7
+ const addDebouncedOprations = useAddDebouncedOperations(reactor, {
8
+ driveId,
8
9
  documentId: nodeId,
9
10
  });
10
- const [document, _dispatch, error] = useDocumentDispatch(documentModelModule?.reducer, initialDocument);
11
+ const [document, _dispatch, error] = useDocumentDispatch(documentModelModule.reducer, initialDocument);
11
12
  function dispatch(action, onErrorCallback) {
12
13
  const callback = (operation, state) => {
13
14
  const { prevState } = state;
14
- if (!nodeId) {
15
- throw new Error("Node id is not set");
16
- }
17
- signOperation(operation, sign, nodeId, prevState, documentModelModule?.reducer, user)
15
+ signOperation(operation, sign, nodeId, prevState, documentModelModule.reducer, user)
18
16
  .then((op) => {
19
- return addDebouncedOperations(op);
17
+ return addDebouncedOprations(op);
20
18
  })
21
19
  .catch(console.error);
22
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentEditor.js","sourceRoot":"","sources":["../../../src/hooks/useDocumentEditor.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAqB/D,MAAM,UAAU,sBAAsB,CACpC,OAAyC,EACzC,KAGC;IAED,MAAM,EACJ,MAAM,EACN,mBAAmB,EACnB,QAAQ,EAAE,eAAe,EACzB,IAAI,EACJ,UAAU,EACV,IAAI,GACL,GAAG,KAAK,CAAC;IAEV,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,OAAO,EAAE;QAChE,UAAU,EAAE,MAAM;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,mBAAmB,CACtD,mBAAmB,EAAE,OAAO,EAC5B,eAAe,CAChB,CAAC;IAEF,SAAS,QAAQ,CACf,MAAqC,EACrC,eAAqC;QAErC,MAAM,QAAQ,GAAwC,CACpD,SAAS,EACT,KAAK,EACL,EAAE;YACF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YAED,aAAa,CACX,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,mBAAmB,EAAE,OAAO,EAC5B,IAAI,CACL;iBACE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACX,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC;iBACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,SAAS,CACP,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAC1C,QAAQ,EACR,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAyC,EACzC,KAAwC;IAExC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEpC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,EAAE;QAC7D,GAAG,KAAK;QACR,UAAU;QACV,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"useDocumentEditor.js","sourceRoot":"","sources":["../../../src/hooks/useDocumentEditor.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAqB/D,MAAM,UAAU,sBAAsB,CACpC,OAAyC,EACzC,KAGC;IAED,MAAM,EACJ,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,QAAQ,EAAE,eAAe,EACzB,IAAI,EACJ,UAAU,EACV,IAAI,GACL,GAAG,KAAK,CAAC;IAEV,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,OAAO,EAAE;QAC/D,OAAO;QACP,UAAU,EAAE,MAAM;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,mBAAmB,CACtD,mBAAmB,CAAC,OAAO,EAC3B,eAAe,CAChB,CAAC;IAEF,SAAS,QAAQ,CACf,MAAqC,EACrC,eAAqC;QAErC,MAAM,QAAQ,GAAwC,CACpD,SAAS,EACT,KAAK,EACL,EAAE;YACF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAE5B,aAAa,CACX,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,mBAAmB,CAAC,OAAO,EAC3B,IAAI,CACL;iBACE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACX,OAAO,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC;iBACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,SAAS,CACP,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAC1C,QAAQ,EACR,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAyC,EACzC,KAAwC;IAExC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEpC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,EAAE;QAC7D,GAAG,KAAK;QACR,UAAU;QACV,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
@@ -1,12 +1,15 @@
1
1
  import { type DocumentDriveAction, type DocumentDriveDocument } from "document-drive";
2
2
  import { type EditorDispatch, type PHDocument } from "document-model";
3
- import { type IDriveContext } from "../types/drive-editor.js";
3
+ import { type UiNode } from "../uiNodes/types.js";
4
+ import { type IDriveContext } from "./useDriveContext.js";
4
5
  /**
5
6
  * Actions for managing a document drive
6
7
  */
7
8
  export interface IDriveActions {
8
9
  /** The drive context provided by the host application */
9
10
  context: IDriveContext;
11
+ /** Selects a node in the drive */
12
+ selectNode: (node: UiNode | null) => void;
10
13
  /**
11
14
  * Creates a new folder in the drive
12
15
  * @param name - Name of the folder
@@ -1 +1 @@
1
- {"version":3,"file":"useDriveActions.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDriveActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAQ3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAc9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,OAAO,EAAE,aAAa,CAAC;IAEvB;;;;;OAKG;IACH,SAAS,EAAE,CACT,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,EAAE,CAAC,EAAE,MAAM,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;;;;;;OAOG;IACH,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,UAAU,EACrB,YAAY,CAAC,EAAE,MAAM,EACrB,EAAE,CAAC,EAAE,MAAM,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;OAIG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;OAIG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;OAIG;IACH,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAoID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,cAAc,CAAC,mBAAmB,CAAC,EAC7C,OAAO,EAAE,aAAa,GACrB,aAAa,CAKf"}
1
+ {"version":3,"file":"useDriveActions.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDriveActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAS3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAc1D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,OAAO,EAAE,aAAa,CAAC;IAEvB,kCAAkC;IAClC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,SAAS,EAAE,CACT,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,EAAE,CAAC,EAAE,MAAM,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;;;;;;OAOG;IACH,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,UAAU,EACrB,YAAY,CAAC,EAAE,MAAM,EACrB,EAAE,CAAC,EAAE,MAAM,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;OAIG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;OAIG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;OAIG;IACH,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAyJD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,cAAc,CAAC,mBAAmB,CAAC,EAC7C,OAAO,EAAE,aAAa,GACrB,aAAa,CAKf"}
@@ -1,4 +1,4 @@
1
- import { addFolder, copyNode, deleteNode, generateNodesCopy, isFolderNode, moveNode, updateNode, } from "document-drive";
1
+ import { addFolder, copyNode, deleteNode, generateAddNodeAction, generateNodesCopy, isFolderNode, moveNode, updateNode, } from "document-drive";
2
2
  import { generateId as _generateId, } from "document-model";
3
3
  import { useMemo } from "react";
4
4
  const generateId = () => _generateId().toString();
@@ -20,6 +20,7 @@ function getNode(id, drive) {
20
20
  function createDriveActions(document, dispatch, context) {
21
21
  const drive = document;
22
22
  const driveId = drive.header.id;
23
+ const { selectedNode } = context;
23
24
  const handleAddFolder = async (name, parentFolder, id = generateId()) => {
24
25
  dispatch(addFolder({
25
26
  id,
@@ -28,10 +29,26 @@ function createDriveActions(document, dispatch, context) {
28
29
  }));
29
30
  };
30
31
  const addDocument = async (name, documentType, document, parentFolder, id = generateId()) => {
31
- await context.addDocument(driveId, name, documentType, parentFolder, document, id);
32
+ const action = generateAddNodeAction(drive.state.global, {
33
+ id,
34
+ name,
35
+ parentFolder: parentFolder ?? null,
36
+ documentType,
37
+ document,
38
+ }, ["global"]);
39
+ dispatch(action);
32
40
  };
33
- const addFile = async (file, parentFolderId, name = file.name.replace(/\.zip$/gim, "")) => {
34
- await context.addFile(file, driveId, name, parentFolderId ?? undefined);
41
+ const addFile = async (file, parentFolder = selectedNode && isFolderNode(selectedNode)
42
+ ? selectedNode.id
43
+ : undefined, name = file.name.replace(/\.zip$/gim, "")) => {
44
+ const folder = parentFolder ? getNode(parentFolder, drive) : undefined;
45
+ if (parentFolder && !folder) {
46
+ throw new Error(`Parent folder with id "${parentFolder}" not found`);
47
+ }
48
+ if (folder && !isFolderNode(folder)) {
49
+ throw new Error(`Parent folder with id "${parentFolder}" is not a folder`);
50
+ }
51
+ await context.addFile(file, driveId, name, parentFolder);
35
52
  };
36
53
  const handleDeleteNode = async (id) => {
37
54
  dispatch(deleteNode({ id }));
@@ -76,6 +93,7 @@ function createDriveActions(document, dispatch, context) {
76
93
  };
77
94
  return {
78
95
  context,
96
+ selectNode: context.selectNode,
79
97
  addFolder: handleAddFolder,
80
98
  addFile,
81
99
  addDocument,
@@ -1 +1 @@
1
- {"version":3,"file":"useDriveActions.js","sourceRoot":"","sources":["../../../src/hooks/useDriveActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDriveActions.js","sourceRoot":"","sources":["../../../src/hooks/useDriveActions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type DocumentDriveAction, type DocumentDriveDocument } from "document-drive";
2
+ import { type EditorDispatch } from "document-model";
3
+ import type { UiNode } from "../uiNodes/types.js";
4
+ import { type IDriveContext } from "./useDriveContext.js";
5
+ export declare function useDriveActionsWithUiNodes(document: DocumentDriveDocument, dispatch: EditorDispatch<DocumentDriveAction>): {
6
+ addFile: (file: File, parentNode: UiNode | null) => Promise<void>;
7
+ addFolder: (name: string, parentFolder?: string | undefined) => Promise<void>;
8
+ renameNode: (name: string, node: UiNode) => Promise<void>;
9
+ deleteNode: (node: UiNode) => Promise<void>;
10
+ moveNode: (src: UiNode, target: UiNode) => Promise<void>;
11
+ copyNode: (src: UiNode, target: UiNode) => Promise<void>;
12
+ duplicateNode: (node: UiNode) => Promise<void>;
13
+ context: IDriveContext;
14
+ selectNode: (node: UiNode | null) => void;
15
+ addDocument: (name: string, documentType: string, document?: import("document-model").PHDocument, parentFolder?: string, id?: string) => Promise<void>;
16
+ };
17
+ //# sourceMappingURL=useDriveActionsWithUiNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDriveActionsWithUiNodes.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDriveActionsWithUiNodes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAI3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,sBAAsB,CAAC;AAiE3E,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,cAAc,CAAC,mBAAmB,CAAC;oBApC3B,IAAI,cAAc,MAAM,GAAG,IAAI;sBAG7B,MAAM,iBAA8B,MAAM,GAAG,SAAS;uBAGrD,MAAM,QAAQ,MAAM;uBAKpB,MAAM;oBAKH,MAAM,UAAU,MAAM;oBAO5B,MAAM,UAAU,MAAM;0BAIhB,MAAM;;;8DAPA,CAAC,mDAC7B,CAAH,YAEQ,CAAC;EAuCT"}
@@ -0,0 +1,72 @@
1
+ import { useMemo } from "react";
2
+ import { FILE } from "../uiNodes/constants.js";
3
+ import { useDriveActions } from "./useDriveActions.js";
4
+ import { useDriveContext } from "./useDriveContext.js";
5
+ import { useUiNodesContext } from "./useUiNodesContext.js";
6
+ function toNode(uiNode) {
7
+ if (uiNode.kind === "DRIVE") {
8
+ throw new Error("Cannot convert drive node to regular node");
9
+ }
10
+ const { id, name, parentFolder, kind } = uiNode;
11
+ if (kind === "FOLDER") {
12
+ return { id, name, parentFolder, kind: "folder" };
13
+ }
14
+ else {
15
+ // Remove after ts reset is fixed
16
+ const fileNode = uiNode;
17
+ return {
18
+ id,
19
+ name,
20
+ parentFolder,
21
+ kind: "file",
22
+ documentType: fileNode.documentType,
23
+ synchronizationUnits: fileNode.synchronizationUnits,
24
+ };
25
+ }
26
+ }
27
+ // Adapter to convert between UiNodes and drive actions
28
+ function createUiNodeAdapter(driveActions) {
29
+ return {
30
+ ...driveActions,
31
+ addFile: (file, parentNode) => driveActions.addFile(file, parentNode?.id),
32
+ addFolder: (name, parentFolder = undefined) => driveActions.addFolder(name, parentFolder),
33
+ renameNode: (name, node) => {
34
+ const converted = toNode(node);
35
+ return driveActions.renameNode(converted.id, name);
36
+ },
37
+ deleteNode: (node) => {
38
+ const converted = toNode(node);
39
+ return driveActions.deleteNode(converted.id);
40
+ },
41
+ moveNode: async (src, target) => {
42
+ if (target.kind === FILE || src.parentFolder === target.id)
43
+ return;
44
+ const srcNode = toNode(src);
45
+ const targetNode = toNode(target);
46
+ return driveActions.moveNode(srcNode.id, targetNode.id);
47
+ },
48
+ copyNode: (src, target) => {
49
+ return driveActions.copyNode(src.id, target.id);
50
+ },
51
+ duplicateNode: (node) => {
52
+ const converted = toNode(node);
53
+ return driveActions.duplicateNode(converted.id);
54
+ },
55
+ };
56
+ }
57
+ export function useDriveActionsWithUiNodes(document, dispatch) {
58
+ const { selectedNode, selectedDriveNode, setSelectedNode, getNodeById } = useUiNodesContext();
59
+ const _driveContext = useDriveContext();
60
+ const driveContext = useMemo(() => ({
61
+ ..._driveContext,
62
+ selectedNode: selectedNode,
63
+ onSelectNode: (node) => {
64
+ _driveContext.selectNode(node);
65
+ setSelectedNode(getNodeById(node.id));
66
+ },
67
+ }), [selectedNode, selectedDriveNode?.driveId, setSelectedNode, getNodeById]);
68
+ const driveActions = useDriveActions(document, dispatch, driveContext);
69
+ const uiNodeActions = useMemo(() => createUiNodeAdapter(driveActions), [driveActions]);
70
+ return uiNodeActions;
71
+ }
72
+ //# sourceMappingURL=useDriveActionsWithUiNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDriveActionsWithUiNodes.js","sourceRoot":"","sources":["../../../src/hooks/useDriveActionsWithUiNodes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,99 @@
1
+ import { type FileNode, type IDocumentDriveServer, type Node, type SyncStatus } from "document-drive";
2
+ import { type Action, type ActionErrorCallback, type DocumentModelModule, type PHDocument } from "document-model";
1
3
  import { type PropsWithChildren } from "react";
2
- import { type IDriveContext } from "../types/drive-editor.js";
4
+ import { type User } from "../renown/types.js";
5
+ import type { UiNode } from "../uiNodes/types.js";
6
+ import { type HookState } from "./document-state.js";
7
+ /**
8
+ * Interface representing the context values provided by the host application
9
+ * for managing document drive functionality.
10
+ */
11
+ export interface IDriveContext {
12
+ /** Reactor instance */
13
+ reactor: IDocumentDriveServer;
14
+ /** Controls the visibility of the search bar in the drive interface */
15
+ showSearchBar: boolean;
16
+ /** Indicates whether the current user has permissions to create new documents */
17
+ isAllowedToCreateDocuments: boolean;
18
+ /** Array of available document models that can be created */
19
+ documentModels: DocumentModelModule[];
20
+ /** Currently selected node (file/folder) in the drive */
21
+ selectedNode: Node | null;
22
+ /**
23
+ * Callback to update the selected node in the drive
24
+ * @param node - The node to be selected
25
+ */
26
+ selectNode: (node: UiNode | null) => void;
27
+ /**
28
+ * Adds a new file to the drive
29
+ * @param file - File to be added (can be a string path or File object)
30
+ * @param drive - The drive to add the file to
31
+ * @param name - Optional name for the file
32
+ * @param parentFolder - Optional parent folder of the file
33
+ * @returns Promise resolving to the newly created Node
34
+ */
35
+ addFile: (file: string | File, drive: string, name?: string, parentFolder?: string) => Promise<void>;
36
+ /**
37
+ * Adds a new document to the drive
38
+ * @param driveId - ID of the drive to add the document to
39
+ * @param name - Name of the document
40
+ * @param documentType - Type of document to create
41
+ * @param parentFolder - Optional parent folder of the document
42
+ * @param document - Optional document content
43
+ * @returns Promise resolving to the newly created
44
+ */
45
+ addDocument: (driveId: string, name: string, documentType: string, parentFolder?: string, document?: PHDocument) => Promise<FileNode>;
46
+ /**
47
+ * Shows a modal for creating a new document
48
+ * @param documentModel - Document model of the document to be created
49
+ * @returns Promise resolving to an object containing the document name
50
+ */
51
+ showCreateDocumentModal: (documentModel: DocumentModelModule) => Promise<{
52
+ name: string;
53
+ }>;
54
+ /**
55
+ * Retrieves the sync status of a document or drive
56
+ * @param driveId - ID of the drive to check sync status for
57
+ * @param documentId - ID of the document to check sync status for
58
+ * @returns SyncStatus object containing sync information
59
+ */
60
+ useSyncStatus: (driveId: string, documentId?: string) => SyncStatus | undefined;
61
+ useDocumentEditorProps: (props: {
62
+ driveId: string;
63
+ documentId: string;
64
+ documentType: string;
65
+ documentModelModule: DocumentModelModule<PHDocument>;
66
+ user?: User;
67
+ }) => {
68
+ dispatch: (action: Action, onErrorCallback?: ActionErrorCallback) => void;
69
+ document: PHDocument | undefined;
70
+ error: unknown;
71
+ };
72
+ /**
73
+ * Retrieves the states of all documents in a drive
74
+ * @param driveId - ID of the drive to retrieve document states for
75
+ * @param documentIds - IDs of the documents to retrieve states for (all if not provided)
76
+ * @returns Record of document IDs to their states
77
+ */
78
+ useDriveDocumentStates: (props: {
79
+ driveId: string;
80
+ documentIds?: string[];
81
+ }) => readonly [
82
+ Record<string, HookState>,
83
+ (_driveId: string, _documentIds?: string[]) => Promise<void>
84
+ ];
85
+ /**
86
+ * Retrieves the state of a document in a drive
87
+ * @param driveId - ID of the drive to retrieve document state for
88
+ * @param documentId - ID of the document to retrieve state for
89
+ * @type TDocument - Type of the document to retrieve state for if known
90
+ * @returns State of the document
91
+ */
92
+ useDriveDocumentState: (props: {
93
+ driveId: string;
94
+ documentId: string;
95
+ }) => PHDocument["state"] | undefined;
96
+ }
3
97
  export declare const DriveContextProvider: React.FC<PropsWithChildren<{
4
98
  value: IDriveContext;
5
99
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useDriveContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDriveContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CACzC,iBAAiB,CAAC;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC,CAG5C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,kBAQ9B"}
1
+ {"version":3,"file":"useDriveContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDriveContext.tsx"],"names":[],"mappings":"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"}