@powerhousedao/codegen 5.0.0-staging.9 → 5.0.1-staging.10
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 +0 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +8 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +3 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-models.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +56 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +6 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +110 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +49 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +12 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +128 -54
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.esm.t +4 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +22 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +29 -32
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +18 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +11 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +13 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -25
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +5 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +21 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +59 -52
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +11 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +13 -18
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +67 -39
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +117 -21
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +23 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +5 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +33 -39
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +23 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +10 -279
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +19 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +29 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +92 -87
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +28 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +11 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +10 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editors.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +29 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.esm.t +4 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +15 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/edit-name.esm.t +78 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +9 -21
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editors.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +97 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.esm.t +4 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +16 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +3 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +3 -4
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/utils.js +43 -0
- package/dist/src/codegen/__tests__/config.d.ts +2 -0
- package/dist/src/codegen/__tests__/config.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/config.js +2 -0
- package/dist/src/codegen/__tests__/config.js.map +1 -0
- package/dist/src/codegen/__tests__/constants.d.ts +16 -0
- package/dist/src/codegen/__tests__/constants.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/constants.js +16 -0
- package/dist/src/codegen/__tests__/constants.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts +2 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js +9 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts +3 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js +33 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts +2 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js +23 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts +2 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.js +23 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +206 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +153 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-editor.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-editor.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-editor.test.js +94 -0
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.js +192 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.js +143 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.js.map +1 -0
- package/dist/src/codegen/__tests__/global-setup.d.ts +2 -0
- package/dist/src/codegen/__tests__/global-setup.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/global-setup.js +21 -0
- package/dist/src/codegen/__tests__/global-setup.js.map +1 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js +72 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -0
- package/dist/src/codegen/__tests__/utils.d.ts +7 -0
- package/dist/src/codegen/__tests__/utils.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/utils.js +52 -0
- package/dist/src/codegen/__tests__/utils.js.map +1 -0
- package/dist/src/codegen/generate.d.ts +33 -0
- package/dist/src/codegen/generate.d.ts.map +1 -0
- package/dist/src/codegen/generate.js +205 -0
- package/dist/src/codegen/generate.js.map +1 -0
- package/dist/src/codegen/graphql.d.ts +2 -2
- package/dist/src/codegen/graphql.d.ts.map +1 -1
- package/dist/src/codegen/graphql.js.map +1 -1
- package/dist/src/codegen/hygen.d.ts +15 -12
- package/dist/src/codegen/hygen.d.ts.map +1 -1
- package/dist/src/codegen/hygen.js +72 -27
- package/dist/src/codegen/hygen.js.map +1 -1
- package/dist/src/codegen/index.d.ts +6 -34
- package/dist/src/codegen/index.d.ts.map +1 -1
- package/dist/src/codegen/index.js +6 -249
- package/dist/src/codegen/index.js.map +1 -1
- package/dist/src/codegen/types.d.ts +9 -0
- package/dist/src/codegen/types.d.ts.map +1 -0
- package/dist/src/codegen/types.js +2 -0
- package/dist/src/codegen/types.js.map +1 -0
- package/dist/src/codegen/utils.d.ts +5 -2
- package/dist/src/codegen/utils.d.ts.map +1 -1
- package/dist/src/codegen/utils.js +42 -4
- package/dist/src/codegen/utils.js.map +1 -1
- package/dist/src/create-lib/checkout-project.d.ts +13 -0
- package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
- package/dist/src/create-lib/checkout-project.js +47 -0
- package/dist/src/create-lib/checkout-project.js.map +1 -0
- package/dist/src/create-lib/create-project.d.ts +9 -5
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +37 -30
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/create-lib/feature-flags.d.ts +4 -0
- package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
- package/dist/src/create-lib/feature-flags.js +4 -0
- package/dist/src/create-lib/feature-flags.js.map +1 -0
- package/dist/src/create-lib/index.d.ts +1 -0
- package/dist/src/create-lib/index.d.ts.map +1 -1
- package/dist/src/create-lib/index.js +1 -0
- package/dist/src/create-lib/index.js.map +1 -1
- package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
- package/dist/src/create-lib/utils.d.ts.map +1 -0
- package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
- package/dist/src/create-lib/utils.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts +2 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +491 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js.map +1 -0
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +5 -4
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/core/FileGenerator.js +3 -1
- package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -1
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +18 -9
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/{file-generators → core}/ReducerGenerator.d.ts +2 -2
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/{file-generators → core}/ReducerGenerator.js +17 -10
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +4 -3
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +9 -3
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -1
- package/dist/src/ts-morph-generator/index.d.ts +2 -2
- package/dist/src/ts-morph-generator/index.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/index.js +2 -2
- package/dist/src/ts-morph-generator/index.js.map +1 -1
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts +5 -0
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.js +10 -0
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.js.map +1 -0
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +2 -2
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +2 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.js +13 -3
- package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -1
- package/dist/src/ts-morph-generator/utilities/index.d.ts +1 -0
- package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/utilities/index.js +1 -0
- package/dist/src/ts-morph-generator/utilities/index.js.map +1 -1
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +0 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/validation.d.ts +6 -6
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/src/utils/validation.js +5 -6
- package/dist/src/utils/validation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +27 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.d.ts +0 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -27
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -32
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -103
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.d.ts +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +0 -19
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +0 -19
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
- package/dist/src/ts-morph-generator/core/index.d.ts +0 -4
- package/dist/src/ts-morph-generator/core/index.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/core/index.js +0 -4
- package/dist/src/ts-morph-generator/core/index.js.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/index.d.ts +0 -2
- package/dist/src/ts-morph-generator/file-generators/index.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/index.js +0 -2
- package/dist/src/ts-morph-generator/file-generators/index.js.map +0 -1
- package/dist/src/utils/package-manager.d.ts.map +0 -1
- package/dist/src/utils/package-manager.js.map +0 -1
- package/dist/tsconfig.hygen.tsbuildinfo +0 -1
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
|
@@ -2,300 +2,31 @@
|
|
|
2
2
|
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/DriveExplorer.tsx"
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
|
-
import {
|
|
6
|
-
Breadcrumbs,
|
|
7
|
-
CreateDocumentModal,
|
|
8
|
-
FileItem,
|
|
9
|
-
FolderItem,
|
|
10
|
-
useBreadcrumbs,
|
|
11
|
-
} from "@powerhousedao/design-system";
|
|
12
|
-
import {
|
|
13
|
-
addDocument,
|
|
14
|
-
type DriveEditorProps,
|
|
15
|
-
getSyncStatusSync,
|
|
16
|
-
setSelectedNode,
|
|
17
|
-
useAllFolderNodes,
|
|
18
|
-
useDocumentModelModules,
|
|
19
|
-
useDriveContext,
|
|
20
|
-
useDriveSharingType,
|
|
21
|
-
useEditorModules,
|
|
22
|
-
useFileChildNodes,
|
|
23
|
-
useFolderChildNodes,
|
|
24
|
-
useSelectedDrive,
|
|
25
|
-
useSelectedFolder,
|
|
26
|
-
useSelectedNodePath,
|
|
27
|
-
useUserPermissions,
|
|
28
|
-
} from "@powerhousedao/reactor-browser";
|
|
29
|
-
import type { DocumentModelModule } from "document-model";
|
|
30
|
-
import { useCallback, useRef, useState } from "react";
|
|
31
|
-
import { CreateDocument } from "./CreateDocument.js";
|
|
32
|
-
import { EditorContainer } from "./EditorContainer.js";
|
|
5
|
+
import type { EditorProps } from "document-model";
|
|
33
6
|
import { FolderTree } from "./FolderTree.js";
|
|
7
|
+
import { DriveContents } from "./DriveContents.js";
|
|
34
8
|
|
|
35
9
|
/**
|
|
36
10
|
* Main drive explorer component with sidebar navigation and content area.
|
|
37
11
|
* Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
|
|
38
12
|
*/
|
|
39
|
-
export function DriveExplorer(
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
const [activeDocumentId, setActiveDocumentId] = useState<
|
|
43
|
-
string | undefined
|
|
44
|
-
>();
|
|
45
|
-
const [openModal, setOpenModal] = useState(false);
|
|
46
|
-
const selectedDocumentModel = useRef<DocumentModelModule | null>(null);
|
|
47
|
-
const editorModules = useEditorModules();
|
|
48
|
-
// === DRIVE CONTEXT HOOKS ===
|
|
49
|
-
// Core drive operations and document models
|
|
50
|
-
const {
|
|
51
|
-
onAddFile,
|
|
52
|
-
onAddFolder,
|
|
53
|
-
onCopyNode,
|
|
54
|
-
onDuplicateNode,
|
|
55
|
-
onMoveNode,
|
|
56
|
-
onRenameNode,
|
|
57
|
-
showDeleteNodeModal,
|
|
58
|
-
} = useDriveContext();
|
|
13
|
+
export function DriveExplorer({ children }: EditorProps) {
|
|
14
|
+
// if a document is selected then it's editor will be passed as children
|
|
15
|
+
const showDocumentEditor = !!children;
|
|
59
16
|
|
|
60
|
-
const { isAllowedToCreateDocuments } = useUserPermissions();
|
|
61
|
-
// === STATE MANAGEMENT HOOKS ===
|
|
62
|
-
// Core state hooks for drive navigation
|
|
63
|
-
const [selectedDrive] = useSelectedDrive(); // Currently selected drive
|
|
64
|
-
const selectedFolder = useSelectedFolder(); // Currently selected folder
|
|
65
|
-
const selectedNodePath = useSelectedNodePath();
|
|
66
|
-
const sharingType = useDriveSharingType(selectedDrive?.header.id);
|
|
67
|
-
|
|
68
|
-
// === NAVIGATION SETUP ===
|
|
69
|
-
// Breadcrumbs for folder navigation
|
|
70
|
-
const { breadcrumbs, onBreadcrumbSelected } = useBreadcrumbs({
|
|
71
|
-
selectedNodePath,
|
|
72
|
-
setSelectedNode,
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
const folderChildren = useFolderChildNodes();
|
|
76
|
-
const fileChildren = useFileChildNodes();
|
|
77
|
-
|
|
78
|
-
// All folders for the sidebar tree view
|
|
79
|
-
const allFolders = useAllFolderNodes();
|
|
80
|
-
|
|
81
|
-
// === EVENT HANDLERS ===
|
|
82
|
-
|
|
83
|
-
// Handle folder creation with optional name parameter
|
|
84
|
-
const handleCreateFolder = useCallback(
|
|
85
|
-
async (folderName?: string) => {
|
|
86
|
-
let name: string | undefined = folderName;
|
|
87
|
-
|
|
88
|
-
// If no name provided, prompt for it (for manual folder creation)
|
|
89
|
-
if (!name) {
|
|
90
|
-
const promptResult = prompt("Enter folder name:");
|
|
91
|
-
name = promptResult || undefined;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (name?.trim()) {
|
|
95
|
-
try {
|
|
96
|
-
await onAddFolder(name.trim(), selectedFolder);
|
|
97
|
-
} catch (error) {
|
|
98
|
-
console.error("Failed to create folder:", error);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
[onAddFolder, selectedFolder],
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
// Handle document creation from modal
|
|
106
|
-
const onCreateDocument = useCallback(
|
|
107
|
-
async (fileName: string) => {
|
|
108
|
-
setOpenModal(false);
|
|
109
|
-
|
|
110
|
-
const documentModel = selectedDocumentModel.current;
|
|
111
|
-
if (!documentModel || !selectedDrive?.header.id) return;
|
|
112
|
-
|
|
113
|
-
try {
|
|
114
|
-
const node = await addDocument(
|
|
115
|
-
selectedDrive.header.id,
|
|
116
|
-
fileName,
|
|
117
|
-
documentModel.documentModel.id,
|
|
118
|
-
selectedFolder?.id,
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
selectedDocumentModel.current = null;
|
|
122
|
-
|
|
123
|
-
if (node) {
|
|
124
|
-
// Customize: Auto-open created document by uncommenting below
|
|
125
|
-
// setActiveDocumentId(node.id);
|
|
126
|
-
}
|
|
127
|
-
} catch (error) {
|
|
128
|
-
console.error("Failed to create document:", error);
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
[addDocument, editorModules, selectedDrive?.header.id, selectedFolder?.id],
|
|
132
|
-
);
|
|
133
|
-
|
|
134
|
-
// === DOCUMENT EDITOR DATA ===
|
|
135
|
-
// Filter available document types here if needed
|
|
136
|
-
const documentModelModules = useDocumentModelModules();
|
|
137
|
-
|
|
138
|
-
// Get active document and its editor components
|
|
139
|
-
const activeDocument = activeDocumentId
|
|
140
|
-
? fileChildren.find((file) => file.id === activeDocumentId)
|
|
141
|
-
: undefined;
|
|
142
|
-
|
|
143
|
-
const documentModelModule = activeDocument
|
|
144
|
-
? documentModelModules?.find(
|
|
145
|
-
(m) => m.documentModel.id === activeDocument.documentType,
|
|
146
|
-
)
|
|
147
|
-
: null;
|
|
148
|
-
|
|
149
|
-
const editorModule = activeDocument
|
|
150
|
-
? editorModules?.find((e) =>
|
|
151
|
-
e.documentTypes.includes(activeDocument.documentType),
|
|
152
|
-
)
|
|
153
|
-
: null;
|
|
154
|
-
|
|
155
|
-
// === RENDER ===
|
|
156
17
|
return (
|
|
157
18
|
<div className="flex h-full">
|
|
158
|
-
|
|
159
|
-
{/* Customize sidebar width by changing w-64 */}
|
|
160
|
-
<div className="w-64 overflow-y-auto border-r border-gray-200 bg-white">
|
|
161
|
-
<div className="p-4">
|
|
162
|
-
{/* Customize sidebar title here */}
|
|
163
|
-
<h2 className="mb-4 text-lg font-semibold text-gray-700">
|
|
164
|
-
Drive Explorer
|
|
165
|
-
</h2>
|
|
166
|
-
|
|
167
|
-
{/* Folder tree navigation component */}
|
|
168
|
-
<FolderTree folders={allFolders} onSelectNode={setSelectedNode} />
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
|
|
172
|
-
{/* === RIGHT CONTENT AREA: Files/Folders or Document Editor === */}
|
|
19
|
+
<FolderTree />
|
|
173
20
|
<div className="flex-1 overflow-y-auto p-4">
|
|
174
21
|
{/* Conditional rendering: Document editor or folder contents */}
|
|
175
|
-
{
|
|
176
|
-
|
|
177
|
-
|
|
22
|
+
{showDocumentEditor ? (
|
|
23
|
+
/* Document editor view */
|
|
24
|
+
children
|
|
178
25
|
) : (
|
|
179
26
|
/* Folder contents view */
|
|
180
|
-
<
|
|
181
|
-
{/* === HEADER SECTION === */}
|
|
182
|
-
<div className="space-y-3">
|
|
183
|
-
<div className="flex items-center justify-between">
|
|
184
|
-
{/* Folder title */}
|
|
185
|
-
<h2 className="text-lg font-semibold">
|
|
186
|
-
{selectedFolder
|
|
187
|
-
? `Contents of "${selectedFolder.name}"`
|
|
188
|
-
: "Root Contents"}
|
|
189
|
-
</h2>
|
|
190
|
-
{/* Customize: Add more action buttons here */}
|
|
191
|
-
{isAllowedToCreateDocuments && (
|
|
192
|
-
<button
|
|
193
|
-
onClick={() => handleCreateFolder()}
|
|
194
|
-
className="rounded bg-blue-500 px-3 py-1 text-sm text-white hover:bg-blue-600"
|
|
195
|
-
>
|
|
196
|
-
+ New Folder
|
|
197
|
-
</button>
|
|
198
|
-
)}
|
|
199
|
-
</div>
|
|
200
|
-
|
|
201
|
-
{/* Navigation breadcrumbs */}
|
|
202
|
-
{breadcrumbs.length > 1 && (
|
|
203
|
-
<div className="border-b border-gray-200 pb-3">
|
|
204
|
-
<Breadcrumbs
|
|
205
|
-
breadcrumbs={breadcrumbs}
|
|
206
|
-
createEnabled={isAllowedToCreateDocuments}
|
|
207
|
-
onCreate={handleCreateFolder}
|
|
208
|
-
onBreadcrumbSelected={onBreadcrumbSelected}
|
|
209
|
-
/>
|
|
210
|
-
</div>
|
|
211
|
-
)}
|
|
212
|
-
</div>
|
|
213
|
-
|
|
214
|
-
{/* === FOLDERS SECTION === */}
|
|
215
|
-
{/* Customize grid layout by changing grid-cols-1 */}
|
|
216
|
-
{folderChildren.length > 0 && (
|
|
217
|
-
<div>
|
|
218
|
-
<h3 className="mb-2 text-sm font-medium text-gray-500">
|
|
219
|
-
📁 Folders
|
|
220
|
-
</h3>
|
|
221
|
-
<div className="grid grid-cols-1 gap-2">
|
|
222
|
-
{folderChildren.map((folderNode) => (
|
|
223
|
-
<FolderItem
|
|
224
|
-
key={folderNode.id}
|
|
225
|
-
folderNode={folderNode}
|
|
226
|
-
isAllowedToCreateDocuments={isAllowedToCreateDocuments}
|
|
227
|
-
sharingType={sharingType || "LOCAL"}
|
|
228
|
-
getSyncStatusSync={getSyncStatusSync}
|
|
229
|
-
setSelectedNode={setSelectedNode}
|
|
230
|
-
onAddFile={onAddFile}
|
|
231
|
-
onCopyNode={onCopyNode}
|
|
232
|
-
onMoveNode={onMoveNode}
|
|
233
|
-
onRenameNode={onRenameNode}
|
|
234
|
-
onDuplicateNode={onDuplicateNode}
|
|
235
|
-
onAddFolder={onAddFolder}
|
|
236
|
-
onAddAndSelectNewFolder={handleCreateFolder}
|
|
237
|
-
showDeleteNodeModal={showDeleteNodeModal}
|
|
238
|
-
/>
|
|
239
|
-
))}
|
|
240
|
-
</div>
|
|
241
|
-
</div>
|
|
242
|
-
)}
|
|
243
|
-
|
|
244
|
-
{/* === FILES/DOCUMENTS SECTION === */}
|
|
245
|
-
{/* Customize grid layout by changing grid-cols-1 */}
|
|
246
|
-
{fileChildren.length > 0 && (
|
|
247
|
-
<div>
|
|
248
|
-
<h3 className="mb-2 text-sm font-medium text-gray-500">
|
|
249
|
-
📄 Documents
|
|
250
|
-
</h3>
|
|
251
|
-
<div className="grid grid-cols-1 gap-2">
|
|
252
|
-
{fileChildren.map((fileNode) => (
|
|
253
|
-
<FileItem
|
|
254
|
-
key={fileNode.id}
|
|
255
|
-
fileNode={fileNode}
|
|
256
|
-
isAllowedToCreateDocuments={isAllowedToCreateDocuments}
|
|
257
|
-
sharingType={sharingType || "LOCAL"}
|
|
258
|
-
getSyncStatusSync={getSyncStatusSync}
|
|
259
|
-
setSelectedNode={setSelectedNode}
|
|
260
|
-
showDeleteNodeModal={showDeleteNodeModal}
|
|
261
|
-
onRenameNode={onRenameNode}
|
|
262
|
-
onDuplicateNode={onDuplicateNode}
|
|
263
|
-
onAddFile={onAddFile}
|
|
264
|
-
onCopyNode={onCopyNode}
|
|
265
|
-
onMoveNode={onMoveNode}
|
|
266
|
-
onAddFolder={onAddFolder}
|
|
267
|
-
onAddAndSelectNewFolder={handleCreateFolder}
|
|
268
|
-
/>
|
|
269
|
-
))}
|
|
270
|
-
</div>
|
|
271
|
-
</div>
|
|
272
|
-
)}
|
|
273
|
-
|
|
274
|
-
{/* === EMPTY STATE === */}
|
|
275
|
-
{/* Customize empty state message and styling here */}
|
|
276
|
-
{folderChildren.length === 0 && fileChildren.length === 0 && (
|
|
277
|
-
<div className="py-12 text-center text-gray-500">
|
|
278
|
-
<p className="text-lg">📁 This folder is empty</p>
|
|
279
|
-
<p className="mt-2 text-sm">
|
|
280
|
-
Create your first document or folder below
|
|
281
|
-
</p>
|
|
282
|
-
</div>
|
|
283
|
-
)}
|
|
284
|
-
|
|
285
|
-
{/* === DOCUMENT CREATION SECTION === */}
|
|
286
|
-
{/* Component for creating new documents */}
|
|
287
|
-
<CreateDocument />
|
|
288
|
-
</div>
|
|
27
|
+
<DriveContents />
|
|
289
28
|
)}
|
|
290
29
|
</div>
|
|
291
|
-
|
|
292
|
-
{/* === DOCUMENT CREATION MODAL === */}
|
|
293
|
-
{/* Modal for entering document name after selecting type */}
|
|
294
|
-
<CreateDocumentModal
|
|
295
|
-
onContinue={onCreateDocument}
|
|
296
|
-
onOpenChange={(open) => setOpenModal(open)}
|
|
297
|
-
open={openModal}
|
|
298
|
-
/>
|
|
299
30
|
</div>
|
|
300
31
|
);
|
|
301
32
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/EmptyState.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { useNodesInSelectedDriveOrFolder } from "@powerhousedao/reactor-browser";
|
|
6
|
+
|
|
7
|
+
/** Shows a message when the selected drive or folder is empty */
|
|
8
|
+
export function EmptyState() {
|
|
9
|
+
const nodes = useNodesInSelectedDriveOrFolder();
|
|
10
|
+
const hasNodes = nodes.length > 0;
|
|
11
|
+
if (hasNodes) return null;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className="py-12 text-center text-gray-500">
|
|
15
|
+
<p className="text-lg">This folder is empty</p>
|
|
16
|
+
<p className="mt-2 text-sm">Create your first document or folder below</p>
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/Files.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { FileItem } from "@powerhousedao/design-system/connect";
|
|
6
|
+
import {
|
|
7
|
+
useNodesInSelectedDriveOrFolder,
|
|
8
|
+
isFileNodeKind,
|
|
9
|
+
} from "@powerhousedao/reactor-browser";
|
|
10
|
+
|
|
11
|
+
/** Shows the files in the selected drive or folder */
|
|
12
|
+
export function Files() {
|
|
13
|
+
const nodes = useNodesInSelectedDriveOrFolder();
|
|
14
|
+
const fileNodes = nodes.filter((n) => isFileNodeKind(n));
|
|
15
|
+
const hasFiles = fileNodes.length > 0;
|
|
16
|
+
|
|
17
|
+
if (!hasFiles) return null;
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<div>
|
|
21
|
+
<h3 className="mb-2 text-sm font-semibold text-gray-600">Documents</h3>
|
|
22
|
+
<div className="flex flex-wrap gap-4">
|
|
23
|
+
{fileNodes.map((fileNode) => (
|
|
24
|
+
<FileItem key={fileNode.id} fileNode={fileNode} />
|
|
25
|
+
))}
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -2,102 +2,107 @@
|
|
|
2
2
|
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/FolderTree.tsx"
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
|
-
import
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
Sidebar,
|
|
7
|
+
SidebarProvider,
|
|
8
|
+
type SidebarNode,
|
|
9
|
+
} from "@powerhousedao/document-engineering";
|
|
10
|
+
import {
|
|
11
|
+
setSelectedNode,
|
|
12
|
+
useNodesInSelectedDrive,
|
|
13
|
+
useSelectedDrive,
|
|
14
|
+
useSelectedNode,
|
|
15
|
+
} from "@powerhousedao/reactor-browser";
|
|
16
|
+
import type { Node } from "document-drive";
|
|
17
|
+
import { useMemo } from "react";
|
|
7
18
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
19
|
+
function buildSidebarNodes(
|
|
20
|
+
nodes: Node[],
|
|
21
|
+
parentId: string | null | undefined,
|
|
22
|
+
): SidebarNode[] {
|
|
23
|
+
return nodes
|
|
24
|
+
.filter((n) => {
|
|
25
|
+
if (parentId == null) {
|
|
26
|
+
return n.parentFolder == null;
|
|
27
|
+
}
|
|
28
|
+
return n.parentFolder === parentId;
|
|
29
|
+
})
|
|
30
|
+
.map((node): SidebarNode => {
|
|
31
|
+
if (node.kind === "folder") {
|
|
32
|
+
return {
|
|
33
|
+
id: node.id,
|
|
34
|
+
title: node.name,
|
|
35
|
+
icon: "FolderClose" as const,
|
|
36
|
+
expandedIcon: "FolderOpen" as const,
|
|
37
|
+
children: buildSidebarNodes(nodes, node.id),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
id: node.id,
|
|
42
|
+
title: node.name,
|
|
43
|
+
icon: "File" as const,
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function transformNodesToSidebarNodes(
|
|
49
|
+
nodes: Node[],
|
|
50
|
+
driveName: string,
|
|
51
|
+
): SidebarNode[] {
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
id: "root",
|
|
55
|
+
title: driveName,
|
|
56
|
+
icon: "Drive" as const,
|
|
57
|
+
children: buildSidebarNodes(nodes, null),
|
|
58
|
+
},
|
|
59
|
+
];
|
|
12
60
|
}
|
|
13
61
|
|
|
14
62
|
/**
|
|
15
|
-
* Hierarchical folder tree navigation component.
|
|
16
|
-
* Displays folders in a tree structure with expand/collapse functionality.
|
|
63
|
+
* Hierarchical folder tree navigation component using Sidebar from document-engineering.
|
|
64
|
+
* Displays folders and files in a tree structure with expand/collapse functionality, search, and resize support.
|
|
17
65
|
*/
|
|
18
|
-
export function FolderTree({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
const
|
|
25
|
-
|
|
66
|
+
export function FolderTree() {
|
|
67
|
+
const [selectedDrive] = useSelectedDrive();
|
|
68
|
+
const nodes = useNodesInSelectedDrive();
|
|
69
|
+
const selectedNode = useSelectedNode();
|
|
70
|
+
const driveName = selectedDrive.header.name;
|
|
71
|
+
// Transform Node[] to hierarchical SidebarNode structure
|
|
72
|
+
const sidebarNodes = useMemo(
|
|
73
|
+
() => transformNodesToSidebarNodes(nodes || [], driveName),
|
|
74
|
+
[nodes, driveName],
|
|
26
75
|
);
|
|
27
76
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
next.add(folderId);
|
|
36
|
-
}
|
|
37
|
-
return next;
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
// Recursive function to render folder tree structure
|
|
42
|
-
const renderFolder = (folder: FolderNode, level = 0) => {
|
|
43
|
-
const hasChildren = folders.some((f) => f.parentFolder === folder.id);
|
|
44
|
-
const isExpanded = expandedFolders.has(folder.id);
|
|
45
|
-
const isSelected = selectedNodeId === folder.id;
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<div key={folder.id}>
|
|
49
|
-
<div
|
|
50
|
-
className={`flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${
|
|
51
|
-
isSelected ? "bg-blue-100 text-blue-800" : ""
|
|
52
|
-
}`}
|
|
53
|
-
style={{ paddingLeft: `${level * 16 + 8}px` }} // Customize indentation here
|
|
54
|
-
onClick={() => onSelectNode(folder.id)}
|
|
55
|
-
>
|
|
56
|
-
{/* Expand/collapse button for folders with children */}
|
|
57
|
-
{hasChildren && (
|
|
58
|
-
<button
|
|
59
|
-
className="mr-1 flex h-4 w-4 items-center justify-center"
|
|
60
|
-
onClick={(e) => {
|
|
61
|
-
e.stopPropagation();
|
|
62
|
-
toggleFolder(folder.id);
|
|
63
|
-
}}
|
|
64
|
-
>
|
|
65
|
-
{isExpanded ? "▼" : "▶"} {/* Customize expand icons here */}
|
|
66
|
-
</button>
|
|
67
|
-
)}
|
|
68
|
-
{!hasChildren && <div className="mr-1 w-5" />}
|
|
69
|
-
{/* Customize folder icon and styling here */}
|
|
70
|
-
<span>📁 {folder.name}</span>
|
|
71
|
-
</div>
|
|
72
|
-
{/* Recursively render child folders when expanded */}
|
|
73
|
-
{isExpanded && hasChildren && (
|
|
74
|
-
<div>
|
|
75
|
-
{folders
|
|
76
|
-
.filter((f) => f.parentFolder === folder.id)
|
|
77
|
-
.map((child) => renderFolder(child, level + 1))}
|
|
78
|
-
</div>
|
|
79
|
-
)}
|
|
80
|
-
</div>
|
|
81
|
-
);
|
|
77
|
+
const handleActiveNodeChange = (node: SidebarNode) => {
|
|
78
|
+
// If root node is selected, pass undefined to match existing behavior
|
|
79
|
+
if (node.id === "root") {
|
|
80
|
+
setSelectedNode(undefined);
|
|
81
|
+
} else {
|
|
82
|
+
setSelectedNode(node.id);
|
|
83
|
+
}
|
|
82
84
|
};
|
|
85
|
+
// Map selectedNodeId to activeNodeId (use "root" when undefined)
|
|
86
|
+
const activeNodeId =
|
|
87
|
+
!selectedNode || selectedNode.id === selectedDrive.header.id
|
|
88
|
+
? "root"
|
|
89
|
+
: selectedNode.id;
|
|
83
90
|
|
|
84
91
|
return (
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
.map((folder) => renderFolder(folder))}
|
|
101
|
-
</div>
|
|
92
|
+
<SidebarProvider nodes={sidebarNodes}>
|
|
93
|
+
<Sidebar
|
|
94
|
+
className="pt-1"
|
|
95
|
+
nodes={sidebarNodes}
|
|
96
|
+
activeNodeId={activeNodeId}
|
|
97
|
+
onActiveNodeChange={handleActiveNodeChange}
|
|
98
|
+
sidebarTitle="Drive Explorer"
|
|
99
|
+
showSearchBar={true}
|
|
100
|
+
resizable={true}
|
|
101
|
+
allowPinning={false}
|
|
102
|
+
showStatusFilter={false}
|
|
103
|
+
initialWidth={256}
|
|
104
|
+
defaultLevel={2}
|
|
105
|
+
/>
|
|
106
|
+
</SidebarProvider>
|
|
102
107
|
);
|
|
103
108
|
}
|
package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/Folders.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { FolderItem } from "@powerhousedao/design-system/connect";
|
|
6
|
+
import {
|
|
7
|
+
useNodesInSelectedDriveOrFolder,
|
|
8
|
+
isFolderNodeKind,
|
|
9
|
+
} from "@powerhousedao/reactor-browser";
|
|
10
|
+
|
|
11
|
+
/** Shows the folders in the selected drive or folder */
|
|
12
|
+
export function Folders() {
|
|
13
|
+
const nodes = useNodesInSelectedDriveOrFolder();
|
|
14
|
+
const folderNodes = nodes.filter((n) => isFolderNodeKind(n));
|
|
15
|
+
const hasFolders = folderNodes.length > 0;
|
|
16
|
+
if (!hasFolders) return null;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div>
|
|
20
|
+
<h3 className="mb-2 text-sm font-bold text-gray-600">Folders</h3>
|
|
21
|
+
<div className="flex flex-wrap gap-4">
|
|
22
|
+
{folderNodes.map((folderNode) => (
|
|
23
|
+
<FolderItem key={folderNode.id} folderNode={folderNode} />
|
|
24
|
+
))}
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/NavigationBreadcrumbs.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { Breadcrumbs } from "@powerhousedao/design-system/connect";
|
|
6
|
+
|
|
7
|
+
/** Shows the navigation breadcrumbs for the selected drive or folder */
|
|
8
|
+
export function NavigationBreadcrumbs() {
|
|
9
|
+
return (
|
|
10
|
+
<div className="border-b border-gray-200 pb-3 space-y-3">
|
|
11
|
+
<Breadcrumbs />
|
|
12
|
+
</div>
|
|
13
|
+
);
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/config.ts"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import type { PHDriveEditorConfig } from "@powerhousedao/reactor-browser";
|
|
6
|
+
|
|
7
|
+
/** Editor config for the <%= pascalCaseDriveEditorName %> */
|
|
8
|
+
export const editorConfig: PHDriveEditorConfig = {
|
|
9
|
+
isDragAndDropEnabled: <%- isDragAndDropEnabled %>,
|
|
10
|
+
allowedDocumentTypes: <%- allowedDocumentTypes %>
|
|
11
|
+
};
|
|
@@ -2,42 +2,17 @@
|
|
|
2
2
|
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
AnalyticsProvider,
|
|
8
|
-
DriveContextProvider,
|
|
9
|
-
useAppConfig,
|
|
10
|
-
type DriveEditorProps,
|
|
11
|
-
} from "@powerhousedao/reactor-browser";
|
|
5
|
+
import { useSetPHDriveEditorConfig } from "@powerhousedao/reactor-browser";
|
|
6
|
+
import type { EditorProps } from "document-model";
|
|
12
7
|
import { DriveExplorer } from "./components/DriveExplorer.js";
|
|
8
|
+
import { editorConfig } from "./config.js";
|
|
13
9
|
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const { context, document } = props;
|
|
10
|
+
/** Editor component for the <%= pascalCaseDriveEditorName %> drive editor */
|
|
11
|
+
export default function Editor(props: EditorProps) {
|
|
12
|
+
// set the config for this drive editor
|
|
13
|
+
// you can update these configs in `./config.ts`
|
|
14
|
+
useSetPHDriveEditorConfig(editorConfig);
|
|
20
15
|
return (
|
|
21
|
-
<
|
|
22
|
-
<DriveExplorer document={document} context={context} />
|
|
23
|
-
</div>
|
|
16
|
+
<DriveExplorer {...props} />
|
|
24
17
|
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Main editor entry point with required providers.
|
|
29
|
-
*/
|
|
30
|
-
export default function Editor(props: DriveEditorProps) {
|
|
31
|
-
const appConfig = useAppConfig();
|
|
32
|
-
const analyticsDatabaseName = appConfig?.analyticsDatabaseName;
|
|
33
|
-
return (
|
|
34
|
-
// Required context providers for drive functionality
|
|
35
|
-
<DriveContextProvider value={props.context}>
|
|
36
|
-
<WagmiContext>
|
|
37
|
-
<AnalyticsProvider databaseName={analyticsDatabaseName}>
|
|
38
|
-
<BaseEditor {...props} />
|
|
39
|
-
</AnalyticsProvider>
|
|
40
|
-
</WagmiContext>
|
|
41
|
-
</DriveContextProvider>
|
|
42
|
-
);
|
|
43
|
-
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
force: true
|
|
3
|
+
to: "<%= rootDir %>/editors.ts"
|
|
4
|
+
---
|
|
5
|
+
import type { EditorModule } from "document-model";
|
|
6
|
+
<% moduleExports.forEach(me => { _%>
|
|
7
|
+
import { <%= me.pascalCaseName %> } from "./<%= me.paramCaseName %>/module.js";
|
|
8
|
+
<% }); _%>
|
|
9
|
+
|
|
10
|
+
export const editors: EditorModule[] = [
|
|
11
|
+
<% moduleExports.forEach(me => { _%>
|
|
12
|
+
<%= me.pascalCaseName %>,
|
|
13
|
+
<% }); _%>
|
|
14
|
+
]
|