@powerhousedao/reactor-browser 5.0.0-staging.3 → 5.0.0-staging.30
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/README.md +125 -79
- package/dist/src/actions/dispatch.d.ts +1 -1
- package/dist/src/actions/dispatch.d.ts.map +1 -1
- package/dist/src/actions/document.d.ts +6 -4
- package/dist/src/actions/document.d.ts.map +1 -1
- package/dist/src/actions/document.js +207 -6
- package/dist/src/actions/document.js.map +1 -1
- package/dist/src/actions/drive.d.ts +1 -1
- package/dist/src/actions/drive.d.ts.map +1 -1
- package/dist/src/actions/drive.js.map +1 -1
- package/dist/src/actions/queue.d.ts +3 -1
- package/dist/src/actions/queue.d.ts.map +1 -1
- package/dist/src/actions/queue.js +15 -0
- package/dist/src/actions/queue.js.map +1 -1
- package/dist/src/actions/sign.d.ts +1 -1
- package/dist/src/actions/sign.d.ts.map +1 -1
- package/dist/src/actions/sign.js +1 -1
- package/dist/src/actions/sign.js.map +1 -1
- package/dist/src/analytics/context.d.ts +3 -3
- package/dist/src/analytics/context.d.ts.map +1 -1
- package/dist/src/analytics/context.js +1 -1
- package/dist/src/analytics/context.js.map +1 -1
- package/dist/src/analytics/hooks.d.ts +3 -2
- package/dist/src/analytics/hooks.d.ts.map +1 -1
- package/dist/src/analytics/hooks.js +2 -2
- package/dist/src/analytics/hooks.js.map +1 -1
- package/dist/src/analytics/types.d.ts +2 -2
- package/dist/src/analytics/types.d.ts.map +1 -1
- package/dist/src/context/read-mode.d.ts +2 -2
- package/dist/src/context/read-mode.d.ts.map +1 -1
- package/dist/src/context/read-mode.js +2 -2
- package/dist/src/context/read-mode.js.map +1 -1
- package/dist/src/crypto/browser.d.ts +1 -1
- package/dist/src/crypto/browser.d.ts.map +1 -1
- package/dist/src/crypto/index.d.ts +1 -1
- package/dist/src/crypto/index.d.ts.map +1 -1
- package/dist/src/crypto/index.js +1 -1
- package/dist/src/crypto/index.js.map +1 -1
- package/dist/src/document-model.d.ts +2 -2
- package/dist/src/document-model.d.ts.map +1 -1
- package/dist/src/document-model.js +1 -1
- package/dist/src/document-model.js.map +1 -1
- package/dist/src/events/add-ph-event-handlers.d.ts.map +1 -1
- package/dist/src/events/add-ph-event-handlers.js +2 -0
- package/dist/src/events/add-ph-event-handlers.js.map +1 -1
- package/dist/src/events/config.d.ts +2 -2
- package/dist/src/events/config.d.ts.map +1 -1
- package/dist/src/events/crypto.d.ts +2 -2
- package/dist/src/events/crypto.d.ts.map +1 -1
- package/dist/src/events/documents.d.ts +2 -2
- package/dist/src/events/documents.d.ts.map +1 -1
- package/dist/src/events/drives.d.ts +2 -2
- package/dist/src/events/drives.d.ts.map +1 -1
- package/dist/src/events/modals.d.ts +9 -0
- package/dist/src/events/modals.d.ts.map +1 -0
- package/dist/src/events/modals.js +28 -0
- package/dist/src/events/modals.js.map +1 -0
- package/dist/src/events/nodes.d.ts +1 -1
- package/dist/src/events/nodes.d.ts.map +1 -1
- package/dist/src/events/processors.d.ts +2 -2
- package/dist/src/events/processors.d.ts.map +1 -1
- package/dist/src/events/reactor.d.ts +2 -2
- package/dist/src/events/reactor.d.ts.map +1 -1
- package/dist/src/events/renown.d.ts +2 -2
- package/dist/src/events/renown.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +12 -7
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/user.d.ts +3 -3
- package/dist/src/events/user.d.ts.map +1 -1
- package/dist/src/events/vetra-packages.d.ts +2 -2
- package/dist/src/events/vetra-packages.d.ts.map +1 -1
- package/dist/src/global/types.d.ts +2 -2
- package/dist/src/global/types.d.ts.map +1 -1
- package/dist/src/hooks/dispatch.d.ts +1 -1
- package/dist/src/hooks/dispatch.d.ts.map +1 -1
- package/dist/src/hooks/documents.d.ts +18 -3
- package/dist/src/hooks/documents.d.ts.map +1 -1
- package/dist/src/hooks/documents.js +49 -5
- package/dist/src/hooks/documents.js.map +1 -1
- package/dist/src/hooks/drives.d.ts +5 -2
- package/dist/src/hooks/drives.d.ts.map +1 -1
- package/dist/src/hooks/drives.js +11 -0
- package/dist/src/hooks/drives.js.map +1 -1
- package/dist/src/hooks/index.d.ts +2 -1
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -1
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/modals.d.ts +7 -0
- package/dist/src/hooks/modals.d.ts.map +1 -0
- package/dist/src/hooks/modals.js +18 -0
- package/dist/src/hooks/modals.js.map +1 -0
- package/dist/src/hooks/nodes.d.ts +11 -2
- package/dist/src/hooks/nodes.d.ts.map +1 -1
- package/dist/src/hooks/nodes.js +94 -3
- package/dist/src/hooks/nodes.js.map +1 -1
- package/dist/src/hooks/processor-manager.d.ts +1 -1
- package/dist/src/hooks/processor-manager.d.ts.map +1 -1
- package/dist/src/hooks/reactor.d.ts +1 -1
- package/dist/src/hooks/reactor.d.ts.map +1 -1
- package/dist/src/hooks/use-on-drop-file.d.ts +6 -0
- package/dist/src/hooks/use-on-drop-file.d.ts.map +1 -0
- package/dist/src/hooks/use-on-drop-file.js +21 -0
- package/dist/src/hooks/use-on-drop-file.js.map +1 -0
- package/dist/src/hooks/vetra-packages.d.ts +2 -2
- package/dist/src/hooks/vetra-packages.d.ts.map +1 -1
- package/dist/src/pglite/hooks/usePGlite.d.ts +1 -1
- package/dist/src/pglite/hooks/usePGlite.d.ts.map +1 -1
- package/dist/src/reactor.d.ts +7 -6
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +29 -2
- package/dist/src/reactor.js.map +1 -1
- package/dist/src/relational/hooks/useRelationalDb.d.ts +2 -2
- package/dist/src/relational/hooks/useRelationalDb.d.ts.map +1 -1
- package/dist/src/relational/hooks/useRelationalDb.js.map +1 -1
- package/dist/src/relational/hooks/useRelationalQuery.d.ts +3 -3
- package/dist/src/relational/hooks/useRelationalQuery.d.ts.map +1 -1
- package/dist/src/relational/utils/createProcessorQuery.d.ts +4 -4
- package/dist/src/relational/utils/createProcessorQuery.d.ts.map +1 -1
- package/dist/src/relational/utils/createProcessorQuery.js +1 -1
- package/dist/src/relational/utils/createProcessorQuery.js.map +1 -1
- package/dist/src/renown/utils.d.ts +3 -3
- package/dist/src/renown/utils.d.ts.map +1 -1
- package/dist/src/types/drive-editor.d.ts +15 -64
- package/dist/src/types/drive-editor.d.ts.map +1 -1
- package/dist/src/types/global.d.ts +11 -6
- package/dist/src/types/global.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/modals.d.ts +32 -0
- package/dist/src/types/modals.d.ts.map +1 -0
- package/dist/src/types/modals.js +2 -0
- package/dist/src/types/modals.js.map +1 -0
- package/dist/src/types/reactor.d.ts +1 -1
- package/dist/src/types/reactor.d.ts.map +1 -1
- package/dist/src/types/upload.d.ts +14 -0
- package/dist/src/types/upload.d.ts.map +1 -0
- package/dist/src/types/upload.js +2 -0
- package/dist/src/types/upload.js.map +1 -0
- package/dist/src/types/vetra.d.ts +8 -4
- package/dist/src/types/vetra.d.ts.map +1 -1
- package/dist/src/utils/documents.d.ts +2 -0
- package/dist/src/utils/documents.d.ts.map +1 -0
- package/dist/src/utils/documents.js +24 -0
- package/dist/src/utils/documents.js.map +1 -0
- package/dist/src/utils/drives.d.ts +3 -3
- package/dist/src/utils/drives.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/nodes.d.ts +1 -1
- package/dist/src/utils/nodes.d.ts.map +1 -1
- package/dist/src/utils/switchboard.d.ts +3 -4
- package/dist/src/utils/switchboard.d.ts.map +1 -1
- package/dist/src/utils/switchboard.js +12 -15
- package/dist/src/utils/switchboard.js.map +1 -1
- package/dist/src/utils/unsupported-document-type-error.d.ts +4 -0
- package/dist/src/utils/unsupported-document-type-error.d.ts.map +1 -0
- package/dist/src/utils/unsupported-document-type-error.js +7 -0
- package/dist/src/utils/unsupported-document-type-error.js.map +1 -0
- package/dist/src/utils/url.d.ts +1 -1
- package/dist/src/utils/url.d.ts.map +1 -1
- package/dist/src/utils/vetra.d.ts +3 -3
- package/dist/src/utils/vetra.d.ts.map +1 -1
- package/dist/src/utils/vetra.js +13 -6
- package/dist/src/utils/vetra.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/dist/src/hooks/drive-context.d.ts +0 -21
- package/dist/src/hooks/drive-context.d.ts.map +0 -1
- package/dist/src/hooks/drive-context.js +0 -26
- package/dist/src/hooks/drive-context.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useSyncExternalStore } from "react";
|
|
2
2
|
import { useDispatch } from "./dispatch.js";
|
|
3
|
-
import { useFileNodes, useSelectedNodeId } from "./nodes.js";
|
|
3
|
+
import { useFileNodes, useNodeKind, useSelectedNodeId } from "./nodes.js";
|
|
4
|
+
import { useDocumentModelModuleById } from "./vetra-packages.js";
|
|
4
5
|
function getDocumentsSnapshot() {
|
|
5
6
|
const documents = window.phDocuments;
|
|
6
7
|
return documents;
|
|
@@ -20,12 +21,19 @@ export function useSelectedDriveDocuments() {
|
|
|
20
21
|
const fileNodeIds = fileNodes?.map((node) => node.id);
|
|
21
22
|
return documents?.filter((d) => fileNodeIds?.includes(d.header.id));
|
|
22
23
|
}
|
|
24
|
+
/** Returns the selected document id */
|
|
25
|
+
export function useSelectedDocumentId() {
|
|
26
|
+
const selectedNodeId = useSelectedNodeId();
|
|
27
|
+
const kind = useNodeKind(selectedNodeId);
|
|
28
|
+
if (kind === "FILE") {
|
|
29
|
+
return selectedNodeId;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
23
33
|
/** Returns the selected document. */
|
|
24
34
|
export function useSelectedDocument() {
|
|
25
|
-
const selectedNodeId =
|
|
26
|
-
|
|
27
|
-
const selectedDocument = documents?.find((d) => d.header.id === selectedNodeId);
|
|
28
|
-
return useDispatch(selectedDocument);
|
|
35
|
+
const selectedNodeId = useSelectedDocumentId();
|
|
36
|
+
return useDocumentById(selectedNodeId);
|
|
29
37
|
}
|
|
30
38
|
/** Returns the document type of a document by id. */
|
|
31
39
|
export function useDocumentTypeById(id) {
|
|
@@ -43,4 +51,40 @@ export function useDocumentById(id) {
|
|
|
43
51
|
const document = documents?.find((d) => d.header.id === id);
|
|
44
52
|
return useDispatch(document);
|
|
45
53
|
}
|
|
54
|
+
export class DocumentNotFoundError extends Error {
|
|
55
|
+
constructor(documentId) {
|
|
56
|
+
super(`Document with id ${documentId} not found`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export class DocumentModelNotFoundError extends Error {
|
|
60
|
+
constructor(documentType) {
|
|
61
|
+
super(`Document model module for type ${documentType} not found`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class DocumentTypeMismatchError extends Error {
|
|
65
|
+
constructor(documentId, expectedType, actualType) {
|
|
66
|
+
super(`Document ${documentId} is not of type ${expectedType}. Actual type: ${actualType}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Returns a document of a specific type, throws an error if the found document has a different type */
|
|
70
|
+
export function useDocumentOfType(documentId, documentType) {
|
|
71
|
+
const [document, dispatch] = useDocumentById(documentId);
|
|
72
|
+
const documentModelModule = useDocumentModelModuleById(documentType);
|
|
73
|
+
if (!documentId || !documentType)
|
|
74
|
+
return [];
|
|
75
|
+
if (!document) {
|
|
76
|
+
throw new DocumentNotFoundError(documentId);
|
|
77
|
+
}
|
|
78
|
+
if (!documentModelModule) {
|
|
79
|
+
throw new DocumentModelNotFoundError(documentType);
|
|
80
|
+
}
|
|
81
|
+
if (document.header.documentType !== documentType) {
|
|
82
|
+
throw new DocumentTypeMismatchError(documentId, documentType, document.header.documentType);
|
|
83
|
+
}
|
|
84
|
+
return [document, dispatch];
|
|
85
|
+
}
|
|
86
|
+
export function useSelectedDocumentOfType(documentType) {
|
|
87
|
+
const documentId = useSelectedDocumentId();
|
|
88
|
+
return useDocumentOfType(documentId, documentType);
|
|
89
|
+
}
|
|
46
90
|
//# sourceMappingURL=documents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/hooks/documents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/hooks/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { DocumentDriveAction, DocumentDriveDocument, DocumentDrivePHState, SharingType, Trigger } from "document-drive";
|
|
2
|
+
import type { PHDocument } from "document-model";
|
|
3
|
+
import type { DocumentDispatch } from "./documents.js";
|
|
3
4
|
/** Returns the drives for a reactor. */
|
|
4
5
|
export declare function useDrives(): PHDocument<DocumentDrivePHState>[] | undefined;
|
|
5
6
|
export declare function useDriveById(driveId: string | undefined | null): readonly [DocumentDriveDocument | undefined, (actionOrActions: import("document-model").Action[] | import("document-model").Action | undefined) => void];
|
|
7
|
+
export declare function useDriveDocument(driveId: string | undefined | null): readonly [DocumentDriveDocument, DocumentDispatch<DocumentDriveAction>];
|
|
8
|
+
export declare function useSelectedDriveDocument(): readonly [DocumentDriveDocument, DocumentDispatch<DocumentDriveAction>];
|
|
6
9
|
export declare function useSelectedDriveId(): string | undefined;
|
|
7
10
|
/** Returns the selected drive */
|
|
8
11
|
export declare function useSelectedDrive(): readonly [DocumentDriveDocument | undefined, (actionOrActions: import("document-model").Action[] | import("document-model").Action | undefined) => void];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drives.d.ts","sourceRoot":"","sources":["../../../src/hooks/drives.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"drives.d.ts","sourceRoot":"","sources":["../../../src/hooks/drives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AASjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,wCAAwC;AACxC,wBAAgB,SAAS,IAAI,UAAU,CAAC,oBAAoB,CAAC,EAAE,GAAG,SAAS,CAG1E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,4JAM9D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,2EAMlE;AAED,wBAAgB,wBAAwB,4EAGvC;AAED,wBAAgB,kBAAkB,uBAMjC;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,6JAS/B;AAED,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,QAO7D;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAcnE;AAED,sDAAsD;AACtD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,GAAG,SAAS,CAOrB;AAED,kDAAkD;AAClD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAG1E;AAED,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,WAIlE;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,WAAW,GAAG,SAAS,CAIzB;AAED,uDAAuD;AACvD,wBAAgB,2BAA2B,IAAI,WAAW,GAAG,SAAS,CAIrE;AAED,qDAAqD;AACrD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,WAI1E"}
|
package/dist/src/hooks/drives.js
CHANGED
|
@@ -15,6 +15,17 @@ export function useDriveById(driveId) {
|
|
|
15
15
|
const unsafeDrive = document;
|
|
16
16
|
return [unsafeDrive, dispatch];
|
|
17
17
|
}
|
|
18
|
+
export function useDriveDocument(driveId) {
|
|
19
|
+
const [drive, dispatch] = useDriveById(driveId);
|
|
20
|
+
if (!drive) {
|
|
21
|
+
throw new Error(`Drive with id ${driveId} not found`);
|
|
22
|
+
}
|
|
23
|
+
return [drive, dispatch];
|
|
24
|
+
}
|
|
25
|
+
export function useSelectedDriveDocument() {
|
|
26
|
+
const selectedDriveId = useSelectedDriveId();
|
|
27
|
+
return useDriveDocument(selectedDriveId);
|
|
28
|
+
}
|
|
18
29
|
export function useSelectedDriveId() {
|
|
19
30
|
const selectedDriveId = useSyncExternalStore(subscribeToSelectedDriveId, () => window.phSelectedDriveId);
|
|
20
31
|
return selectedDriveId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drives.js","sourceRoot":"","sources":["../../../src/hooks/drives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drives.js","sourceRoot":"","sources":["../../../src/hooks/drives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export * from "./config.js";
|
|
2
2
|
export * from "./crypto.js";
|
|
3
3
|
export * from "./documents.js";
|
|
4
|
-
export * from "./drive-context.js";
|
|
5
4
|
export * from "./drives.js";
|
|
5
|
+
export * from "./modals.js";
|
|
6
6
|
export * from "./nodes.js";
|
|
7
7
|
export * from "./processor-manager.js";
|
|
8
8
|
export * from "./reactor.js";
|
|
9
9
|
export * from "./renown.js";
|
|
10
|
+
export * from "./use-on-drop-file.js";
|
|
10
11
|
export * from "./user.js";
|
|
11
12
|
export * from "./vetra-packages.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
package/dist/src/hooks/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export * from "./config.js";
|
|
2
2
|
export * from "./crypto.js";
|
|
3
3
|
export * from "./documents.js";
|
|
4
|
-
export * from "./drive-context.js";
|
|
5
4
|
export * from "./drives.js";
|
|
5
|
+
export * from "./modals.js";
|
|
6
6
|
export * from "./nodes.js";
|
|
7
7
|
export * from "./processor-manager.js";
|
|
8
8
|
export * from "./reactor.js";
|
|
9
9
|
export * from "./renown.js";
|
|
10
|
+
export * from "./use-on-drop-file.js";
|
|
10
11
|
export * from "./user.js";
|
|
11
12
|
export * from "./vetra-packages.js";
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PHModal } from "../types/modals.js";
|
|
2
|
+
export declare function usePHModal(): PHModal | undefined;
|
|
3
|
+
export declare function showPHModal(modal: PHModal): void;
|
|
4
|
+
export declare function closePHModal(): void;
|
|
5
|
+
export declare function showCreateDocumentModal(documentType: string): void;
|
|
6
|
+
export declare function showDeleteNodeModal(id: string): void;
|
|
7
|
+
//# sourceMappingURL=modals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../src/hooks/modals.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,wBAAgB,UAAU,wBAEzB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,QAEzC;AAED,wBAAgB,YAAY,SAE3B;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,QAE3D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,QAE7C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { dispatchSetModalEvent, getModalSnapshot, subscribeToModal, } from "../events/modals.js";
|
|
3
|
+
export function usePHModal() {
|
|
4
|
+
return useSyncExternalStore(subscribeToModal, getModalSnapshot);
|
|
5
|
+
}
|
|
6
|
+
export function showPHModal(modal) {
|
|
7
|
+
dispatchSetModalEvent(modal);
|
|
8
|
+
}
|
|
9
|
+
export function closePHModal() {
|
|
10
|
+
dispatchSetModalEvent(undefined);
|
|
11
|
+
}
|
|
12
|
+
export function showCreateDocumentModal(documentType) {
|
|
13
|
+
dispatchSetModalEvent({ type: "createDocument", documentType });
|
|
14
|
+
}
|
|
15
|
+
export function showDeleteNodeModal(id) {
|
|
16
|
+
dispatchSetModalEvent({ type: "deleteItem", id });
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=modals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modals.js","sourceRoot":"","sources":["../../../src/hooks/modals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,UAAU,UAAU;IACxB,OAAO,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC1D,qBAAqB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,qBAAqB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { FileNode, FolderNode, Node } from "document-drive";
|
|
2
|
+
import type { NodeKind } from "../types/reactor.js";
|
|
3
3
|
/** Returns the nodes for a drive. */
|
|
4
4
|
export declare function useNodes(): Node[] | undefined;
|
|
5
5
|
export declare function useSelectedNodeId(): string | undefined;
|
|
@@ -38,4 +38,13 @@ export declare function useFileChildNodesForId(id: string | null | undefined): F
|
|
|
38
38
|
export declare function useNodeName(id: string | null | undefined): string | undefined;
|
|
39
39
|
/** Returns the kind of a node. */
|
|
40
40
|
export declare function useNodeKind(id: string | null | undefined): NodeKind | undefined;
|
|
41
|
+
export declare function useNodeActions(): {
|
|
42
|
+
onAddFile: (file: File, parent: Node | undefined) => Promise<void>;
|
|
43
|
+
onAddFolder: (name: string, parent: Node | undefined) => Promise<FolderNode | undefined>;
|
|
44
|
+
onRenameNode: (newName: string, node: Node) => Promise<Node | undefined>;
|
|
45
|
+
onCopyNode: (src: Node, target: Node | undefined) => Promise<void>;
|
|
46
|
+
onMoveNode: (src: Node, target: Node | undefined) => Promise<void>;
|
|
47
|
+
onDuplicateNode: (src: Node) => Promise<void>;
|
|
48
|
+
onAddAndSelectNewFolder: (name: string) => Promise<void>;
|
|
49
|
+
};
|
|
41
50
|
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/hooks/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/hooks/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAajE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAWpD,qCAAqC;AACrC,wBAAgB,QAAQ,uBAGvB;AAED,wBAAgB,iBAAiB,uBAMhC;AAED,wBAAgB,YAAY,2BAG3B;AAED,wBAAgB,cAAc,uBAG7B;AAED,wBAAgB,eAAe,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,QAMxE;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,oBAGxD;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAG9D;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,0BAO5D;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,2BAKtC;AAED,kCAAkC;AAClC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,EAAE,CAmBjE;AAED,mCAAmC;AACnC,wBAAgB,iBAAiB,IAAI,UAAU,GAAG,SAAS,CAK1D;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,WAKlC;AAED,gEAAgE;AAChE,wBAAgB,aAAa,IAAI,IAAI,EAAE,CAStC;AAED,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAGhD;AAED,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAG5C;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,IAAI,UAAU,EAAE,CAGlD;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,IAAI,QAAQ,EAAE,CAG9C;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,UAS/D;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5B,UAAU,EAAE,CAGd;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5B,QAAQ,EAAE,CAGZ;AAED,kCAAkC;AAClC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAKxD;AAED,kCAAkC;AAClC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,wBAMxD;AAMD,wBAAgB,cAAc;sBAMG,IAAI,UAAU,IAAI,GAAG,SAAS;wBAa5B,MAAM,UAAU,IAAI,GAAG,SAAS;4BAWtD,MAAM,QACT,IAAI,KACT,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;sBAYG,IAAI,UAAU,IAAI,GAAG,SAAS;sBAY9B,IAAI,UAAU,IAAI,GAAG,SAAS;2BAoBzB,IAAI;oCAeK,MAAM;EA0BpD"}
|
package/dist/src/hooks/nodes.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { addFile, addFolder, copyNode, moveNode, renameNode, } from "../actions/document.js";
|
|
2
3
|
import { dispatchSetSelectedNodeIdEvent, subscribeToSelectedNodeId, } from "../events/nodes.js";
|
|
3
4
|
import { makeFolderNodeFromDrive } from "../utils/drives.js";
|
|
4
5
|
import { isFileNodeKind, isFolderNodeKind, sortNodesByName, } from "../utils/nodes.js";
|
|
5
6
|
import { makeNodeSlug } from "../utils/url.js";
|
|
6
|
-
import { useSelectedDocument } from "./documents.js";
|
|
7
|
+
import { useSelectedDocument, useSelectedDocumentId } from "./documents.js";
|
|
7
8
|
import { useDrives, useSelectedDrive } from "./drives.js";
|
|
8
9
|
/** Returns the nodes for a drive. */
|
|
9
10
|
export function useNodes() {
|
|
@@ -84,8 +85,8 @@ export function useSelectedFolder() {
|
|
|
84
85
|
/** Returns the path to the selected node. */
|
|
85
86
|
export function useSelectedNodePath() {
|
|
86
87
|
const selectedFolder = useSelectedFolder();
|
|
87
|
-
const
|
|
88
|
-
const selectedNodeId =
|
|
88
|
+
const selectedDocumentId = useSelectedDocumentId();
|
|
89
|
+
const selectedNodeId = selectedDocumentId ?? selectedFolder?.id;
|
|
89
90
|
return useNodePath(selectedNodeId);
|
|
90
91
|
}
|
|
91
92
|
/** Returns the child nodes for the selected drive or folder. */
|
|
@@ -157,4 +158,94 @@ export function useNodeKind(id) {
|
|
|
157
158
|
return undefined;
|
|
158
159
|
return node.kind.toUpperCase();
|
|
159
160
|
}
|
|
161
|
+
function resolveNode(driveId, node) {
|
|
162
|
+
return node?.id !== driveId ? node : undefined;
|
|
163
|
+
}
|
|
164
|
+
export function useNodeActions() {
|
|
165
|
+
const [selectedDrive] = useSelectedDrive();
|
|
166
|
+
const selectedFolder = useSelectedFolder();
|
|
167
|
+
const selectedParentFolder = useSelectedParentFolder();
|
|
168
|
+
const selectedDriveId = selectedDrive?.header.id;
|
|
169
|
+
async function onAddFile(file, parent) {
|
|
170
|
+
if (!selectedDriveId)
|
|
171
|
+
return;
|
|
172
|
+
const fileName = file.name.replace(/\..+/gim, "");
|
|
173
|
+
return addFile(file, selectedDriveId, fileName, resolveNode(selectedDriveId, parent)?.id);
|
|
174
|
+
}
|
|
175
|
+
async function onAddFolder(name, parent) {
|
|
176
|
+
if (!selectedDriveId)
|
|
177
|
+
return;
|
|
178
|
+
return addFolder(selectedDriveId, name, resolveNode(selectedDriveId, parent)?.id);
|
|
179
|
+
}
|
|
180
|
+
async function onRenameNode(newName, node) {
|
|
181
|
+
if (!selectedDriveId)
|
|
182
|
+
return;
|
|
183
|
+
const resolvedNode = resolveNode(selectedDriveId, node);
|
|
184
|
+
if (!resolvedNode) {
|
|
185
|
+
console.error(`Node ${node.id} not found`);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
return await renameNode(selectedDriveId, node.id, newName);
|
|
189
|
+
}
|
|
190
|
+
async function onCopyNode(src, target) {
|
|
191
|
+
if (!selectedDriveId)
|
|
192
|
+
return;
|
|
193
|
+
const resolvedSrc = resolveNode(selectedDriveId, src);
|
|
194
|
+
if (!resolvedSrc) {
|
|
195
|
+
console.error(`Node ${src.id} not found`);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const resolvedTarget = resolveNode(selectedDriveId, target);
|
|
199
|
+
await copyNode(selectedDriveId, resolvedSrc, resolvedTarget);
|
|
200
|
+
}
|
|
201
|
+
async function onMoveNode(src, target) {
|
|
202
|
+
if (!selectedDriveId)
|
|
203
|
+
return;
|
|
204
|
+
const resolvedSrc = resolveNode(selectedDriveId, src);
|
|
205
|
+
if (!resolvedSrc) {
|
|
206
|
+
console.error(`Node ${src.id} not found`);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const resolvedTarget = resolveNode(selectedDriveId, target);
|
|
210
|
+
// if node is already on target then ignore move
|
|
211
|
+
if ((!resolvedTarget?.id && !src.parentFolder) ||
|
|
212
|
+
resolvedTarget?.id === src.parentFolder) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
await moveNode(selectedDriveId, resolvedSrc, resolvedTarget);
|
|
216
|
+
}
|
|
217
|
+
async function onDuplicateNode(src) {
|
|
218
|
+
if (!selectedDriveId)
|
|
219
|
+
return;
|
|
220
|
+
const resolvedSrc = resolveNode(selectedDriveId, src);
|
|
221
|
+
if (!resolvedSrc) {
|
|
222
|
+
console.error(`Node ${src.id} not found`);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const target = resolveNode(selectedDriveId, selectedFolder ?? selectedParentFolder);
|
|
226
|
+
await copyNode(selectedDriveId, resolvedSrc, target);
|
|
227
|
+
}
|
|
228
|
+
async function onAddAndSelectNewFolder(name) {
|
|
229
|
+
if (!name)
|
|
230
|
+
return;
|
|
231
|
+
if (!selectedDriveId)
|
|
232
|
+
return;
|
|
233
|
+
const resolvedTarget = resolveNode(selectedDriveId, selectedFolder ?? selectedParentFolder);
|
|
234
|
+
if (!resolvedTarget)
|
|
235
|
+
return;
|
|
236
|
+
const newFolder = await onAddFolder(name, resolvedTarget);
|
|
237
|
+
if (newFolder) {
|
|
238
|
+
setSelectedNode(newFolder);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
onAddFile,
|
|
243
|
+
onAddFolder,
|
|
244
|
+
onRenameNode,
|
|
245
|
+
onCopyNode,
|
|
246
|
+
onMoveNode,
|
|
247
|
+
onDuplicateNode,
|
|
248
|
+
onAddAndSelectNewFolder,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
160
251
|
//# sourceMappingURL=nodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/hooks/nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/hooks/nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1D,qCAAqC;AACrC,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,aAAa,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAC3C,OAAO,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,cAAc,GAAG,oBAAoB,CACzC,yBAAyB,EACzB,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAC9B,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,cAAyC;IACvE,MAAM,QAAQ,GACZ,OAAO,cAAc,KAAK,QAAQ;QAChC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IACnC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,WAAW,CAAC,EAA6B;IACvD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,iBAAiB,CAAC,EAA6B;IAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,OAAO,IAAI,EAAE,YAAY,IAAI,SAAS,CAAC;AACzC,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,eAAe,CAAC,EAA6B;IAC3D,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,KAAK;QACxB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SACpD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,uBAAuB;IACrC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,gBAAgB,EAAE,MAAM,CAAC,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC;IACzE,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,WAAW,CAAC,EAA6B;IACvD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,CAAC,aAAa,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,eAAe,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAW,EAAE,CAAC;IACxB,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7C,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,MAAM;QACjC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,iBAAiB;IAC/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,cAAc,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;IACzE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,mBAAmB;IACjC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,kBAAkB,IAAI,cAAc,EAAE,EAAE,CAAC;IAChE,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAG,cAAc,EAAE,EAAE,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,gBAAgB;QAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,eAAe,CACpB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,gBAAgB,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,mBAAmB;IACjC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,EAA6B;IAC9D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACtC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;IAC/C,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,wBAAwB,CACtC,EAA6B;IAE7B,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CACpC,EAA6B;IAE7B,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,WAAW,CAAC,EAA6B;IACvD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,EAAE,IAAI,CAAC;AACpB,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,WAAW,CAAC,EAA6B;IACvD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAc,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,IAAsB;IAC1D,OAAO,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;IACvD,MAAM,eAAe,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;IAEjD,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,MAAwB;QAC3D,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAElD,OAAO,OAAO,CACZ,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,EAAE,CACzC,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,MAAwB;QAC/D,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,OAAO,SAAS,CACd,eAAe,EACf,IAAI,EACJ,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,EAAE,CACzC,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,YAAY,CACzB,OAAe,EACf,IAAU;QAEV,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,OAAO,MAAM,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,GAAS,EAAE,MAAwB;QAC3D,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,GAAS,EAAE,MAAwB;QAC3D,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,WAAW,GAAG,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE5D,gDAAgD;QAChD,IACE,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;YAC1C,cAAc,EAAE,EAAE,KAAK,GAAG,CAAC,YAAY,EACvC,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,GAAS;QACtC,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,WAAW,GAAG,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CACxB,eAAe,EACf,cAAc,IAAI,oBAAoB,CACvC,CAAC;QACF,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,KAAK,UAAU,uBAAuB,CAAC,IAAY;QACjD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,cAAc,GAAG,WAAW,CAChC,eAAe,EACf,cAAc,IAAI,oBAAoB,CACvC,CAAC;QACF,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAE1D,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,WAAW;QACX,YAAY;QACZ,UAAU;QACV,UAAU;QACV,eAAe;QACf,uBAAuB;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/processor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"processor-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/processor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAMlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/hooks/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/hooks/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAgB,UAAU,IAAI,OAAO,GAAG,SAAS,CAMhD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FileNode } from "document-drive";
|
|
2
|
+
import type { ConflictResolution, FileUploadProgressCallback } from "../types/upload.js";
|
|
3
|
+
type UseOnDropFile = (documentTypes?: string[]) => (file: File, onProgress?: FileUploadProgressCallback, resolveConflict?: ConflictResolution) => Promise<FileNode | undefined>;
|
|
4
|
+
export declare const useOnDropFile: UseOnDropFile;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=use-on-drop-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-on-drop-file.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-on-drop-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EACV,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAI5B,KAAK,aAAa,GAAG,CACnB,aAAa,CAAC,EAAE,MAAM,EAAE,KACrB,CACH,IAAI,EAAE,IAAI,EACV,UAAU,CAAC,EAAE,0BAA0B,EACvC,eAAe,CAAC,EAAE,kBAAkB,KACjC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,aAkC3B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { addFileWithProgress } from "../actions/document.js";
|
|
3
|
+
import { useSelectedDrive } from "./drives.js";
|
|
4
|
+
import { useSelectedFolder } from "./nodes.js";
|
|
5
|
+
export const useOnDropFile = (documentTypes = []) => {
|
|
6
|
+
const [selectedDrive] = useSelectedDrive();
|
|
7
|
+
const selectedDriveId = selectedDrive?.header.id;
|
|
8
|
+
const selectedFolder = useSelectedFolder();
|
|
9
|
+
const onDropFile = useCallback(async (file, onProgress, resolveConflict) => {
|
|
10
|
+
if (!selectedDriveId) {
|
|
11
|
+
console.warn("No selected drive - upload skipped");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const fileName = file.name.replace(/\..+/gim, "");
|
|
15
|
+
const targetNodeId = selectedFolder?.id;
|
|
16
|
+
// Return the FileNode directly from addFileWithProgress
|
|
17
|
+
return await addFileWithProgress(file, selectedDriveId, fileName, targetNodeId, onProgress, documentTypes, resolveConflict);
|
|
18
|
+
}, [selectedDriveId, selectedFolder]);
|
|
19
|
+
return onDropFile;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=use-on-drop-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-on-drop-file.js","sourceRoot":"","sources":["../../../src/hooks/use-on-drop-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAU/C,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,aAAa,GAAG,EAAE,EAAE,EAAE;IACjE,MAAM,CAAC,aAAa,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EACH,IAAU,EACV,UAAuC,EACvC,eAAoC,EACpC,EAAE;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,cAAc,EAAE,EAAE,CAAC;QAExC,wDAAwD;QACxD,OAAO,MAAM,mBAAmB,CAC9B,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,CAChB,CAAC;IACJ,CAAC,EACD,CAAC,eAAe,EAAE,cAAc,CAAC,CAClC,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { ImportScriptModule, SubgraphModule } from "document-model";
|
|
2
|
+
import type { Processors, VetraDocumentModelModule, VetraEditorModule, VetraPackage, VetraProcessorModule } from "../types/vetra.js";
|
|
3
3
|
export declare function useVetraPackages(): VetraPackage[];
|
|
4
4
|
export declare function setVetraPackages(packages: VetraPackage[]): void;
|
|
5
5
|
export declare function useDocumentModelModules(): VetraDocumentModelModule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vetra-packages.d.ts","sourceRoot":"","sources":["../../../src/hooks/vetra-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"vetra-packages.d.ts","sourceRoot":"","sources":["../../../src/hooks/vetra-packages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOzE,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAI3B,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAKjD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAExD;AAED,wBAAgB,uBAAuB,IAAI,wBAAwB,EAAE,CAGpE;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,EAAE,CAOtD;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,EAAE,CAO3D;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,wCAGvE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,iCAGhE;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,iCAUxC;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,iCAGrE;AAED,wBAAgB,2BAA2B,kCAK1C;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,mCASxC;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,EAAE,CAG5D;AAED,wBAAgB,aAAa,IAAI,UAAU,EAAE,CAG5C;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAGrD;AAED,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAG7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePGlite.d.ts","sourceRoot":"","sources":["../../../../src/pglite/hooks/usePGlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"usePGlite.d.ts","sourceRoot":"","sources":["../../../../src/pglite/hooks/usePGlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAQD,eAAO,MAAM,WAAW,mBAgBvB,CAAC;AAEF,eAAO,MAAM,cAAc,iBACO,OAAO,CAAC,WAAW,CAAC,SAerD,CAAC;AAEF,eAAO,MAAM,SAAS,iCAjBY,OAAO,CAAC,WAAW,CAAC,aAsBrD,CAAC"}
|
package/dist/src/reactor.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import type { IRenown } from "@renown/sdk";
|
|
2
|
+
import type { DocumentDriveServerOptions, IDocumentDriveServer } from "document-drive";
|
|
3
|
+
import type { DocumentModelModule } from "document-model";
|
|
4
|
+
import type { IConnectCrypto } from "./crypto/index.js";
|
|
5
|
+
import { ConnectCrypto } from "./crypto/index.js";
|
|
6
|
+
import type { Reactor } from "./types/reactor.js";
|
|
6
7
|
export type ReactorDefaultDrivesConfig = {
|
|
7
8
|
defaultDrivesUrl?: string[];
|
|
8
9
|
};
|
|
9
10
|
export declare const getReactorDefaultDrivesConfig: (config?: ReactorDefaultDrivesConfig) => Pick<DocumentDriveServerOptions, "defaultDrives">;
|
|
10
11
|
export declare function createBrowserDocumentDriveServer(documentModelModules: DocumentModelModule[], routerBasename: string, documentDriveServerOptions?: DocumentDriveServerOptions): IDocumentDriveServer;
|
|
11
|
-
export declare
|
|
12
|
+
export declare const refreshReactorData: (reactor: Reactor | undefined, immediate?: boolean) => Promise<void>;
|
|
12
13
|
export declare function initReactor(reactor: Reactor, renown: IRenown | undefined, connectCrypto: IConnectCrypto | undefined): Promise<void>;
|
|
13
14
|
export declare function handleCreateFirstLocalDrive(reactor: Reactor | undefined, localDrivesEnabled?: boolean): Promise<import("document-drive").DocumentDriveDocument | undefined>;
|
|
14
15
|
export declare function initConnectCrypto(): Promise<ConnectCrypto>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAEV,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,MAAM,0BAA0B,GAAG;IACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,SAAQ,0BAA+B,KACtC,IAAI,CAAC,0BAA0B,EAAE,eAAe,CA6ClD,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,oBAAoB,EAAE,mBAAmB,EAAE,EAC3C,cAAc,EAAE,MAAM,EACtB,0BAA0B,CAAC,EAAE,0BAA0B,GACtD,oBAAoB,CAWtB;AA6CD,eAAO,MAAM,kBAAkB,YAzBZ,OAAO,GAAG,SAAS,uCAyB+B,CAAC;AAEtE,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,aAAa,EAAE,cAAc,GAAG,SAAS,iBAQ1C;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,kBAAkB,UAAO,uEAyB1B;AAsBD,wBAAsB,iBAAiB,2BAItC"}
|
package/dist/src/reactor.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseQueueManager, InMemoryCache, ReactorBuilder, } from "document-drive";
|
|
2
2
|
import { BrowserStorage } from "document-drive/storage/browser";
|
|
3
3
|
import { generateId } from "document-model";
|
|
4
|
-
import { BrowserKeyStorage, ConnectCrypto
|
|
4
|
+
import { BrowserKeyStorage, ConnectCrypto } from "./crypto/index.js";
|
|
5
5
|
import { dispatchSetDocumentsEvent } from "./events/documents.js";
|
|
6
6
|
import { dispatchSetDrivesEvent } from "./events/drives.js";
|
|
7
7
|
import { getDocuments, getDrives } from "./utils/drives.js";
|
|
@@ -56,7 +56,9 @@ export function createBrowserDocumentDriveServer(documentModelModules, routerBas
|
|
|
56
56
|
}
|
|
57
57
|
return builder.build();
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
const DEFAULT_DEBOUNCE_DELAY_MS = 200;
|
|
60
|
+
const DEFAULT_IMMEDIATE_THRESHOLD_MS = 1000;
|
|
61
|
+
async function _refreshReactorData(reactor) {
|
|
60
62
|
if (!reactor)
|
|
61
63
|
return;
|
|
62
64
|
const drives = await getDrives(reactor);
|
|
@@ -64,6 +66,31 @@ export async function refreshReactorData(reactor) {
|
|
|
64
66
|
dispatchSetDrivesEvent(drives);
|
|
65
67
|
dispatchSetDocumentsEvent(documents);
|
|
66
68
|
}
|
|
69
|
+
function createDebouncedRefreshReactorData(debounceDelayMs = DEFAULT_DEBOUNCE_DELAY_MS, immediateThresholdMs = DEFAULT_IMMEDIATE_THRESHOLD_MS) {
|
|
70
|
+
let timeout = null;
|
|
71
|
+
let lastRefreshTime = 0;
|
|
72
|
+
return (reactor, immediate = false) => {
|
|
73
|
+
const now = Date.now();
|
|
74
|
+
const timeSinceLastRefresh = now - lastRefreshTime;
|
|
75
|
+
// Clear any pending timeout
|
|
76
|
+
if (timeout !== null) {
|
|
77
|
+
clearTimeout(timeout);
|
|
78
|
+
}
|
|
79
|
+
// If caller requests immediate execution or enough time has passed, execute immediately
|
|
80
|
+
if (immediate || timeSinceLastRefresh >= immediateThresholdMs) {
|
|
81
|
+
lastRefreshTime = now;
|
|
82
|
+
return _refreshReactorData(reactor);
|
|
83
|
+
}
|
|
84
|
+
// Otherwise, debounce the call
|
|
85
|
+
return new Promise((resolve) => {
|
|
86
|
+
timeout = setTimeout(() => {
|
|
87
|
+
lastRefreshTime = Date.now();
|
|
88
|
+
void _refreshReactorData(reactor).then(resolve);
|
|
89
|
+
}, debounceDelayMs);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export const refreshReactorData = createDebouncedRefreshReactorData();
|
|
67
94
|
export async function initReactor(reactor, renown, connectCrypto) {
|
|
68
95
|
await initJwtHandler(reactor, renown, connectCrypto);
|
|
69
96
|
const errors = await reactor.initialize();
|