@powerhousedao/reactor-browser 4.1.0-dev.9 → 4.1.0-staging.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.
- package/README.md +578 -0
- package/dist/src/actions/dispatch.d.ts +3 -0
- package/dist/src/actions/dispatch.d.ts.map +1 -0
- package/dist/src/actions/dispatch.js +13 -0
- package/dist/src/actions/dispatch.js.map +1 -0
- package/dist/src/actions/document.d.ts +14 -0
- package/dist/src/actions/document.d.ts.map +1 -0
- package/dist/src/actions/document.js +260 -0
- package/dist/src/actions/document.js.map +1 -0
- package/dist/src/actions/drive.d.ts +14 -0
- package/dist/src/actions/drive.d.ts.map +1 -0
- package/dist/src/actions/drive.js +192 -0
- package/dist/src/actions/drive.js.map +1 -0
- package/dist/src/actions/index.d.ts +6 -0
- package/dist/src/actions/index.d.ts.map +1 -0
- package/dist/src/actions/index.js +6 -0
- package/dist/src/actions/index.js.map +1 -0
- package/dist/src/actions/queue.d.ts +9 -0
- package/dist/src/actions/queue.d.ts.map +1 -0
- package/dist/src/actions/queue.js +144 -0
- package/dist/src/actions/queue.js.map +1 -0
- package/dist/src/actions/sign.d.ts +5 -0
- package/dist/src/actions/sign.d.ts.map +1 -0
- package/dist/src/actions/sign.js +71 -0
- package/dist/src/actions/sign.js.map +1 -0
- package/dist/src/analytics/index.d.ts +2 -0
- package/dist/src/analytics/index.d.ts.map +1 -0
- package/dist/src/analytics/index.js +2 -0
- package/dist/src/analytics/index.js.map +1 -0
- package/dist/src/constants.d.ts +3 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +3 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/context/read-mode.d.ts.map +1 -1
- package/dist/src/context/read-mode.js +3 -7
- package/dist/src/context/read-mode.js.map +1 -1
- package/dist/src/crypto/index.d.ts +12 -5
- package/dist/src/crypto/index.d.ts.map +1 -1
- package/dist/src/crypto/index.js +61 -60
- package/dist/src/crypto/index.js.map +1 -1
- package/dist/src/events/add-ph-event-handlers.d.ts +2 -0
- package/dist/src/events/add-ph-event-handlers.d.ts.map +1 -0
- package/dist/src/events/add-ph-event-handlers.js +26 -0
- package/dist/src/events/add-ph-event-handlers.js.map +1 -0
- package/dist/src/events/config.d.ts +8 -0
- package/dist/src/events/config.d.ts.map +1 -0
- package/dist/src/events/config.js +25 -0
- package/dist/src/events/config.js.map +1 -0
- package/dist/src/events/crypto.d.ts +13 -0
- package/dist/src/events/crypto.d.ts.map +1 -0
- package/dist/src/events/crypto.js +49 -0
- package/dist/src/events/crypto.js.map +1 -0
- package/dist/src/events/documents.d.ts +7 -0
- package/dist/src/events/documents.d.ts.map +1 -0
- package/dist/src/events/documents.js +19 -0
- package/dist/src/events/documents.js.map +1 -0
- package/dist/src/events/drives.d.ts +13 -0
- package/dist/src/events/drives.d.ts.map +1 -0
- package/dist/src/events/drives.js +57 -0
- package/dist/src/events/drives.js.map +1 -0
- package/dist/src/events/index.d.ts +13 -0
- package/dist/src/events/index.d.ts.map +1 -0
- package/dist/src/events/index.js +13 -0
- package/dist/src/events/index.js.map +1 -0
- package/dist/src/events/nodes.d.ts +7 -0
- package/dist/src/events/nodes.d.ts.map +1 -0
- package/dist/src/events/nodes.js +34 -0
- package/dist/src/events/nodes.js.map +1 -0
- package/dist/src/events/processors.d.ts +8 -0
- package/dist/src/events/processors.d.ts.map +1 -0
- package/dist/src/events/processors.js +25 -0
- package/dist/src/events/processors.js.map +1 -0
- package/dist/src/events/reactor.d.ts +8 -0
- package/dist/src/events/reactor.d.ts.map +1 -0
- package/dist/src/events/reactor.js +25 -0
- package/dist/src/events/reactor.js.map +1 -0
- package/dist/src/events/renown.d.ts +8 -0
- package/dist/src/events/renown.d.ts.map +1 -0
- package/dist/src/events/renown.js +27 -0
- package/dist/src/events/renown.js.map +1 -0
- package/dist/src/events/types.d.ts +60 -0
- package/dist/src/events/types.d.ts.map +1 -0
- package/dist/src/{renown → events}/types.js.map +1 -1
- package/dist/src/events/user.d.ts +14 -0
- package/dist/src/events/user.d.ts.map +1 -0
- package/dist/src/events/user.js +50 -0
- package/dist/src/events/user.js.map +1 -0
- package/dist/src/events/vetra-packages.d.ts +8 -0
- package/dist/src/events/vetra-packages.d.ts.map +1 -0
- package/dist/src/events/vetra-packages.js +29 -0
- package/dist/src/events/vetra-packages.js.map +1 -0
- package/dist/src/hooks/config.d.ts +5 -0
- package/dist/src/hooks/config.d.ts.map +1 -0
- package/dist/src/hooks/config.js +18 -0
- package/dist/src/hooks/config.js.map +1 -0
- package/dist/src/hooks/crypto.d.ts +4 -0
- package/dist/src/hooks/crypto.d.ts.map +1 -0
- package/dist/src/hooks/crypto.js +15 -0
- package/dist/src/hooks/crypto.js.map +1 -0
- package/dist/src/hooks/dispatch.d.ts +3 -0
- package/dist/src/hooks/dispatch.d.ts.map +1 -0
- package/dist/src/hooks/dispatch.js +9 -0
- package/dist/src/hooks/dispatch.js.map +1 -0
- package/dist/src/hooks/documents.d.ts +12 -0
- package/dist/src/hooks/documents.d.ts.map +1 -0
- package/dist/src/hooks/documents.js +46 -0
- package/dist/src/hooks/documents.js.map +1 -0
- package/dist/src/hooks/{useDriveContext.d.ts → drive-context.d.ts} +1 -1
- package/dist/src/hooks/drive-context.d.ts.map +1 -0
- package/dist/src/hooks/{useDriveContext.js → drive-context.js} +1 -1
- package/dist/src/hooks/drive-context.js.map +1 -0
- package/dist/src/hooks/drives.d.ts +23 -0
- package/dist/src/hooks/drives.d.ts.map +1 -0
- package/dist/src/hooks/drives.js +88 -0
- package/dist/src/hooks/drives.js.map +1 -0
- package/dist/src/hooks/index.d.ts +11 -7
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +11 -7
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/nodes.d.ts +41 -0
- package/dist/src/hooks/nodes.d.ts.map +1 -0
- package/dist/src/hooks/nodes.js +160 -0
- package/dist/src/hooks/nodes.js.map +1 -0
- package/dist/src/hooks/processor-manager.d.ts +3 -0
- package/dist/src/hooks/processor-manager.d.ts.map +1 -0
- package/dist/src/hooks/processor-manager.js +7 -0
- package/dist/src/hooks/processor-manager.js.map +1 -0
- package/dist/src/hooks/reactor.d.ts +3 -0
- package/dist/src/hooks/reactor.d.ts.map +1 -0
- package/dist/src/hooks/reactor.js +7 -0
- package/dist/src/hooks/reactor.js.map +1 -0
- package/dist/src/hooks/renown.d.ts +2 -0
- package/dist/src/hooks/renown.d.ts.map +1 -0
- package/dist/src/hooks/renown.js +7 -0
- package/dist/src/hooks/renown.js.map +1 -0
- package/dist/src/hooks/user.d.ts +7 -0
- package/dist/src/hooks/user.d.ts.map +1 -0
- package/dist/src/hooks/user.js +26 -0
- package/dist/src/hooks/user.js.map +1 -0
- package/dist/src/hooks/vetra-packages.d.ts +17 -0
- package/dist/src/hooks/vetra-packages.d.ts.map +1 -0
- package/dist/src/hooks/vetra-packages.js +82 -0
- package/dist/src/hooks/vetra-packages.js.map +1 -0
- package/dist/src/index.d.ts +6 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/reactor.d.ts +7 -0
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +63 -0
- package/dist/src/reactor.js.map +1 -1
- package/dist/src/renown/index.d.ts +3 -0
- package/dist/src/renown/index.d.ts.map +1 -0
- package/dist/src/renown/index.js +3 -0
- package/dist/src/renown/index.js.map +1 -0
- package/dist/src/renown/utils.d.ts +7 -0
- package/dist/src/renown/utils.d.ts.map +1 -0
- package/dist/src/renown/utils.js +47 -0
- package/dist/src/renown/utils.js.map +1 -0
- package/dist/src/types/drive-editor.d.ts +9 -81
- package/dist/src/types/drive-editor.d.ts.map +1 -1
- package/dist/src/types/global.d.ts +64 -0
- package/dist/src/types/global.d.ts.map +1 -0
- package/dist/src/types/global.js +2 -0
- package/dist/src/types/global.js.map +1 -0
- package/dist/src/types/index.d.ts +3 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +3 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/reactor.d.ts +4 -0
- package/dist/src/types/reactor.d.ts.map +1 -0
- package/dist/src/types/reactor.js +2 -0
- package/dist/src/types/reactor.js.map +1 -0
- package/dist/src/types/vetra.d.ts +65 -0
- package/dist/src/types/vetra.d.ts.map +1 -0
- package/dist/src/types/vetra.js +2 -0
- package/dist/src/types/vetra.js.map +1 -0
- package/dist/src/utils/drives.d.ts +32 -0
- package/dist/src/utils/drives.d.ts.map +1 -0
- package/dist/src/utils/drives.js +60 -0
- package/dist/src/utils/drives.js.map +1 -0
- package/dist/src/utils/index.d.ts +6 -4
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +6 -8
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/nodes.d.ts +8 -0
- package/dist/src/utils/nodes.d.ts.map +1 -0
- package/dist/src/utils/nodes.js +17 -0
- package/dist/src/utils/nodes.js.map +1 -0
- package/dist/src/utils/url.d.ts +22 -0
- package/dist/src/utils/url.d.ts.map +1 -0
- package/dist/src/utils/url.js +59 -0
- package/dist/src/utils/url.js.map +1 -0
- package/dist/src/utils/user.d.ts +5 -0
- package/dist/src/utils/user.d.ts.map +1 -0
- package/dist/src/utils/user.js +15 -0
- package/dist/src/utils/user.js.map +1 -0
- package/dist/src/utils/vetra.d.ts +7 -0
- package/dist/src/utils/vetra.d.ts.map +1 -0
- package/dist/src/utils/vetra.js +78 -0
- package/dist/src/utils/vetra.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +24 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +11 -5
- package/dist/package.json +0 -75
- package/dist/src/hooks/document-state.d.ts +0 -24
- package/dist/src/hooks/document-state.d.ts.map +0 -1
- package/dist/src/hooks/document-state.js +0 -89
- package/dist/src/hooks/document-state.js.map +0 -1
- package/dist/src/hooks/useAddDebouncedOperations.d.ts +0 -7
- package/dist/src/hooks/useAddDebouncedOperations.d.ts.map +0 -1
- package/dist/src/hooks/useAddDebouncedOperations.js +0 -53
- package/dist/src/hooks/useAddDebouncedOperations.js.map +0 -1
- package/dist/src/hooks/useConnectCrypto.d.ts +0 -4
- package/dist/src/hooks/useConnectCrypto.d.ts.map +0 -1
- package/dist/src/hooks/useConnectCrypto.js +0 -57
- package/dist/src/hooks/useConnectCrypto.js.map +0 -1
- package/dist/src/hooks/useDocument.d.ts +0 -8
- package/dist/src/hooks/useDocument.d.ts.map +0 -1
- package/dist/src/hooks/useDocument.js +0 -32
- package/dist/src/hooks/useDocument.js.map +0 -1
- package/dist/src/hooks/useDocumentDispatch.d.ts +0 -10
- package/dist/src/hooks/useDocumentDispatch.d.ts.map +0 -1
- package/dist/src/hooks/useDocumentDispatch.js +0 -42
- package/dist/src/hooks/useDocumentDispatch.js.map +0 -1
- package/dist/src/hooks/useDocumentDrives.d.ts +0 -12
- package/dist/src/hooks/useDocumentDrives.d.ts.map +0 -1
- package/dist/src/hooks/useDocumentDrives.js +0 -122
- package/dist/src/hooks/useDocumentDrives.js.map +0 -1
- package/dist/src/hooks/useDocumentEditor.d.ts +0 -32
- package/dist/src/hooks/useDocumentEditor.d.ts.map +0 -1
- package/dist/src/hooks/useDocumentEditor.js +0 -41
- package/dist/src/hooks/useDocumentEditor.js.map +0 -1
- package/dist/src/hooks/useDriveActions.d.ts +0 -79
- package/dist/src/hooks/useDriveActions.d.ts.map +0 -1
- package/dist/src/hooks/useDriveActions.js +0 -108
- package/dist/src/hooks/useDriveActions.js.map +0 -1
- package/dist/src/hooks/useDriveContext.d.ts.map +0 -1
- package/dist/src/hooks/useDriveContext.js.map +0 -1
- package/dist/src/hooks/useUserPermissions.d.ts +0 -6
- package/dist/src/hooks/useUserPermissions.d.ts.map +0 -1
- package/dist/src/hooks/useUserPermissions.js +0 -7
- package/dist/src/hooks/useUserPermissions.js.map +0 -1
- package/dist/src/renown/types.d.ts +0 -76
- package/dist/src/renown/types.d.ts.map +0 -1
- package/dist/src/utils/export-document.d.ts +0 -3
- package/dist/src/utils/export-document.d.ts.map +0 -1
- package/dist/src/utils/export-document.js +0 -19
- package/dist/src/utils/export-document.js.map +0 -1
- package/dist/src/utils/signature.d.ts +0 -5
- package/dist/src/utils/signature.d.ts.map +0 -1
- package/dist/src/utils/signature.js +0 -40
- package/dist/src/utils/signature.js.map +0 -1
- /package/dist/src/{renown → events}/types.js +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type VetraPackage } from "../types/vetra.js";
|
|
2
|
+
import { type SetVetraPackagesEvent } from "./types.js";
|
|
3
|
+
export declare function dispatchSetVetraPackagesEvent(vetraPackages: VetraPackage[] | undefined): void;
|
|
4
|
+
export declare function dispatchVetraPackagesUpdatedEvent(): void;
|
|
5
|
+
export declare function handleSetVetraPackagesEvent(event: SetVetraPackagesEvent): void;
|
|
6
|
+
export declare function subscribeToVetraPackages(onStoreChange: () => void): () => void;
|
|
7
|
+
export declare function addVetraPackagesEventHandler(): void;
|
|
8
|
+
//# sourceMappingURL=vetra-packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vetra-packages.d.ts","sourceRoot":"","sources":["../../../src/events/vetra-packages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,QAM1C;AACD,wBAAgB,iCAAiC,SAGhD;AACD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,qBAAqB,QAUvE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,IAAI,cAKjE;AAED,wBAAgB,4BAA4B,SAE3C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function dispatchSetVetraPackagesEvent(vetraPackages) {
|
|
2
|
+
const event = new CustomEvent("ph:setVetraPackages", {
|
|
3
|
+
detail: { vetraPackages },
|
|
4
|
+
});
|
|
5
|
+
window.dispatchEvent(event);
|
|
6
|
+
}
|
|
7
|
+
export function dispatchVetraPackagesUpdatedEvent() {
|
|
8
|
+
const event = new CustomEvent("ph:vetraPackagesUpdated");
|
|
9
|
+
window.dispatchEvent(event);
|
|
10
|
+
}
|
|
11
|
+
export function handleSetVetraPackagesEvent(event) {
|
|
12
|
+
const vetraPackages = event.detail.vetraPackages;
|
|
13
|
+
window.vetraPackages = vetraPackages;
|
|
14
|
+
dispatchVetraPackagesUpdatedEvent();
|
|
15
|
+
const documentModelModules = vetraPackages
|
|
16
|
+
?.flatMap((pkg) => pkg.modules.documentModelModules)
|
|
17
|
+
.filter((module) => module !== undefined);
|
|
18
|
+
window.reactor?.setDocumentModelModules(documentModelModules);
|
|
19
|
+
}
|
|
20
|
+
export function subscribeToVetraPackages(onStoreChange) {
|
|
21
|
+
window.addEventListener("ph:vetraPackagesUpdated", onStoreChange);
|
|
22
|
+
return () => {
|
|
23
|
+
window.removeEventListener("ph:vetraPackagesUpdated", onStoreChange);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function addVetraPackagesEventHandler() {
|
|
27
|
+
window.addEventListener("ph:setVetraPackages", handleSetVetraPackagesEvent);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=vetra-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vetra-packages.js","sourceRoot":"","sources":["../../../src/events/vetra-packages.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,6BAA6B,CAC3C,aAAyC;IAEzC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,qBAAqB,EAAE;QACnD,MAAM,EAAE,EAAE,aAAa,EAAE;KAC1B,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AACD,MAAM,UAAU,iCAAiC;IAC/C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AACD,MAAM,UAAU,2BAA2B,CAAC,KAA4B;IACtE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IACjD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,iCAAiC,EAAE,CAAC;IACpC,MAAM,oBAAoB,GAAG,aAAa;QACxC,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;SACnD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,uBAAuB,CACrC,oBAA6C,CAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAyB;IAChE,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;IAClE,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function useAppConfig(): import("../index.js").AppConfig | undefined;
|
|
2
|
+
export declare function useShowSearchBar(): boolean;
|
|
3
|
+
export declare function useAnalyticsDatabaseName(): string | undefined;
|
|
4
|
+
export declare function useAllowList(): string[] | undefined;
|
|
5
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/hooks/config.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,gDAE3B;AAED,wBAAgB,gBAAgB,YAG/B;AAED,wBAAgB,wBAAwB,uBAGvC;AAED,wBAAgB,YAAY,yBAG3B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { subscribeToAppConfig } from "../events/config.js";
|
|
3
|
+
export function useAppConfig() {
|
|
4
|
+
return useSyncExternalStore(subscribeToAppConfig, () => window.phAppConfig);
|
|
5
|
+
}
|
|
6
|
+
export function useShowSearchBar() {
|
|
7
|
+
const appConfig = useAppConfig();
|
|
8
|
+
return appConfig?.showSearchBar ?? false;
|
|
9
|
+
}
|
|
10
|
+
export function useAnalyticsDatabaseName() {
|
|
11
|
+
const appConfig = useAppConfig();
|
|
12
|
+
return appConfig?.analyticsDatabaseName;
|
|
13
|
+
}
|
|
14
|
+
export function useAllowList() {
|
|
15
|
+
const appConfig = useAppConfig();
|
|
16
|
+
return appConfig?.allowList;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/hooks/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,UAAU,YAAY;IAC1B,OAAO,oBAAoB,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,SAAS,EAAE,aAAa,IAAI,KAAK,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,SAAS,EAAE,qBAAqB,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,SAAS,EAAE,SAAS,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function useConnectCrypto(): import("../crypto/index.js").IConnectCrypto | undefined;
|
|
2
|
+
export declare function useDid(): `did:key:${string}` | undefined;
|
|
3
|
+
export declare function useSign(): ((data: Uint8Array) => Promise<Uint8Array>) | undefined;
|
|
4
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/hooks/crypto.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,4DAM/B;AAED,wBAAgB,MAAM,oCAGrB;AAED,wBAAgB,OAAO,4DAGtB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { subscribeToConnectCrypto, subscribeToDid } from "../events/index.js";
|
|
3
|
+
export function useConnectCrypto() {
|
|
4
|
+
const connectCrypto = useSyncExternalStore(subscribeToConnectCrypto, () => window.connectCrypto);
|
|
5
|
+
return connectCrypto;
|
|
6
|
+
}
|
|
7
|
+
export function useDid() {
|
|
8
|
+
const did = useSyncExternalStore(subscribeToDid, () => window.did);
|
|
9
|
+
return did;
|
|
10
|
+
}
|
|
11
|
+
export function useSign() {
|
|
12
|
+
const connectCrypto = useConnectCrypto();
|
|
13
|
+
return connectCrypto?.sign;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/hooks/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,UAAU,gBAAgB;IAC9B,MAAM,aAAa,GAAG,oBAAoB,CACxC,wBAAwB,EACxB,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAC3B,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,MAAM,GAAG,GAAG,oBAAoB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,OAAO,aAAa,EAAE,IAAI,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/hooks/dispatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG9D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,uDACvB,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,WAIjE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { logger } from "document-drive";
|
|
2
|
+
import { dispatchActions } from "../actions/dispatch.js";
|
|
3
|
+
export function useDispatch(document) {
|
|
4
|
+
function dispatch(actionOrActions) {
|
|
5
|
+
dispatchActions(actionOrActions, document).catch(logger.error);
|
|
6
|
+
}
|
|
7
|
+
return [document, dispatch];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/hooks/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,UAAU,WAAW,CAAC,QAAgC;IAC1D,SAAS,QAAQ,CAAC,eAA8C;QAC9D,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function useAllDocuments(): import("document-model").PHDocument[] | undefined;
|
|
2
|
+
/** Returns the documents for the selected drive. */
|
|
3
|
+
export declare function useSelectedDriveDocuments(): import("document-model").PHDocument[] | undefined;
|
|
4
|
+
/** Returns the selected document. */
|
|
5
|
+
export declare function useSelectedDocument(): readonly [import("document-model").PHDocument | undefined, (actionOrActions: import("document-model").Action[] | import("document-model").Action | undefined) => void];
|
|
6
|
+
/** Returns the document type of a document by id. */
|
|
7
|
+
export declare function useDocumentTypeById(id: string | null | undefined): string | undefined;
|
|
8
|
+
/** Returns the document type of the selected document. */
|
|
9
|
+
export declare function useSelectedDocumentType(): string | undefined;
|
|
10
|
+
/** Returns a document by id. */
|
|
11
|
+
export declare function useDocumentById(id: string | null | undefined): readonly [import("document-model").PHDocument | undefined, (actionOrActions: import("document-model").Action[] | import("document-model").Action | undefined) => void];
|
|
12
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/hooks/documents.ts"],"names":[],"mappings":"AAcA,wBAAgB,eAAe,sDAM9B;AAED,oDAAoD;AACpD,wBAAgB,yBAAyB,sDAKxC;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,2KAOlC;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAGhE;AAED,0DAA0D;AAC1D,wBAAgB,uBAAuB,uBAGtC;AAED,gCAAgC;AAChC,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,0KAI5D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { useDispatch } from "./dispatch.js";
|
|
3
|
+
import { useFileNodes, useSelectedNodeId } from "./nodes.js";
|
|
4
|
+
function getDocumentsSnapshot() {
|
|
5
|
+
const documents = window.phDocuments;
|
|
6
|
+
return documents;
|
|
7
|
+
}
|
|
8
|
+
function subscribeToDocuments(onStoreChange) {
|
|
9
|
+
window.addEventListener("ph:setDocuments", onStoreChange);
|
|
10
|
+
return () => window.removeEventListener("ph:setDocuments", onStoreChange);
|
|
11
|
+
}
|
|
12
|
+
export function useAllDocuments() {
|
|
13
|
+
const documents = useSyncExternalStore(subscribeToDocuments, getDocumentsSnapshot);
|
|
14
|
+
return documents;
|
|
15
|
+
}
|
|
16
|
+
/** Returns the documents for the selected drive. */
|
|
17
|
+
export function useSelectedDriveDocuments() {
|
|
18
|
+
const documents = useAllDocuments();
|
|
19
|
+
const fileNodes = useFileNodes();
|
|
20
|
+
const fileNodeIds = fileNodes?.map((node) => node.id);
|
|
21
|
+
return documents?.filter((d) => fileNodeIds?.includes(d.header.id));
|
|
22
|
+
}
|
|
23
|
+
/** Returns the selected document. */
|
|
24
|
+
export function useSelectedDocument() {
|
|
25
|
+
const selectedNodeId = useSelectedNodeId();
|
|
26
|
+
const documents = useSelectedDriveDocuments();
|
|
27
|
+
const selectedDocument = documents?.find((d) => d.header.id === selectedNodeId);
|
|
28
|
+
return useDispatch(selectedDocument);
|
|
29
|
+
}
|
|
30
|
+
/** Returns the document type of a document by id. */
|
|
31
|
+
export function useDocumentTypeById(id) {
|
|
32
|
+
const [document] = useDocumentById(id);
|
|
33
|
+
return document?.header.documentType;
|
|
34
|
+
}
|
|
35
|
+
/** Returns the document type of the selected document. */
|
|
36
|
+
export function useSelectedDocumentType() {
|
|
37
|
+
const [selectedDocument] = useSelectedDocument();
|
|
38
|
+
return selectedDocument?.header.documentType;
|
|
39
|
+
}
|
|
40
|
+
/** Returns a document by id. */
|
|
41
|
+
export function useDocumentById(id) {
|
|
42
|
+
const documents = useSelectedDriveDocuments();
|
|
43
|
+
const document = documents?.find((d) => d.header.id === id);
|
|
44
|
+
return useDispatch(document);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/hooks/documents.ts"],"names":[],"mappings":"AAAA,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;AAE7D,SAAS,oBAAoB;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;IACrC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAyB;IACrD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC1D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,oBAAoB,CACpC,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,yBAAyB;IACvC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,mBAAmB;IACjC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,SAAS,EAAE,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,cAAc,CACtC,CAAC;IACF,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,EAA6B;IAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC;AACvC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,EAAE,CAAC;IACjD,OAAO,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC;AAC/C,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAAC,EAA6B;IAC3D,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-context.d.ts","sourceRoot":"","sources":["../../../src/hooks/drive-context.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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-context.js","sourceRoot":"","sources":["../../../src/hooks/drive-context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAA0B,MAAM,OAAO,CAAC;AAG1E,MAAM,YAAY,GAAG,aAAa,CAA4B,SAAS,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAE7B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC3B,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CACxE,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type DocumentDriveDocument, type SharingType, type Trigger } from "document-drive";
|
|
2
|
+
/** Returns the drives for a reactor. */
|
|
3
|
+
export declare function useDrives(): DocumentDriveDocument[] | undefined;
|
|
4
|
+
export declare function useDriveById(driveId: string | undefined | null): readonly [DocumentDriveDocument | undefined, (actionOrActions: import("document-model").Action[] | import("document-model").Action | undefined) => void];
|
|
5
|
+
export declare function useSelectedDriveId(): string | undefined;
|
|
6
|
+
/** Returns the selected drive */
|
|
7
|
+
export declare function useSelectedDrive(): readonly [DocumentDriveDocument | undefined, (actionOrActions: import("document-model").Action[] | import("document-model").Action | undefined) => void];
|
|
8
|
+
export declare function setSelectedDrive(driveOrDriveSlug: string | DocumentDriveDocument | undefined): void;
|
|
9
|
+
/** Returns the remote URL for a drive. */
|
|
10
|
+
export declare function useDriveRemoteUrl(driveId: string | null | undefined): string | undefined;
|
|
11
|
+
/** Returns the pull responder trigger for a drive. */
|
|
12
|
+
export declare function useDrivePullResponderTrigger(driveId: string | null | undefined): Trigger | undefined;
|
|
13
|
+
/** Returns the pull responder URL for a drive. */
|
|
14
|
+
export declare function useDrivePullResponderUrl(driveId: string | null | undefined): string | undefined;
|
|
15
|
+
/** Returns whether a drive is remote. */
|
|
16
|
+
export declare function useDriveIsRemote(driveId: string | null | undefined): boolean;
|
|
17
|
+
/** Returns the sharing type for a drive. */
|
|
18
|
+
export declare function useDriveSharingType(driveId: string | null | undefined): SharingType | undefined;
|
|
19
|
+
/** Returns the sharing type for the selected drive. */
|
|
20
|
+
export declare function useSelectedDriveSharingType(): SharingType | undefined;
|
|
21
|
+
/** Returns whether a drive is available offline. */
|
|
22
|
+
export declare function useDriveAvailableOffline(driveId: string | null | undefined): boolean;
|
|
23
|
+
//# sourceMappingURL=drives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drives.d.ts","sourceRoot":"","sources":["../../../src/hooks/drives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AAaxB,wCAAwC;AACxC,wBAAgB,SAAS,wCAGxB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,4JAM9D;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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { dispatchSetSelectedDriveIdEvent, subscribeToDrives, subscribeToSelectedDriveId, } from "../events/index.js";
|
|
3
|
+
import { getDriveAvailableOffline, getDriveSharingType, } from "../utils/drives.js";
|
|
4
|
+
import { useDispatch } from "./dispatch.js";
|
|
5
|
+
/** Returns the drives for a reactor. */
|
|
6
|
+
export function useDrives() {
|
|
7
|
+
const drives = useSyncExternalStore(subscribeToDrives, () => window.phDrives);
|
|
8
|
+
return drives;
|
|
9
|
+
}
|
|
10
|
+
export function useDriveById(driveId) {
|
|
11
|
+
const drives = useDrives();
|
|
12
|
+
const drive = drives?.find((drive) => drive.header.id === driveId);
|
|
13
|
+
const [document, dispatch] = useDispatch(drive);
|
|
14
|
+
const unsafeDrive = document;
|
|
15
|
+
return [unsafeDrive, dispatch];
|
|
16
|
+
}
|
|
17
|
+
export function useSelectedDriveId() {
|
|
18
|
+
const selectedDriveId = useSyncExternalStore(subscribeToSelectedDriveId, () => window.phSelectedDriveId);
|
|
19
|
+
return selectedDriveId;
|
|
20
|
+
}
|
|
21
|
+
/** Returns the selected drive */
|
|
22
|
+
export function useSelectedDrive() {
|
|
23
|
+
const selectedDriveId = useSelectedDriveId();
|
|
24
|
+
const drives = useDrives();
|
|
25
|
+
const selectedDrive = drives?.find((drive) => drive.header.id === selectedDriveId);
|
|
26
|
+
const [document, dispatch] = useDispatch(selectedDrive);
|
|
27
|
+
const unsafeDrive = document;
|
|
28
|
+
return [unsafeDrive, dispatch];
|
|
29
|
+
}
|
|
30
|
+
export function setSelectedDrive(driveOrDriveSlug) {
|
|
31
|
+
const driveSlug = typeof driveOrDriveSlug === "string"
|
|
32
|
+
? driveOrDriveSlug
|
|
33
|
+
: driveOrDriveSlug?.header.slug;
|
|
34
|
+
dispatchSetSelectedDriveIdEvent(driveSlug);
|
|
35
|
+
}
|
|
36
|
+
/** Returns the remote URL for a drive. */
|
|
37
|
+
export function useDriveRemoteUrl(driveId) {
|
|
38
|
+
const [drive] = useDriveById(driveId);
|
|
39
|
+
const pullResponderUrl = useDrivePullResponderUrl(driveId);
|
|
40
|
+
if (!drive)
|
|
41
|
+
return undefined;
|
|
42
|
+
if ("remoteUrl" in drive.state.global) {
|
|
43
|
+
const remoteUrl = drive.state.global.remoteUrl;
|
|
44
|
+
if (typeof remoteUrl === "string") {
|
|
45
|
+
return remoteUrl;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return pullResponderUrl;
|
|
49
|
+
}
|
|
50
|
+
/** Returns the pull responder trigger for a drive. */
|
|
51
|
+
export function useDrivePullResponderTrigger(driveId) {
|
|
52
|
+
const [drive] = useDriveById(driveId);
|
|
53
|
+
const pullResponder = drive?.state.local.triggers.find((trigger) => trigger.type === "PullResponder");
|
|
54
|
+
return pullResponder;
|
|
55
|
+
}
|
|
56
|
+
/** Returns the pull responder URL for a drive. */
|
|
57
|
+
export function useDrivePullResponderUrl(driveId) {
|
|
58
|
+
const pullResponder = useDrivePullResponderTrigger(driveId);
|
|
59
|
+
return pullResponder?.data?.url;
|
|
60
|
+
}
|
|
61
|
+
/** Returns whether a drive is remote. */
|
|
62
|
+
export function useDriveIsRemote(driveId) {
|
|
63
|
+
const remoteUrl = useDriveRemoteUrl(driveId);
|
|
64
|
+
const pullResponder = useDrivePullResponderTrigger(driveId);
|
|
65
|
+
return remoteUrl !== undefined || pullResponder !== undefined;
|
|
66
|
+
}
|
|
67
|
+
/** Returns the sharing type for a drive. */
|
|
68
|
+
export function useDriveSharingType(driveId) {
|
|
69
|
+
const [drive] = useDriveById(driveId);
|
|
70
|
+
if (!drive)
|
|
71
|
+
return undefined;
|
|
72
|
+
return getDriveSharingType(drive);
|
|
73
|
+
}
|
|
74
|
+
/** Returns the sharing type for the selected drive. */
|
|
75
|
+
export function useSelectedDriveSharingType() {
|
|
76
|
+
const [drive] = useSelectedDrive();
|
|
77
|
+
if (!drive)
|
|
78
|
+
return undefined;
|
|
79
|
+
return getDriveSharingType(drive);
|
|
80
|
+
}
|
|
81
|
+
/** Returns whether a drive is available offline. */
|
|
82
|
+
export function useDriveAvailableOffline(driveId) {
|
|
83
|
+
const [drive] = useDriveById(driveId);
|
|
84
|
+
if (!drive)
|
|
85
|
+
return false;
|
|
86
|
+
return getDriveAvailableOffline(drive);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=drives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drives.js","sourceRoot":"","sources":["../../../src/hooks/drives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./crypto.js";
|
|
3
|
+
export * from "./documents.js";
|
|
4
|
+
export * from "./drive-context.js";
|
|
5
|
+
export * from "./drives.js";
|
|
6
|
+
export * from "./nodes.js";
|
|
7
|
+
export * from "./processor-manager.js";
|
|
8
|
+
export * from "./reactor.js";
|
|
9
|
+
export * from "./renown.js";
|
|
10
|
+
export * from "./user.js";
|
|
11
|
+
export * from "./vetra-packages.js";
|
|
8
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,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,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
package/dist/src/hooks/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./crypto.js";
|
|
3
|
+
export * from "./documents.js";
|
|
4
|
+
export * from "./drive-context.js";
|
|
5
|
+
export * from "./drives.js";
|
|
6
|
+
export * from "./nodes.js";
|
|
7
|
+
export * from "./processor-manager.js";
|
|
8
|
+
export * from "./reactor.js";
|
|
9
|
+
export * from "./renown.js";
|
|
10
|
+
export * from "./user.js";
|
|
11
|
+
export * from "./vetra-packages.js";
|
|
8
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,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,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type FileNode, type FolderNode, type Node } from "document-drive";
|
|
2
|
+
import { type NodeKind } from "../types/reactor.js";
|
|
3
|
+
/** Returns the nodes for a drive. */
|
|
4
|
+
export declare function useNodes(): Node[] | undefined;
|
|
5
|
+
export declare function useSelectedNodeId(): string | undefined;
|
|
6
|
+
export declare function useFileNodes(): FileNode[] | undefined;
|
|
7
|
+
export declare function useFolderNodes(): Node[] | undefined;
|
|
8
|
+
export declare function setSelectedNode(nodeOrNodeSlug: Node | string | undefined): void;
|
|
9
|
+
/** Returns a node in the selected drive by id. */
|
|
10
|
+
export declare function useNodeById(id: string | null | undefined): Node | undefined;
|
|
11
|
+
/** Returns the parent folder id of a node by id */
|
|
12
|
+
export declare function useParentFolderId(id: string | null | undefined): string | undefined;
|
|
13
|
+
/** Returns the parent folder of a node by id */
|
|
14
|
+
export declare function useParentFolder(id: string | null | undefined): FolderNode | undefined;
|
|
15
|
+
/** Returns the selected folder or document's parent folder. */
|
|
16
|
+
export declare function useSelectedParentFolder(): FolderNode | undefined;
|
|
17
|
+
/** Returns the path to a node. */
|
|
18
|
+
export declare function useNodePath(id: string | null | undefined): Node[];
|
|
19
|
+
/** Returns the selected folder. */
|
|
20
|
+
export declare function useSelectedFolder(): FolderNode | undefined;
|
|
21
|
+
/** Returns the path to the selected node. */
|
|
22
|
+
export declare function useSelectedNodePath(): Node[];
|
|
23
|
+
/** Returns the child nodes for the selected drive or folder. */
|
|
24
|
+
export declare function useChildNodes(): Node[];
|
|
25
|
+
export declare function useAllFolderNodes(): FolderNode[];
|
|
26
|
+
export declare function useAllFileNodes(): FileNode[];
|
|
27
|
+
/** Returns the folder child nodes for the selected drive or folder. */
|
|
28
|
+
export declare function useFolderChildNodes(): FolderNode[];
|
|
29
|
+
/** Returns the file (document) child nodes for the selected drive or folder. */
|
|
30
|
+
export declare function useFileChildNodes(): FileNode[];
|
|
31
|
+
/** Returns the child nodes for a drive or folder by id. */
|
|
32
|
+
export declare function useChildNodesForId(id: string | null | undefined): Node[];
|
|
33
|
+
/** Returns the folder child nodes for a drive or folder by id. */
|
|
34
|
+
export declare function useFolderChildNodesForId(id: string | null | undefined): FolderNode[];
|
|
35
|
+
/** Returns the file (document) child nodes for a drive or folder by id. */
|
|
36
|
+
export declare function useFileChildNodesForId(id: string | null | undefined): FileNode[];
|
|
37
|
+
/** Returns the name of a node. */
|
|
38
|
+
export declare function useNodeName(id: string | null | undefined): string | undefined;
|
|
39
|
+
/** Returns the kind of a node. */
|
|
40
|
+
export declare function useNodeKind(id: string | null | undefined): NodeKind | undefined;
|
|
41
|
+
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/hooks/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAM3E,OAAO,EAAE,KAAK,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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { dispatchSetSelectedNodeIdEvent, subscribeToSelectedNodeId, } from "../events/nodes.js";
|
|
3
|
+
import { makeFolderNodeFromDrive } from "../utils/drives.js";
|
|
4
|
+
import { isFileNodeKind, isFolderNodeKind, sortNodesByName, } from "../utils/nodes.js";
|
|
5
|
+
import { makeNodeSlug } from "../utils/url.js";
|
|
6
|
+
import { useSelectedDocument } from "./documents.js";
|
|
7
|
+
import { useDrives, useSelectedDrive } from "./drives.js";
|
|
8
|
+
/** Returns the nodes for a drive. */
|
|
9
|
+
export function useNodes() {
|
|
10
|
+
const [selectedDrive] = useSelectedDrive();
|
|
11
|
+
return selectedDrive?.state.global.nodes;
|
|
12
|
+
}
|
|
13
|
+
export function useSelectedNodeId() {
|
|
14
|
+
const selectedNodeId = useSyncExternalStore(subscribeToSelectedNodeId, () => window.phSelectedNodeId);
|
|
15
|
+
return selectedNodeId;
|
|
16
|
+
}
|
|
17
|
+
export function useFileNodes() {
|
|
18
|
+
const nodes = useNodes();
|
|
19
|
+
return nodes?.filter((n) => isFileNodeKind(n));
|
|
20
|
+
}
|
|
21
|
+
export function useFolderNodes() {
|
|
22
|
+
const nodes = useNodes();
|
|
23
|
+
return nodes?.filter((n) => isFolderNodeKind(n));
|
|
24
|
+
}
|
|
25
|
+
export function setSelectedNode(nodeOrNodeSlug) {
|
|
26
|
+
const nodeSlug = typeof nodeOrNodeSlug === "string"
|
|
27
|
+
? nodeOrNodeSlug
|
|
28
|
+
: makeNodeSlug(nodeOrNodeSlug);
|
|
29
|
+
dispatchSetSelectedNodeIdEvent(nodeSlug);
|
|
30
|
+
}
|
|
31
|
+
/** Returns a node in the selected drive by id. */
|
|
32
|
+
export function useNodeById(id) {
|
|
33
|
+
const nodes = useNodes();
|
|
34
|
+
return nodes?.find((n) => n.id === id);
|
|
35
|
+
}
|
|
36
|
+
/** Returns the parent folder id of a node by id */
|
|
37
|
+
export function useParentFolderId(id) {
|
|
38
|
+
const node = useNodeById(id);
|
|
39
|
+
return node?.parentFolder ?? undefined;
|
|
40
|
+
}
|
|
41
|
+
/** Returns the parent folder of a node by id */
|
|
42
|
+
export function useParentFolder(id) {
|
|
43
|
+
const parentFolderId = useParentFolderId(id);
|
|
44
|
+
const nodes = useNodes();
|
|
45
|
+
const parentFolder = nodes
|
|
46
|
+
?.filter((n) => isFolderNodeKind(n))
|
|
47
|
+
.find((n) => n.id === parentFolderId);
|
|
48
|
+
return parentFolder;
|
|
49
|
+
}
|
|
50
|
+
/** Returns the selected folder or document's parent folder. */
|
|
51
|
+
export function useSelectedParentFolder() {
|
|
52
|
+
const selectedFolder = useSelectedFolder();
|
|
53
|
+
const [selectedDocument] = useSelectedDocument();
|
|
54
|
+
const selectedNodeId = selectedDocument?.header.id ?? selectedFolder?.id;
|
|
55
|
+
return useParentFolder(selectedNodeId);
|
|
56
|
+
}
|
|
57
|
+
/** Returns the path to a node. */
|
|
58
|
+
export function useNodePath(id) {
|
|
59
|
+
const nodes = useNodes();
|
|
60
|
+
const [selectedDrive] = useSelectedDrive();
|
|
61
|
+
if (!nodes || !selectedDrive)
|
|
62
|
+
return [];
|
|
63
|
+
const driveFolderNode = makeFolderNodeFromDrive(selectedDrive);
|
|
64
|
+
const path = [];
|
|
65
|
+
if (driveFolderNode) {
|
|
66
|
+
path.unshift(driveFolderNode);
|
|
67
|
+
}
|
|
68
|
+
let current = nodes.find((n) => n.id === id);
|
|
69
|
+
while (current) {
|
|
70
|
+
path.unshift(current);
|
|
71
|
+
if (!current.parentFolder)
|
|
72
|
+
break;
|
|
73
|
+
current = nodes.find((n) => n.id === current?.parentFolder);
|
|
74
|
+
}
|
|
75
|
+
return path.reverse();
|
|
76
|
+
}
|
|
77
|
+
/** Returns the selected folder. */
|
|
78
|
+
export function useSelectedFolder() {
|
|
79
|
+
const selectedNodeId = useSelectedNodeId();
|
|
80
|
+
const folderNodes = useFolderNodes();
|
|
81
|
+
const selectedFolder = folderNodes?.find((n) => n.id === selectedNodeId);
|
|
82
|
+
return selectedFolder;
|
|
83
|
+
}
|
|
84
|
+
/** Returns the path to the selected node. */
|
|
85
|
+
export function useSelectedNodePath() {
|
|
86
|
+
const selectedFolder = useSelectedFolder();
|
|
87
|
+
const [selectedDocument] = useSelectedDocument();
|
|
88
|
+
const selectedNodeId = selectedDocument?.header.id ?? selectedFolder?.id;
|
|
89
|
+
return useNodePath(selectedNodeId);
|
|
90
|
+
}
|
|
91
|
+
/** Returns the child nodes for the selected drive or folder. */
|
|
92
|
+
export function useChildNodes() {
|
|
93
|
+
const nodes = useNodes();
|
|
94
|
+
const selectedFolder = useSelectedFolder();
|
|
95
|
+
const selectedFolderId = selectedFolder?.id;
|
|
96
|
+
if (!nodes)
|
|
97
|
+
return [];
|
|
98
|
+
if (!selectedFolderId)
|
|
99
|
+
return sortNodesByName(nodes);
|
|
100
|
+
return sortNodesByName(nodes.filter((n) => n.parentFolder === selectedFolderId));
|
|
101
|
+
}
|
|
102
|
+
export function useAllFolderNodes() {
|
|
103
|
+
const nodes = useNodes();
|
|
104
|
+
return sortNodesByName(nodes?.filter((n) => isFolderNodeKind(n)) || []);
|
|
105
|
+
}
|
|
106
|
+
export function useAllFileNodes() {
|
|
107
|
+
const nodes = useNodes();
|
|
108
|
+
return sortNodesByName(nodes?.filter((n) => isFileNodeKind(n)) || []);
|
|
109
|
+
}
|
|
110
|
+
/** Returns the folder child nodes for the selected drive or folder. */
|
|
111
|
+
export function useFolderChildNodes() {
|
|
112
|
+
const childNodes = useChildNodes();
|
|
113
|
+
return sortNodesByName(childNodes.filter((n) => isFolderNodeKind(n)));
|
|
114
|
+
}
|
|
115
|
+
/** Returns the file (document) child nodes for the selected drive or folder. */
|
|
116
|
+
export function useFileChildNodes() {
|
|
117
|
+
const childNodes = useChildNodes();
|
|
118
|
+
return sortNodesByName(childNodes.filter((n) => isFileNodeKind(n)));
|
|
119
|
+
}
|
|
120
|
+
/** Returns the child nodes for a drive or folder by id. */
|
|
121
|
+
export function useChildNodesForId(id) {
|
|
122
|
+
const nodes = useNodes();
|
|
123
|
+
const drives = useDrives();
|
|
124
|
+
if (!nodes || !drives)
|
|
125
|
+
return [];
|
|
126
|
+
const isDrive = drives.some((d) => d.header.id === id);
|
|
127
|
+
const childNodes = isDrive
|
|
128
|
+
? nodes
|
|
129
|
+
: nodes.filter((n) => n.parentFolder === id);
|
|
130
|
+
return sortNodesByName(childNodes);
|
|
131
|
+
}
|
|
132
|
+
/** Returns the folder child nodes for a drive or folder by id. */
|
|
133
|
+
export function useFolderChildNodesForId(id) {
|
|
134
|
+
const childNodes = useChildNodesForId(id);
|
|
135
|
+
return sortNodesByName(childNodes.filter((n) => isFolderNodeKind(n)));
|
|
136
|
+
}
|
|
137
|
+
/** Returns the file (document) child nodes for a drive or folder by id. */
|
|
138
|
+
export function useFileChildNodesForId(id) {
|
|
139
|
+
const childNodes = useChildNodesForId(id);
|
|
140
|
+
return sortNodesByName(childNodes.filter((n) => isFileNodeKind(n)));
|
|
141
|
+
}
|
|
142
|
+
/** Returns the name of a node. */
|
|
143
|
+
export function useNodeName(id) {
|
|
144
|
+
const nodes = useNodes();
|
|
145
|
+
if (!nodes)
|
|
146
|
+
return undefined;
|
|
147
|
+
const node = nodes.find((n) => n.id === id);
|
|
148
|
+
return node?.name;
|
|
149
|
+
}
|
|
150
|
+
/** Returns the kind of a node. */
|
|
151
|
+
export function useNodeKind(id) {
|
|
152
|
+
const nodes = useNodes();
|
|
153
|
+
if (!nodes)
|
|
154
|
+
return undefined;
|
|
155
|
+
const node = nodes.find((n) => n.id === id);
|
|
156
|
+
if (!node)
|
|
157
|
+
return undefined;
|
|
158
|
+
return node.kind.toUpperCase();
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=nodes.js.map
|