@powerhousedao/vetra-builder-package 0.0.16 → 0.0.18
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/dist/document-models/builder-account/gen/document-model.js +1 -1
- package/dist/document-models/builder-account/gen/profile/actions.d.ts +5 -5
- package/dist/document-models/builder-account/gen/profile/creators.d.ts +3 -3
- package/dist/document-models/builder-account/gen/profile/creators.js +1 -1
- package/dist/document-models/builder-account/gen/profile/object.d.ts +2 -2
- package/dist/document-models/builder-account/gen/profile/object.js +3 -3
- package/dist/document-models/builder-account/gen/profile/operations.d.ts +2 -2
- package/dist/document-models/builder-account/gen/reducer.js +3 -3
- package/dist/document-models/builder-account/gen/schema/types.d.ts +1 -1
- package/dist/document-models/builder-account/gen/schema/zod.js +1 -1
- package/dist/document-models/builder-account/index.d.ts +1 -1
- package/dist/document-models/builder-account/src/reducers/profile.js +4 -0
- package/dist/document-models/builder-team/gen/actions.d.ts +9 -0
- package/dist/document-models/builder-team/gen/actions.js +4 -0
- package/dist/document-models/builder-team/gen/creators.d.ts +4 -0
- package/dist/document-models/builder-team/gen/creators.js +4 -0
- package/dist/document-models/builder-team/gen/document-model.d.ts +2 -0
- package/dist/document-models/builder-team/gen/document-model.js +212 -0
- package/dist/document-models/builder-team/gen/index.d.ts +7 -0
- package/dist/document-models/builder-team/gen/index.js +6 -0
- package/dist/document-models/builder-team/gen/member/actions.d.ts +15 -0
- package/dist/document-models/builder-team/gen/member/actions.js +1 -0
- package/dist/document-models/builder-team/gen/member/creators.d.ts +5 -0
- package/dist/document-models/builder-team/gen/member/creators.js +5 -0
- package/dist/document-models/builder-team/gen/member/error.d.ts +1 -0
- package/dist/document-models/builder-team/gen/member/error.js +1 -0
- package/dist/document-models/builder-team/gen/member/object.d.ts +8 -0
- package/dist/document-models/builder-team/gen/member/object.js +13 -0
- package/dist/document-models/builder-team/gen/member/operations.d.ts +8 -0
- package/dist/document-models/builder-team/gen/member/operations.js +1 -0
- package/dist/document-models/builder-team/gen/object.d.ts +20 -0
- package/dist/document-models/builder-team/gen/object.js +36 -0
- package/dist/document-models/builder-team/gen/packages/actions.d.ts +15 -0
- package/dist/document-models/builder-team/gen/packages/actions.js +1 -0
- package/dist/document-models/builder-team/gen/packages/creators.d.ts +5 -0
- package/dist/document-models/builder-team/gen/packages/creators.js +5 -0
- package/dist/document-models/builder-team/gen/packages/error.d.ts +1 -0
- package/dist/document-models/builder-team/gen/packages/error.js +1 -0
- package/dist/document-models/builder-team/gen/packages/object.d.ts +8 -0
- package/dist/document-models/builder-team/gen/packages/object.js +13 -0
- package/dist/document-models/builder-team/gen/packages/operations.d.ts +8 -0
- package/dist/document-models/builder-team/gen/packages/operations.js +1 -0
- package/dist/document-models/builder-team/gen/ph-factories.d.ts +26 -0
- package/dist/document-models/builder-team/gen/ph-factories.js +62 -0
- package/dist/document-models/builder-team/gen/profile/actions.d.ts +23 -0
- package/dist/document-models/builder-team/gen/profile/actions.js +1 -0
- package/dist/document-models/builder-team/gen/profile/creators.d.ts +7 -0
- package/dist/document-models/builder-team/gen/profile/creators.js +7 -0
- package/dist/document-models/builder-team/gen/profile/error.d.ts +1 -0
- package/dist/document-models/builder-team/gen/profile/error.js +1 -0
- package/dist/document-models/builder-team/gen/profile/object.d.ts +10 -0
- package/dist/document-models/builder-team/gen/profile/object.js +19 -0
- package/dist/document-models/builder-team/gen/profile/operations.d.ts +10 -0
- package/dist/document-models/builder-team/gen/profile/operations.js +1 -0
- package/dist/document-models/builder-team/gen/reducer.d.ts +4 -0
- package/dist/document-models/builder-team/gen/reducer.js +75 -0
- package/dist/document-models/builder-team/gen/schema/index.d.ts +2 -0
- package/dist/document-models/builder-team/gen/schema/index.js +2 -0
- package/dist/document-models/builder-team/gen/schema/types.d.ts +247 -0
- package/dist/document-models/builder-team/gen/schema/types.js +1 -0
- package/dist/document-models/builder-team/gen/schema/zod.d.ts +29 -0
- package/dist/document-models/builder-team/gen/schema/zod.js +148 -0
- package/dist/document-models/builder-team/gen/spaces/actions.d.ts +15 -0
- package/dist/document-models/builder-team/gen/spaces/actions.js +1 -0
- package/dist/document-models/builder-team/gen/spaces/creators.d.ts +5 -0
- package/dist/document-models/builder-team/gen/spaces/creators.js +5 -0
- package/dist/document-models/builder-team/gen/spaces/error.d.ts +1 -0
- package/dist/document-models/builder-team/gen/spaces/error.js +1 -0
- package/dist/document-models/builder-team/gen/spaces/object.d.ts +8 -0
- package/dist/document-models/builder-team/gen/spaces/object.js +13 -0
- package/dist/document-models/builder-team/gen/spaces/operations.d.ts +8 -0
- package/dist/document-models/builder-team/gen/spaces/operations.js +1 -0
- package/dist/document-models/builder-team/gen/types.d.ts +9 -0
- package/dist/document-models/builder-team/gen/types.js +1 -0
- package/dist/document-models/builder-team/gen/utils.d.ts +21 -0
- package/dist/document-models/builder-team/gen/utils.js +54 -0
- package/dist/document-models/builder-team/index.d.ts +37 -0
- package/dist/document-models/builder-team/index.js +21 -0
- package/dist/document-models/builder-team/src/reducers/member.d.ts +2 -0
- package/dist/document-models/builder-team/src/reducers/member.js +30 -0
- package/dist/document-models/builder-team/src/reducers/packages.d.ts +2 -0
- package/dist/document-models/builder-team/src/reducers/packages.js +40 -0
- package/dist/document-models/builder-team/src/reducers/profile.d.ts +2 -0
- package/dist/document-models/builder-team/src/reducers/profile.js +26 -0
- package/dist/document-models/builder-team/src/reducers/spaces.d.ts +2 -0
- package/dist/document-models/builder-team/src/reducers/spaces.js +34 -0
- package/dist/document-models/builder-team/src/tests/document-model.test.d.ts +5 -0
- package/dist/document-models/builder-team/src/tests/document-model.test.js +18 -0
- package/dist/document-models/builder-team/src/tests/member.test.d.ts +5 -0
- package/dist/document-models/builder-team/src/tests/member.test.js +40 -0
- package/dist/document-models/builder-team/src/tests/packages.test.d.ts +5 -0
- package/dist/document-models/builder-team/src/tests/packages.test.js +40 -0
- package/dist/document-models/builder-team/src/tests/profile.test.d.ts +5 -0
- package/dist/document-models/builder-team/src/tests/profile.test.js +56 -0
- package/dist/document-models/builder-team/src/tests/spaces.test.d.ts +5 -0
- package/dist/document-models/builder-team/src/tests/spaces.test.js +40 -0
- package/dist/document-models/builder-team/src/utils.d.ts +1 -0
- package/dist/document-models/builder-team/src/utils.js +1 -0
- package/dist/document-models/index.d.ts +1 -2
- package/dist/document-models/index.js +1 -2
- package/dist/editors/builder-team-editor/components/Header.d.ts +8 -0
- package/dist/editors/builder-team-editor/components/Header.js +5 -0
- package/dist/editors/builder-team-editor/components/MembersSection.d.ts +14 -0
- package/dist/editors/builder-team-editor/components/MembersSection.js +152 -0
- package/dist/editors/builder-team-editor/components/PackageForm.d.ts +8 -0
- package/dist/editors/builder-team-editor/components/PackageForm.js +92 -0
- package/dist/editors/builder-team-editor/components/PackageItem.d.ts +11 -0
- package/dist/editors/builder-team-editor/components/PackageItem.js +99 -0
- package/dist/editors/builder-team-editor/components/ProfileSection.d.ts +17 -0
- package/dist/editors/builder-team-editor/components/ProfileSection.js +5 -0
- package/dist/editors/builder-team-editor/components/QuickStats.d.ts +7 -0
- package/dist/editors/builder-team-editor/components/QuickStats.js +5 -0
- package/dist/editors/builder-team-editor/components/SpaceForm.d.ts +9 -0
- package/dist/editors/builder-team-editor/components/SpaceForm.js +11 -0
- package/dist/editors/builder-team-editor/components/SpaceItem.d.ts +21 -0
- package/dist/editors/builder-team-editor/components/SpaceItem.js +12 -0
- package/dist/editors/builder-team-editor/components/SpacesSection.d.ts +22 -0
- package/dist/editors/builder-team-editor/components/SpacesSection.js +14 -0
- package/dist/editors/builder-team-editor/config.d.ts +6 -0
- package/dist/editors/builder-team-editor/config.js +11 -0
- package/dist/editors/builder-team-editor/editor.d.ts +3 -0
- package/dist/editors/builder-team-editor/editor.js +73 -0
- package/dist/editors/builder-team-editor/hooks/useMemberHandlers.d.ts +12 -0
- package/dist/editors/builder-team-editor/hooks/useMemberHandlers.js +27 -0
- package/dist/editors/builder-team-editor/hooks/usePackageHandlers.d.ts +11 -0
- package/dist/editors/builder-team-editor/hooks/usePackageHandlers.js +49 -0
- package/dist/editors/builder-team-editor/hooks/useProfileHandlers.d.ts +14 -0
- package/dist/editors/builder-team-editor/hooks/useProfileHandlers.js +38 -0
- package/dist/editors/builder-team-editor/hooks/useSpaceHandlers.d.ts +15 -0
- package/dist/editors/builder-team-editor/hooks/useSpaceHandlers.js +82 -0
- package/dist/editors/builder-team-editor/index.d.ts +2 -0
- package/dist/editors/builder-team-editor/index.js +11 -0
- package/dist/editors/hooks/useBuilderTeamDocument.d.ts +3 -0
- package/dist/editors/hooks/useBuilderTeamDocument.js +8 -0
- package/dist/editors/index.d.ts +1 -2
- package/dist/editors/index.js +1 -2
- package/dist/index.d.ts +1 -1
- package/dist/powerhouse.manifest.json +21 -6
- package/dist/processors/factory.d.ts +0 -4
- package/dist/processors/factory.js +6 -4
- package/dist/processors/index.d.ts +2 -4
- package/dist/processors/index.js +2 -4
- package/dist/processors/old_vetra-builder-relational-db-processor/factory.d.ts +3 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/factory.js +22 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/index.d.ts +9 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/index.js +32 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/migrations.d.ts +3 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/migrations.js +14 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/schema.d.ts +7 -0
- package/dist/processors/old_vetra-builder-relational-db-processor/schema.js +1 -0
- package/dist/processors/vetra-builder-read-model/builder-account-handlers.d.ts +27 -0
- package/dist/processors/vetra-builder-read-model/builder-account-handlers.js +249 -0
- package/dist/processors/vetra-builder-read-model/database-helpers.d.ts +39 -0
- package/dist/processors/vetra-builder-read-model/database-helpers.js +144 -0
- package/dist/processors/vetra-builder-read-model/factory.d.ts +3 -0
- package/dist/processors/vetra-builder-read-model/factory.js +25 -0
- package/dist/processors/vetra-builder-read-model/index.d.ts +29 -0
- package/dist/processors/vetra-builder-read-model/index.js +370 -0
- package/dist/processors/vetra-builder-read-model/migrations.d.ts +3 -0
- package/dist/processors/vetra-builder-read-model/migrations.js +152 -0
- package/dist/processors/vetra-builder-read-model/package-handlers.d.ts +20 -0
- package/dist/processors/vetra-builder-read-model/package-handlers.js +116 -0
- package/dist/processors/vetra-builder-read-model/schema.d.ts +66 -0
- package/dist/processors/vetra-builder-read-model/schema.js +1 -0
- package/dist/processors/vetra-builder-read-model/types.d.ts +32 -0
- package/dist/processors/vetra-builder-read-model/types.js +1 -0
- package/dist/processors/vetra-builder-relational-db-processor/builder-team-handlers.d.ts +22 -0
- package/dist/processors/vetra-builder-relational-db-processor/builder-team-handlers.js +261 -0
- package/dist/processors/vetra-builder-relational-db-processor/database-helpers.d.ts +39 -0
- package/dist/processors/vetra-builder-relational-db-processor/database-helpers.js +144 -0
- package/dist/processors/vetra-builder-relational-db-processor/factory.d.ts +3 -0
- package/dist/processors/vetra-builder-relational-db-processor/factory.js +23 -0
- package/dist/processors/vetra-builder-relational-db-processor/index.d.ts +13 -0
- package/dist/processors/vetra-builder-relational-db-processor/index.js +53 -0
- package/dist/processors/vetra-builder-relational-db-processor/migrations.d.ts +3 -0
- package/dist/processors/vetra-builder-relational-db-processor/migrations.js +155 -0
- package/dist/processors/vetra-builder-relational-db-processor/schema.d.ts +66 -0
- package/dist/processors/vetra-builder-relational-db-processor/schema.js +1 -0
- package/dist/processors/vetra-builder-relational-db-processor/types.d.ts +32 -0
- package/dist/processors/vetra-builder-relational-db-processor/types.js +1 -0
- package/dist/style.css +28 -200
- package/dist/subgraphs/builder-account/resolvers.js +3 -3
- package/dist/subgraphs/builder-account/schema.js +4 -4
- package/dist/subgraphs/builder-team/index.d.ts +10 -0
- package/dist/subgraphs/builder-team/index.js +11 -0
- package/dist/subgraphs/builder-team/resolvers.d.ts +2 -0
- package/dist/subgraphs/builder-team/resolvers.js +240 -0
- package/dist/subgraphs/builder-team/schema.d.ts +2 -0
- package/dist/subgraphs/builder-team/schema.js +228 -0
- package/dist/subgraphs/index.d.ts +2 -3
- package/dist/subgraphs/index.js +3 -4
- package/dist/subgraphs/vetra-builder-read-model/index.d.ts +1 -1
- package/dist/subgraphs/vetra-builder-read-model/index.js +1 -1
- package/dist/subgraphs/vetra-builder-read-model/resolvers.js +7 -7
- package/dist/subgraphs/vetra-builders/index.d.ts +10 -0
- package/dist/subgraphs/vetra-builders/index.js +11 -0
- package/dist/subgraphs/vetra-builders/resolvers.d.ts +2 -0
- package/dist/subgraphs/vetra-builders/resolvers.js +144 -0
- package/dist/subgraphs/vetra-builders/schema.d.ts +2 -0
- package/dist/subgraphs/vetra-builders/schema.js +79 -0
- package/dist/subgraphs/vetra-builders-bkp/index.d.ts +10 -0
- package/dist/subgraphs/vetra-builders-bkp/index.js +11 -0
- package/dist/subgraphs/vetra-builders-bkp/resolvers.d.ts +2 -0
- package/dist/subgraphs/vetra-builders-bkp/resolvers.js +10 -0
- package/dist/subgraphs/vetra-builders-bkp/schema.d.ts +2 -0
- package/dist/subgraphs/vetra-builders-bkp/schema.js +9 -0
- package/dist/utils/nano-id.d.ts +1 -0
- package/dist/utils/nano-id.js +4 -0
- package/package.json +4 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type VetraBuilderSpace, type VetraPackageInfo } from "document-models/builder-team/index.js";
|
|
2
|
+
interface SpaceItemProps {
|
|
3
|
+
space: VetraBuilderSpace;
|
|
4
|
+
isEditing: boolean;
|
|
5
|
+
editingSpaceTitle: string;
|
|
6
|
+
editingSpaceDescription: string;
|
|
7
|
+
editingPackageId: string | null;
|
|
8
|
+
onEdit: () => void;
|
|
9
|
+
onDelete: () => void;
|
|
10
|
+
onSaveEdit: () => boolean;
|
|
11
|
+
onCancelEdit: () => void;
|
|
12
|
+
onSetEditingTitle: (title: string) => void;
|
|
13
|
+
onSetEditingDescription: (description: string) => void;
|
|
14
|
+
onAddPackage: (spaceId: string) => void;
|
|
15
|
+
onEditPackage: (packageId: string) => void;
|
|
16
|
+
onDeletePackage: (packageId: string) => void;
|
|
17
|
+
onSavePackage: (packageInfo: VetraPackageInfo) => void;
|
|
18
|
+
onCancelPackageEdit: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare function SpaceItem({ space, isEditing, editingSpaceTitle, editingSpaceDescription, editingPackageId, onEdit, onDelete, onSaveEdit, onCancelEdit, onSetEditingTitle, onSetEditingDescription, onAddPackage, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }: SpaceItemProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Form, StringField } from "@powerhousedao/document-engineering";
|
|
3
|
+
import { PackageItem } from "./PackageItem.js";
|
|
4
|
+
function EditSpaceForm({ title, description, onTitleChange, onDescriptionChange, onSave, onCancel, }) {
|
|
5
|
+
return (_jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-4", children: [_jsx(StringField, { name: "editingSpaceTitle", label: "Space Title", value: title, onChange: (e) => onTitleChange(e.target.value), placeholder: "Enter space title" }), _jsx(StringField, { name: "editingSpaceDescription", label: "Description (optional)", value: description, onChange: (e) => onDescriptionChange(e.target.value), placeholder: "Enter space description" }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: onCancel, children: "Cancel" }), _jsx(Button, { onClick: onSave, disabled: !title.trim(), children: "Save Changes" })] })] }) }));
|
|
6
|
+
}
|
|
7
|
+
export function SpaceItem({ space, isEditing, editingSpaceTitle, editingSpaceDescription, editingPackageId, onEdit, onDelete, onSaveEdit, onCancelEdit, onSetEditingTitle, onSetEditingDescription, onAddPackage, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }) {
|
|
8
|
+
if (isEditing) {
|
|
9
|
+
return (_jsx("div", { className: "border border-gray-200 rounded-lg p-4", children: _jsx(EditSpaceForm, { title: editingSpaceTitle, description: editingSpaceDescription, onTitleChange: onSetEditingTitle, onDescriptionChange: onSetEditingDescription, onSave: onSaveEdit, onCancel: onCancelEdit }) }));
|
|
10
|
+
}
|
|
11
|
+
return (_jsxs("div", { className: "border border-gray-200 rounded-lg p-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-md font-medium text-gray-900", children: space.title }), space.description && (_jsx("p", { className: "text-sm text-gray-500 mt-1", children: space.description })), _jsxs("p", { className: "text-xs text-gray-400 mt-1", children: [space.packages.length, " package", space.packages.length !== 1 ? "s" : ""] })] }), _jsxs("div", { className: "flex space-x-2", children: [_jsx(Button, { color: "light", size: "sm", onClick: onEdit, children: "Edit" }), _jsx(Button, { color: "light", size: "sm", onClick: () => onAddPackage(space.id), children: "Add Package" }), _jsx(Button, { color: "red", size: "sm", onClick: onDelete, children: "Delete" })] })] }), space.packages.length > 0 && (_jsx("div", { className: "mt-4 space-y-2", children: space.packages.map((pkg) => (_jsx(PackageItem, { pkg: pkg, isEditing: editingPackageId === pkg.id, onEdit: () => onEditPackage(pkg.id), onDelete: () => onDeletePackage(pkg.id), onSave: (selectedPackage) => onSavePackage(selectedPackage), onCancel: onCancelPackageEdit }, pkg.id))) }))] }));
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { BuilderTeamDocument, VetraPackageInfo } from "../../../document-models/builder-team/index.js";
|
|
2
|
+
interface SpacesSectionProps {
|
|
3
|
+
spaces: BuilderTeamDocument["state"]["global"]["spaces"];
|
|
4
|
+
editingSpaceId: string | null;
|
|
5
|
+
editingSpaceTitle: string;
|
|
6
|
+
editingSpaceDescription: string;
|
|
7
|
+
editingPackageId: string | null;
|
|
8
|
+
onAddSpace: (title: string, description: string) => boolean;
|
|
9
|
+
onDeleteSpace: (spaceId: string) => void;
|
|
10
|
+
onStartEditingSpace: (spaceId: string) => void;
|
|
11
|
+
onSaveSpaceEdit: () => boolean;
|
|
12
|
+
onCancelSpaceEdit: () => void;
|
|
13
|
+
onSetEditingSpaceTitle: (title: string) => void;
|
|
14
|
+
onSetEditingSpaceDescription: (description: string) => void;
|
|
15
|
+
onAddPackageToSpace: (spaceId: string) => void;
|
|
16
|
+
onEditPackage: (packageId: string) => void;
|
|
17
|
+
onDeletePackage: (packageId: string) => void;
|
|
18
|
+
onSavePackage: (packageInfo: VetraPackageInfo) => void;
|
|
19
|
+
onCancelPackageEdit: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function SpacesSection({ spaces, editingSpaceId, editingSpaceTitle, editingSpaceDescription, editingPackageId, onAddSpace, onDeleteSpace, onStartEditingSpace, onSaveSpaceEdit, onCancelSpaceEdit, onSetEditingSpaceTitle, onSetEditingSpaceDescription, onAddPackageToSpace, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }: SpacesSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "@powerhousedao/document-engineering";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { SpaceForm } from "./SpaceForm.js";
|
|
5
|
+
import { SpaceItem } from "./SpaceItem.js";
|
|
6
|
+
export function SpacesSection({ spaces, editingSpaceId, editingSpaceTitle, editingSpaceDescription, editingPackageId, onAddSpace, onDeleteSpace, onStartEditingSpace, onSaveSpaceEdit, onCancelSpaceEdit, onSetEditingSpaceTitle, onSetEditingSpaceDescription, onAddPackageToSpace, onEditPackage, onDeletePackage, onSavePackage, onCancelPackageEdit, }) {
|
|
7
|
+
const [isAddingSpace, setIsAddingSpace] = useState(false);
|
|
8
|
+
const handleAddSpace = (title, description) => {
|
|
9
|
+
if (onAddSpace(title, description)) {
|
|
10
|
+
setIsAddingSpace(false);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "Spaces" }), _jsx("p", { className: "text-sm text-gray-500", children: "Organize your packages into spaces" })] }), _jsx(Button, { onClick: () => setIsAddingSpace(true), children: "Add Space" })] }) }), _jsxs("div", { className: "p-6", children: [isAddingSpace && (_jsx(SpaceForm, { onSave: handleAddSpace, onCancel: () => setIsAddingSpace(false) })), _jsx("div", { className: "space-y-4", children: spaces.length > 0 ? (spaces.map((space) => (_jsx(SpaceItem, { space: space, isEditing: editingSpaceId === space.id, editingSpaceTitle: editingSpaceTitle, editingSpaceDescription: editingSpaceDescription, editingPackageId: editingPackageId, onEdit: () => onStartEditingSpace(space.id), onDelete: () => onDeleteSpace(space.id), onSaveEdit: onSaveSpaceEdit, onCancelEdit: onCancelSpaceEdit, onSetEditingTitle: onSetEditingSpaceTitle, onSetEditingDescription: onSetEditingSpaceDescription, onAddPackage: onAddPackageToSpace, onEditPackage: onEditPackage, onDeletePackage: onDeletePackage, onSavePackage: onSavePackage, onCancelPackageEdit: onCancelPackageEdit }, space.id)))) : (_jsx("div", { className: "text-center py-8 text-gray-500", children: _jsx("p", { children: "No spaces created yet. Create a space to organize your packages." }) })) })] })] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const getEnvVar = (key, defaultValue) => {
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
3
|
+
const value = process.env[key];
|
|
4
|
+
return typeof value === "string" ? value : defaultValue;
|
|
5
|
+
};
|
|
6
|
+
export const config = {
|
|
7
|
+
renownGraphqlEndpoint: getEnvVar("VETRA_RENOWN_GRAPHQL_ENDPOINT", "https://switchboard.renown-staging.vetra.io/graphql"),
|
|
8
|
+
vetraGraphqlEndpoint: getEnvVar("VETRA_VETRA_GRAPHQL_ENDPOINT", "https://switchboard.staging.vetra.io/graphql"),
|
|
9
|
+
renownProfileBasePath: getEnvVar("VETRA_RENOWN_PROFILE_BASE_PATH", "phd://renown-staging.vetra.to/"),
|
|
10
|
+
vetraPackageBasePath: getEnvVar("VETRA_VETRA_PACKAGE_BASE_PATH", "phd://staging.vetra.to/"),
|
|
11
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useSelectedDocument } from "@powerhousedao/reactor-browser";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { actions } from "../../document-models/builder-team/index.js";
|
|
5
|
+
import { Header } from "./components/Header.js";
|
|
6
|
+
import { ProfileSection } from "./components/ProfileSection.js";
|
|
7
|
+
import { SpacesSection } from "./components/SpacesSection.js";
|
|
8
|
+
import { PackageForm } from "./components/PackageForm.js";
|
|
9
|
+
import { MembersSection } from "./components/MembersSection.js";
|
|
10
|
+
import { QuickStats } from "./components/QuickStats.js";
|
|
11
|
+
import { useProfileHandlers } from "./hooks/useProfileHandlers.js";
|
|
12
|
+
import { useSpaceHandlers } from "./hooks/useSpaceHandlers.js";
|
|
13
|
+
import { usePackageHandlers } from "./hooks/usePackageHandlers.js";
|
|
14
|
+
import { useMemberHandlers } from "./hooks/useMemberHandlers.js";
|
|
15
|
+
import { generateNanoId } from "../../utils/nano-id.js";
|
|
16
|
+
export function Editor(props) {
|
|
17
|
+
const [document, dispatch] = useSelectedDocument();
|
|
18
|
+
const typedDocument = document;
|
|
19
|
+
// Local UI state
|
|
20
|
+
const [isEditingProfile, setIsEditingProfile] = useState(false);
|
|
21
|
+
const [isAddingPackage, setIsAddingPackage] = useState(false);
|
|
22
|
+
const [selectedSpaceForPackage, setSelectedSpaceForPackage] = useState("");
|
|
23
|
+
const { state: { global }, } = typedDocument;
|
|
24
|
+
const { profile, spaces, members } = global;
|
|
25
|
+
// Custom hooks for handlers
|
|
26
|
+
const profileHandlers = useProfileHandlers(profile, dispatch);
|
|
27
|
+
const spaceHandlers = useSpaceHandlers(spaces, dispatch);
|
|
28
|
+
const packageHandlers = usePackageHandlers(spaces, dispatch);
|
|
29
|
+
const memberHandlers = useMemberHandlers(dispatch);
|
|
30
|
+
// Wrapper handlers for components
|
|
31
|
+
const handleAddPackageToSpace = (spaceId) => {
|
|
32
|
+
setSelectedSpaceForPackage(spaceId);
|
|
33
|
+
setIsAddingPackage(true);
|
|
34
|
+
};
|
|
35
|
+
const handleSavePackage = (spaceId, packageInfo) => {
|
|
36
|
+
if (!packageInfo) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
// Create the package first with a generated ID
|
|
40
|
+
const id = generateNanoId();
|
|
41
|
+
dispatch(actions.addPackage({ id, spaceId }));
|
|
42
|
+
// Update the package with full info from the PHID selection
|
|
43
|
+
dispatch(actions.updatePackageInfo({
|
|
44
|
+
id,
|
|
45
|
+
phid: packageInfo.phid,
|
|
46
|
+
title: packageInfo.title,
|
|
47
|
+
description: packageInfo.description,
|
|
48
|
+
github: packageInfo.github,
|
|
49
|
+
npm: packageInfo.npm,
|
|
50
|
+
vetraDriveUrl: packageInfo.vetraDriveUrl,
|
|
51
|
+
}));
|
|
52
|
+
setIsAddingPackage(false);
|
|
53
|
+
setSelectedSpaceForPackage("");
|
|
54
|
+
return true;
|
|
55
|
+
};
|
|
56
|
+
const handleCancelAddPackage = () => {
|
|
57
|
+
setIsAddingPackage(false);
|
|
58
|
+
setSelectedSpaceForPackage("");
|
|
59
|
+
};
|
|
60
|
+
return (_jsxs("div", { className: "html-defaults-container min-h-screen bg-gray-50", children: [_jsx(Header, { profile: profile, isEditingProfile: isEditingProfile, onToggleEdit: () => setIsEditingProfile(!isEditingProfile) }), _jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-3 gap-8", children: [_jsxs("div", { className: "lg:col-span-2 space-y-8", children: [_jsx(ProfileSection, { profile: profile, isEditing: isEditingProfile, onSetProfileName: profileHandlers.handleSetProfileName, onSetSlug: profileHandlers.handleSetSlug, onSetDescription: profileHandlers.handleSetProfileDescription, onSetLogo: profileHandlers.handleSetLogo, onUpdateSocials: profileHandlers.handleUpdateSocials, onClose: () => setIsEditingProfile(false) }), _jsx(SpacesSection, { spaces: spaces, editingSpaceId: spaceHandlers.editingSpaceId, editingSpaceTitle: spaceHandlers.editingSpaceTitle, editingSpaceDescription: spaceHandlers.editingSpaceDescription, editingPackageId: packageHandlers.editingPackageId, onAddSpace: spaceHandlers.handleAddSpace, onDeleteSpace: spaceHandlers.handleDeleteSpace, onStartEditingSpace: spaceHandlers.handleStartEditingSpace, onSaveSpaceEdit: spaceHandlers.handleSaveSpaceEdit, onCancelSpaceEdit: spaceHandlers.handleCancelSpaceEdit, onSetEditingSpaceTitle: spaceHandlers.setEditingSpaceTitle, onSetEditingSpaceDescription: spaceHandlers.setEditingSpaceDescription, onAddPackageToSpace: handleAddPackageToSpace, onEditPackage: packageHandlers.handleStartEditingPackage, onDeletePackage: packageHandlers.handleDeletePackage, onSavePackage: (packageInfo) => {
|
|
61
|
+
// Update the package with info
|
|
62
|
+
dispatch(actions.updatePackageInfo({
|
|
63
|
+
id: packageInfo.id,
|
|
64
|
+
phid: packageInfo.phid,
|
|
65
|
+
title: packageInfo.title,
|
|
66
|
+
description: packageInfo.description,
|
|
67
|
+
github: packageInfo.github,
|
|
68
|
+
npm: packageInfo.npm,
|
|
69
|
+
vetraDriveUrl: packageInfo.vetraDriveUrl,
|
|
70
|
+
}));
|
|
71
|
+
packageHandlers.handleCancelPackageEdit();
|
|
72
|
+
}, onCancelPackageEdit: packageHandlers.handleCancelPackageEdit }), isAddingPackage && (_jsx(PackageForm, { spaceId: selectedSpaceForPackage, onSave: handleSavePackage, onCancel: handleCancelAddPackage }))] }), _jsxs("div", { className: "space-y-6", children: [_jsx(MembersSection, { members: members, onAddMember: memberHandlers.handleAddMember, onRemoveMember: memberHandlers.handleRemoveMember }), _jsx(QuickStats, { spaces: spaces, members: members })] })] }) })] }));
|
|
73
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
|
|
2
|
+
import { type Action } from "document-model";
|
|
3
|
+
export interface MemberProfileData {
|
|
4
|
+
phid: string;
|
|
5
|
+
ethAddress: string;
|
|
6
|
+
name: string;
|
|
7
|
+
profileImage?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function useMemberHandlers(dispatch: DocumentDispatch<Action>): {
|
|
10
|
+
handleAddMember: (profileData: MemberProfileData) => boolean;
|
|
11
|
+
handleRemoveMember: (id: string) => void;
|
|
12
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { actions } from "../../../document-models/builder-team/index.js";
|
|
3
|
+
import { generateNanoId } from "../../../utils/nano-id.js";
|
|
4
|
+
export function useMemberHandlers(dispatch) {
|
|
5
|
+
const handleAddMember = useCallback((profileData) => {
|
|
6
|
+
if (profileData.ethAddress.trim()) {
|
|
7
|
+
const id = generateNanoId();
|
|
8
|
+
dispatch(actions.addMember({ id }));
|
|
9
|
+
dispatch(actions.updateMemberInfo({
|
|
10
|
+
id,
|
|
11
|
+
phid: profileData.phid,
|
|
12
|
+
ethAddress: profileData.ethAddress.trim(),
|
|
13
|
+
name: profileData.name,
|
|
14
|
+
profileImage: profileData.profileImage,
|
|
15
|
+
}));
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}, [dispatch]);
|
|
20
|
+
const handleRemoveMember = useCallback((id) => {
|
|
21
|
+
dispatch(actions.removeMember({ id }));
|
|
22
|
+
}, [dispatch]);
|
|
23
|
+
return {
|
|
24
|
+
handleAddMember,
|
|
25
|
+
handleRemoveMember,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type BuilderTeamDocument } from "../../../document-models/builder-team/index.js";
|
|
2
|
+
import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
|
|
3
|
+
import { type Action } from "document-model";
|
|
4
|
+
export declare function usePackageHandlers(spaces: BuilderTeamDocument["state"]["global"]["spaces"], dispatch: DocumentDispatch<Action>): {
|
|
5
|
+
editingPackageId: string | null;
|
|
6
|
+
handleAddPackage: (spaceId: string, name: string, description: string) => boolean;
|
|
7
|
+
handleDeletePackage: (packageId: string) => void;
|
|
8
|
+
handleStartEditingPackage: (packageId: string) => void;
|
|
9
|
+
handleSavePackageEdit: (packageId: string, name: string, description: string) => boolean;
|
|
10
|
+
handleCancelPackageEdit: () => void;
|
|
11
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useCallback, useState } from "react";
|
|
2
|
+
import { actions, } from "../../../document-models/builder-team/index.js";
|
|
3
|
+
import { generateNanoId } from "../../../utils/nano-id.js";
|
|
4
|
+
export function usePackageHandlers(spaces, dispatch) {
|
|
5
|
+
const [editingPackageId, setEditingPackageId] = useState(null);
|
|
6
|
+
const handleAddPackage = useCallback((spaceId, name, description) => {
|
|
7
|
+
if (name.trim() && spaceId) {
|
|
8
|
+
const id = generateNanoId();
|
|
9
|
+
dispatch(actions.addPackage({ id, spaceId }));
|
|
10
|
+
dispatch(actions.updatePackageInfo({
|
|
11
|
+
id,
|
|
12
|
+
title: name.trim(),
|
|
13
|
+
description: description.trim() || null,
|
|
14
|
+
}));
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}, [dispatch]);
|
|
19
|
+
const handleDeletePackage = useCallback((packageId) => {
|
|
20
|
+
dispatch(actions.removePackage({ id: packageId }));
|
|
21
|
+
}, [dispatch]);
|
|
22
|
+
const handleStartEditingPackage = useCallback((packageId) => {
|
|
23
|
+
setEditingPackageId(packageId);
|
|
24
|
+
}, []);
|
|
25
|
+
const handleSavePackageEdit = useCallback((packageId, name, description) => {
|
|
26
|
+
console.log("handleSavePackageEdit", packageId, name, description);
|
|
27
|
+
if (packageId && name.trim()) {
|
|
28
|
+
dispatch(actions.updatePackageInfo({
|
|
29
|
+
id: packageId,
|
|
30
|
+
title: name.trim(),
|
|
31
|
+
description: description.trim() || null,
|
|
32
|
+
}));
|
|
33
|
+
setEditingPackageId(null);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}, [dispatch]);
|
|
38
|
+
const handleCancelPackageEdit = useCallback(() => {
|
|
39
|
+
setEditingPackageId(null);
|
|
40
|
+
}, []);
|
|
41
|
+
return {
|
|
42
|
+
editingPackageId,
|
|
43
|
+
handleAddPackage,
|
|
44
|
+
handleDeletePackage,
|
|
45
|
+
handleStartEditingPackage,
|
|
46
|
+
handleSavePackageEdit,
|
|
47
|
+
handleCancelPackageEdit,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type BuilderTeamDocument } from "../../../document-models/builder-team/index.js";
|
|
2
|
+
import { type Action } from "document-model";
|
|
3
|
+
import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
|
|
4
|
+
export declare function useProfileHandlers(profile: BuilderTeamDocument["state"]["global"]["profile"], dispatch: DocumentDispatch<Action>): {
|
|
5
|
+
handleSetProfileName: (name: string) => void;
|
|
6
|
+
handleSetSlug: (slug: string) => void;
|
|
7
|
+
handleSetProfileDescription: (description: string) => void;
|
|
8
|
+
handleSetLogo: (logoUrl: string) => void;
|
|
9
|
+
handleUpdateSocials: (socials: {
|
|
10
|
+
github?: string | null;
|
|
11
|
+
website?: string | null;
|
|
12
|
+
x?: string | null;
|
|
13
|
+
}) => void;
|
|
14
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { actions, } from "../../../document-models/builder-team/index.js";
|
|
3
|
+
export function useProfileHandlers(profile, dispatch) {
|
|
4
|
+
const handleSetProfileName = useCallback((name) => {
|
|
5
|
+
if (name.trim() && name !== profile.name) {
|
|
6
|
+
dispatch(actions.setTeamName({ name: name.trim() }));
|
|
7
|
+
}
|
|
8
|
+
}, [profile.name, dispatch]);
|
|
9
|
+
const handleSetSlug = useCallback((slug) => {
|
|
10
|
+
if (slug.trim() && slug !== profile.slug) {
|
|
11
|
+
dispatch(actions.setSlug({ slug: slug.trim() }));
|
|
12
|
+
}
|
|
13
|
+
}, [profile.slug, dispatch]);
|
|
14
|
+
const handleSetProfileDescription = useCallback((description) => {
|
|
15
|
+
if (description !== profile.description) {
|
|
16
|
+
dispatch(actions.setDescription({ description: description.trim() || null }));
|
|
17
|
+
}
|
|
18
|
+
}, [profile.description, dispatch]);
|
|
19
|
+
const handleSetLogo = useCallback((logoUrl) => {
|
|
20
|
+
if (logoUrl.trim() && logoUrl !== profile.logo) {
|
|
21
|
+
dispatch(actions.setLogo({ logo: logoUrl.trim() }));
|
|
22
|
+
}
|
|
23
|
+
}, [profile.logo, dispatch]);
|
|
24
|
+
const handleUpdateSocials = useCallback((socials) => {
|
|
25
|
+
dispatch(actions.setSocials({
|
|
26
|
+
github: socials.github?.trim() || null,
|
|
27
|
+
website: socials.website?.trim() || null,
|
|
28
|
+
xProfile: socials.x?.trim() || null,
|
|
29
|
+
}));
|
|
30
|
+
}, [dispatch]);
|
|
31
|
+
return {
|
|
32
|
+
handleSetProfileName,
|
|
33
|
+
handleSetSlug,
|
|
34
|
+
handleSetProfileDescription,
|
|
35
|
+
handleSetLogo,
|
|
36
|
+
handleUpdateSocials,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type BuilderTeamDocument } from "../../../document-models/builder-team/index.js";
|
|
2
|
+
import { type DocumentDispatch } from "@powerhousedao/reactor-browser";
|
|
3
|
+
import { type Action } from "document-model";
|
|
4
|
+
export declare function useSpaceHandlers(spaces: BuilderTeamDocument["state"]["global"]["spaces"], dispatch: DocumentDispatch<Action>): {
|
|
5
|
+
editingSpaceId: string | null;
|
|
6
|
+
editingSpaceTitle: string;
|
|
7
|
+
setEditingSpaceTitle: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
8
|
+
editingSpaceDescription: string;
|
|
9
|
+
setEditingSpaceDescription: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
10
|
+
handleAddSpace: (title: string, description: string) => boolean;
|
|
11
|
+
handleDeleteSpace: (spaceId: string) => void;
|
|
12
|
+
handleStartEditingSpace: (spaceId: string) => void;
|
|
13
|
+
handleSaveSpaceEdit: () => boolean;
|
|
14
|
+
handleCancelSpaceEdit: () => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { useCallback, useState } from "react";
|
|
2
|
+
import { actions, } from "../../../document-models/builder-team/index.js";
|
|
3
|
+
import { generateNanoId } from "../../../utils/nano-id.js";
|
|
4
|
+
export function useSpaceHandlers(spaces, dispatch) {
|
|
5
|
+
const [editingSpaceId, setEditingSpaceId] = useState(null);
|
|
6
|
+
const [editingSpaceTitle, setEditingSpaceTitle] = useState("");
|
|
7
|
+
const [editingSpaceDescription, setEditingSpaceDescription] = useState("");
|
|
8
|
+
const handleAddSpace = useCallback((title, description) => {
|
|
9
|
+
if (title.trim()) {
|
|
10
|
+
// Generate a nano id for the space
|
|
11
|
+
const id = generateNanoId();
|
|
12
|
+
// Create the space with the generated ID
|
|
13
|
+
dispatch(actions.addSpace({
|
|
14
|
+
id,
|
|
15
|
+
}));
|
|
16
|
+
// Update the space with title and description
|
|
17
|
+
dispatch(actions.updateSpaceInfo({
|
|
18
|
+
id,
|
|
19
|
+
title: title.trim(),
|
|
20
|
+
description: description.trim() || undefined,
|
|
21
|
+
}));
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}, [dispatch]);
|
|
26
|
+
const handleDeleteSpace = useCallback((spaceId) => {
|
|
27
|
+
dispatch(actions.removeSpace({ id: spaceId }));
|
|
28
|
+
}, [dispatch]);
|
|
29
|
+
const handleSetSpaceTitle = useCallback((spaceId, newTitle) => {
|
|
30
|
+
if (newTitle.trim()) {
|
|
31
|
+
dispatch(actions.updateSpaceInfo({ id: spaceId, title: newTitle.trim() }));
|
|
32
|
+
}
|
|
33
|
+
}, [dispatch]);
|
|
34
|
+
const handleSetSpaceDescription = useCallback((spaceId, description) => {
|
|
35
|
+
dispatch(actions.updateSpaceInfo({
|
|
36
|
+
id: spaceId,
|
|
37
|
+
description: description.trim(),
|
|
38
|
+
}));
|
|
39
|
+
}, [dispatch]);
|
|
40
|
+
const handleStartEditingSpace = useCallback((spaceId) => {
|
|
41
|
+
const space = spaces.find((s) => s.id === spaceId);
|
|
42
|
+
if (space) {
|
|
43
|
+
setEditingSpaceId(spaceId);
|
|
44
|
+
setEditingSpaceTitle(space.title);
|
|
45
|
+
setEditingSpaceDescription(space.description || "");
|
|
46
|
+
}
|
|
47
|
+
}, [spaces]);
|
|
48
|
+
const handleSaveSpaceEdit = useCallback(() => {
|
|
49
|
+
if (editingSpaceId && editingSpaceTitle.trim()) {
|
|
50
|
+
handleSetSpaceTitle(editingSpaceId, editingSpaceTitle);
|
|
51
|
+
handleSetSpaceDescription(editingSpaceId, editingSpaceDescription);
|
|
52
|
+
setEditingSpaceId(null);
|
|
53
|
+
setEditingSpaceTitle("");
|
|
54
|
+
setEditingSpaceDescription("");
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}, [
|
|
59
|
+
editingSpaceId,
|
|
60
|
+
editingSpaceTitle,
|
|
61
|
+
editingSpaceDescription,
|
|
62
|
+
handleSetSpaceTitle,
|
|
63
|
+
handleSetSpaceDescription,
|
|
64
|
+
]);
|
|
65
|
+
const handleCancelSpaceEdit = useCallback(() => {
|
|
66
|
+
setEditingSpaceId(null);
|
|
67
|
+
setEditingSpaceTitle("");
|
|
68
|
+
setEditingSpaceDescription("");
|
|
69
|
+
}, []);
|
|
70
|
+
return {
|
|
71
|
+
editingSpaceId,
|
|
72
|
+
editingSpaceTitle,
|
|
73
|
+
setEditingSpaceTitle,
|
|
74
|
+
editingSpaceDescription,
|
|
75
|
+
setEditingSpaceDescription,
|
|
76
|
+
handleAddSpace,
|
|
77
|
+
handleDeleteSpace,
|
|
78
|
+
handleStartEditingSpace,
|
|
79
|
+
handleSaveSpaceEdit,
|
|
80
|
+
handleCancelSpaceEdit,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Editor } from "./editor.js";
|
|
2
|
+
export const module = {
|
|
3
|
+
Component: Editor,
|
|
4
|
+
documentTypes: ["powerhouse/builder-team"],
|
|
5
|
+
config: {
|
|
6
|
+
id: "builder-team-editor",
|
|
7
|
+
disableExternalControls: true,
|
|
8
|
+
documentToolbarEnabled: true,
|
|
9
|
+
showSwitchboardLink: true,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BuilderTeamAction, BuilderTeamDocument } from "../../document-models/builder-team/index.js";
|
|
2
|
+
export declare function useBuilderTeamDocument(documentId: string | null | undefined): never[] | [BuilderTeamDocument, import("@powerhousedao/reactor-browser").DocumentDispatch<BuilderTeamAction>];
|
|
3
|
+
export declare function useSelectedBuilderTeamDocument(): never[] | [BuilderTeamDocument, import("@powerhousedao/reactor-browser").DocumentDispatch<BuilderTeamAction>];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useDocumentOfType, useSelectedDocumentId, } from "@powerhousedao/reactor-browser";
|
|
2
|
+
export function useBuilderTeamDocument(documentId) {
|
|
3
|
+
return useDocumentOfType(documentId, "powerhouse/builder-team");
|
|
4
|
+
}
|
|
5
|
+
export function useSelectedBuilderTeamDocument() {
|
|
6
|
+
const selectedDocumentId = useSelectedDocumentId();
|
|
7
|
+
return useBuilderTeamDocument(selectedDocumentId);
|
|
8
|
+
}
|
package/dist/editors/index.d.ts
CHANGED
package/dist/editors/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { module as
|
|
2
|
-
export { module as RenownProfileEditor } from "./renown-profile-editor/index.js";
|
|
1
|
+
export { module as BuilderTeamEditor } from "./builder-team-editor/index.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Manifest } from "document-model";
|
|
2
2
|
export declare const manifest: Manifest;
|
|
3
|
-
export declare const documentModels:
|
|
3
|
+
export declare const documentModels: import("document-model").DocumentModelModule<import("./document-models/builder-team/gen").BuilderTeamPHState>[];
|
|
4
4
|
export declare const editors: import("document-model").EditorModule[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
2
|
+
"name": "powerhouse/vetra-builder-package",
|
|
3
3
|
"description": "",
|
|
4
|
-
"category": "
|
|
4
|
+
"category": "People & Culture",
|
|
5
5
|
"publisher": {
|
|
6
6
|
"name": "Powerhouse Inc.",
|
|
7
7
|
"url": "https://www.powerhouse.inc"
|
|
@@ -18,6 +18,14 @@
|
|
|
18
18
|
{
|
|
19
19
|
"id": "powerhouse/renown-profile",
|
|
20
20
|
"name": "RenownProfile"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "powerhouse/builder-team",
|
|
24
|
+
"name": "BuilderTeam"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "powerhouse/vetra/builder-team",
|
|
28
|
+
"name": "BuilderTeam"
|
|
21
29
|
}
|
|
22
30
|
],
|
|
23
31
|
"editors": [
|
|
@@ -27,18 +35,25 @@
|
|
|
27
35
|
"documentTypes": [
|
|
28
36
|
"powerhouse/renown-profile"
|
|
29
37
|
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "builder-team-editor",
|
|
41
|
+
"name": "Builder Team Editor",
|
|
42
|
+
"documentTypes": [
|
|
43
|
+
"powerhouse/builder-team"
|
|
44
|
+
]
|
|
30
45
|
}
|
|
31
46
|
],
|
|
32
47
|
"apps": [],
|
|
33
48
|
"subgraphs": [
|
|
34
49
|
{
|
|
35
|
-
"id": "vetra",
|
|
36
|
-
"name": "vetra",
|
|
50
|
+
"id": "vetra-builder-read-model",
|
|
51
|
+
"name": "vetra-builder-read-model",
|
|
37
52
|
"documentTypes": []
|
|
38
53
|
},
|
|
39
54
|
{
|
|
40
|
-
"id": "
|
|
41
|
-
"name": "
|
|
55
|
+
"id": "vetra-builders",
|
|
56
|
+
"name": "VetraBuilders",
|
|
42
57
|
"documentTypes": []
|
|
43
58
|
}
|
|
44
59
|
],
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file aggregates all processor factories
|
|
3
|
-
* Auto-generated by codegen - DO NOT EDIT MANUALLY
|
|
4
|
-
*/
|
|
5
1
|
import { type IProcessorHostModule, type ProcessorRecord } from "document-drive/processors/types";
|
|
6
2
|
import { type PHDocumentHeader } from "document-model";
|
|
7
3
|
export declare const processorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => Promise<ProcessorRecord[]>;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
* This file aggregates all processor factories
|
|
3
|
+
* Auto-generated by codegen - DO NOT EDIT MANUALLY
|
|
4
|
+
*/
|
|
5
|
+
import { vetraBuilderTeamRelationalDbProcessorFactory } from "./vetra-builder-relational-db-processor/factory.js";
|
|
3
6
|
export const processorFactory = (module) => {
|
|
4
7
|
// Initialize all processor factories once with the module
|
|
5
8
|
const factories = [];
|
|
6
9
|
// Add other processors here as they are generated
|
|
7
|
-
factories.push(
|
|
8
|
-
factories.push(renownProfileProcessorFactory(module));
|
|
10
|
+
factories.push(vetraBuilderTeamRelationalDbProcessorFactory(module));
|
|
9
11
|
// Return the inner function that will be called for each drive
|
|
10
12
|
return async (driveHeader) => {
|
|
11
13
|
const processors = [];
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { VetraReadModelProcessor } from "./vetra-read-model/index.js";
|
|
2
|
-
export { vetraReadModelProcessorFactory } from "./vetra-read-model/factory.js";
|
|
3
1
|
export { processorFactory } from "./factory.js";
|
|
4
|
-
export * as
|
|
5
|
-
export {
|
|
2
|
+
export * as VetraBuilderRelationalDbProcessorProcessor from "./vetra-builder-relational-db-processor/index.js";
|
|
3
|
+
export { vetraBuilderTeamRelationalDbProcessorFactory } from "./vetra-builder-relational-db-processor/factory.js";
|
package/dist/processors/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { VetraReadModelProcessor } from "./vetra-read-model/index.js";
|
|
2
|
-
export { vetraReadModelProcessorFactory } from "./vetra-read-model/factory.js";
|
|
3
1
|
export { processorFactory } from "./factory.js";
|
|
4
|
-
export * as
|
|
5
|
-
export {
|
|
2
|
+
export * as VetraBuilderRelationalDbProcessorProcessor from "./vetra-builder-relational-db-processor/index.js";
|
|
3
|
+
export { vetraBuilderTeamRelationalDbProcessorFactory } from "./vetra-builder-relational-db-processor/factory.js";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type ProcessorRecord, type IProcessorHostModule } from "document-drive/processors/types";
|
|
2
|
+
import { type PHDocumentHeader } from "document-model";
|
|
3
|
+
export declare const vetraBuilderRelationalDbProcessorProcessorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => Promise<ProcessorRecord[]>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { VetraBuilderRelationalDbProcessorProcessor } from "./index.js";
|
|
2
|
+
export const vetraBuilderRelationalDbProcessorProcessorFactory = (module) => async (driveHeader) => {
|
|
3
|
+
// Create a namespace for the processor and the provided drive id
|
|
4
|
+
const namespace = VetraBuilderRelationalDbProcessorProcessor.getNamespace(driveHeader.id);
|
|
5
|
+
// Create a namespaced db for the processor
|
|
6
|
+
const store = await module.relationalDb.createNamespace(namespace);
|
|
7
|
+
// Create a filter for the processor
|
|
8
|
+
const filter = {
|
|
9
|
+
branch: ["main"],
|
|
10
|
+
documentId: ["*"],
|
|
11
|
+
documentType: ["powerhouse/builder-team"],
|
|
12
|
+
scope: ["global"],
|
|
13
|
+
};
|
|
14
|
+
// Create the processor
|
|
15
|
+
const processor = new VetraBuilderRelationalDbProcessorProcessor(namespace, filter, store);
|
|
16
|
+
return [
|
|
17
|
+
{
|
|
18
|
+
processor,
|
|
19
|
+
filter,
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RelationalDbProcessor } from "document-drive/processors/relational";
|
|
2
|
+
import { type InternalTransmitterUpdate } from "document-drive/server/listener/transmitter/internal";
|
|
3
|
+
import { type DB } from "./schema.js";
|
|
4
|
+
export declare class VetraBuilderRelationalDbProcessorProcessor extends RelationalDbProcessor<DB> {
|
|
5
|
+
static getNamespace(driveId: string): string;
|
|
6
|
+
initAndUpgrade(): Promise<void>;
|
|
7
|
+
onStrands(strands: InternalTransmitterUpdate[]): Promise<void>;
|
|
8
|
+
onDisconnect(): Promise<void>;
|
|
9
|
+
}
|