@powerhousedao/vetra-builder-package 0.0.31 → 0.0.33
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/editors/builder-team-editor/config.js +10 -8
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/document-models/builder-account/gen/actions.d.ts +0 -9
- package/dist/document-models/builder-account/gen/actions.js +0 -4
- package/dist/document-models/builder-account/gen/creators.d.ts +0 -4
- package/dist/document-models/builder-account/gen/creators.js +0 -4
- package/dist/document-models/builder-account/gen/document-model.d.ts +0 -2
- package/dist/document-models/builder-account/gen/document-model.js +0 -253
- package/dist/document-models/builder-account/gen/index.d.ts +0 -7
- package/dist/document-models/builder-account/gen/index.js +0 -6
- package/dist/document-models/builder-account/gen/members/actions.d.ts +0 -11
- package/dist/document-models/builder-account/gen/members/actions.js +0 -1
- package/dist/document-models/builder-account/gen/members/creators.d.ts +0 -4
- package/dist/document-models/builder-account/gen/members/creators.js +0 -4
- package/dist/document-models/builder-account/gen/members/error.d.ts +0 -1
- package/dist/document-models/builder-account/gen/members/error.js +0 -1
- package/dist/document-models/builder-account/gen/members/object.d.ts +0 -7
- package/dist/document-models/builder-account/gen/members/object.js +0 -10
- package/dist/document-models/builder-account/gen/members/operations.d.ts +0 -7
- package/dist/document-models/builder-account/gen/members/operations.js +0 -1
- package/dist/document-models/builder-account/gen/object.d.ts +0 -20
- package/dist/document-models/builder-account/gen/object.js +0 -36
- package/dist/document-models/builder-account/gen/packages/actions.d.ts +0 -23
- package/dist/document-models/builder-account/gen/packages/actions.js +0 -1
- package/dist/document-models/builder-account/gen/packages/creators.d.ts +0 -7
- package/dist/document-models/builder-account/gen/packages/creators.js +0 -7
- package/dist/document-models/builder-account/gen/packages/error.d.ts +0 -1
- package/dist/document-models/builder-account/gen/packages/error.js +0 -1
- package/dist/document-models/builder-account/gen/packages/object.d.ts +0 -10
- package/dist/document-models/builder-account/gen/packages/object.js +0 -19
- package/dist/document-models/builder-account/gen/packages/operations.d.ts +0 -10
- package/dist/document-models/builder-account/gen/packages/operations.js +0 -1
- package/dist/document-models/builder-account/gen/ph-factories.d.ts +0 -26
- package/dist/document-models/builder-account/gen/ph-factories.js +0 -62
- package/dist/document-models/builder-account/gen/profile/actions.d.ts +0 -23
- package/dist/document-models/builder-account/gen/profile/actions.js +0 -1
- package/dist/document-models/builder-account/gen/profile/creators.d.ts +0 -7
- package/dist/document-models/builder-account/gen/profile/creators.js +0 -7
- package/dist/document-models/builder-account/gen/profile/error.d.ts +0 -1
- package/dist/document-models/builder-account/gen/profile/error.js +0 -1
- package/dist/document-models/builder-account/gen/profile/object.d.ts +0 -10
- package/dist/document-models/builder-account/gen/profile/object.js +0 -19
- package/dist/document-models/builder-account/gen/profile/operations.d.ts +0 -10
- package/dist/document-models/builder-account/gen/profile/operations.js +0 -1
- package/dist/document-models/builder-account/gen/reducer.d.ts +0 -4
- package/dist/document-models/builder-account/gen/reducer.js +0 -87
- package/dist/document-models/builder-account/gen/schema/index.d.ts +0 -2
- package/dist/document-models/builder-account/gen/schema/index.js +0 -2
- package/dist/document-models/builder-account/gen/schema/types.d.ts +0 -269
- package/dist/document-models/builder-account/gen/schema/types.js +0 -1
- package/dist/document-models/builder-account/gen/schema/zod.d.ts +0 -34
- package/dist/document-models/builder-account/gen/schema/zod.js +0 -192
- package/dist/document-models/builder-account/gen/spaces/actions.d.ts +0 -23
- package/dist/document-models/builder-account/gen/spaces/actions.js +0 -1
- package/dist/document-models/builder-account/gen/spaces/creators.d.ts +0 -7
- package/dist/document-models/builder-account/gen/spaces/creators.js +0 -7
- package/dist/document-models/builder-account/gen/spaces/error.d.ts +0 -13
- package/dist/document-models/builder-account/gen/spaces/error.js +0 -11
- package/dist/document-models/builder-account/gen/spaces/object.d.ts +0 -10
- package/dist/document-models/builder-account/gen/spaces/object.js +0 -19
- package/dist/document-models/builder-account/gen/spaces/operations.d.ts +0 -10
- package/dist/document-models/builder-account/gen/spaces/operations.js +0 -1
- package/dist/document-models/builder-account/gen/types.d.ts +0 -9
- package/dist/document-models/builder-account/gen/types.js +0 -1
- package/dist/document-models/builder-account/gen/utils.d.ts +0 -21
- package/dist/document-models/builder-account/gen/utils.js +0 -54
- package/dist/document-models/builder-account/index.d.ts +0 -40
- package/dist/document-models/builder-account/index.js +0 -21
- package/dist/document-models/builder-account/src/reducers/members.d.ts +0 -2
- package/dist/document-models/builder-account/src/reducers/members.js +0 -11
- package/dist/document-models/builder-account/src/reducers/packages.d.ts +0 -2
- package/dist/document-models/builder-account/src/reducers/packages.js +0 -108
- package/dist/document-models/builder-account/src/reducers/profile.d.ts +0 -2
- package/dist/document-models/builder-account/src/reducers/profile.js +0 -43
- package/dist/document-models/builder-account/src/reducers/spaces.d.ts +0 -2
- package/dist/document-models/builder-account/src/reducers/spaces.js +0 -52
- package/dist/document-models/builder-account/src/tests/document-model.test.d.ts +0 -5
- package/dist/document-models/builder-account/src/tests/document-model.test.js +0 -18
- package/dist/document-models/builder-account/src/tests/members.test.d.ts +0 -5
- package/dist/document-models/builder-account/src/tests/members.test.js +0 -32
- package/dist/document-models/builder-account/src/tests/packages.test.d.ts +0 -5
- package/dist/document-models/builder-account/src/tests/packages.test.js +0 -56
- package/dist/document-models/builder-account/src/tests/profile.test.d.ts +0 -5
- package/dist/document-models/builder-account/src/tests/profile.test.js +0 -56
- package/dist/document-models/builder-account/src/tests/spaces.test.d.ts +0 -5
- package/dist/document-models/builder-account/src/tests/spaces.test.js +0 -56
- package/dist/document-models/builder-account/src/utils.d.ts +0 -1
- package/dist/document-models/builder-account/src/utils.js +0 -1
- package/dist/document-models/renown-profile/gen/actions.d.ts +0 -5
- package/dist/document-models/renown-profile/gen/actions.js +0 -2
- package/dist/document-models/renown-profile/gen/authorization/actions.d.ts +0 -11
- package/dist/document-models/renown-profile/gen/authorization/actions.js +0 -1
- package/dist/document-models/renown-profile/gen/authorization/creators.d.ts +0 -4
- package/dist/document-models/renown-profile/gen/authorization/creators.js +0 -4
- package/dist/document-models/renown-profile/gen/authorization/error.d.ts +0 -1
- package/dist/document-models/renown-profile/gen/authorization/error.js +0 -1
- package/dist/document-models/renown-profile/gen/authorization/object.d.ts +0 -7
- package/dist/document-models/renown-profile/gen/authorization/object.js +0 -10
- package/dist/document-models/renown-profile/gen/authorization/operations.d.ts +0 -7
- package/dist/document-models/renown-profile/gen/authorization/operations.js +0 -1
- package/dist/document-models/renown-profile/gen/creators.d.ts +0 -2
- package/dist/document-models/renown-profile/gen/creators.js +0 -2
- package/dist/document-models/renown-profile/gen/document-model.d.ts +0 -2
- package/dist/document-models/renown-profile/gen/document-model.js +0 -99
- package/dist/document-models/renown-profile/gen/index.d.ts +0 -7
- package/dist/document-models/renown-profile/gen/index.js +0 -6
- package/dist/document-models/renown-profile/gen/object.d.ts +0 -16
- package/dist/document-models/renown-profile/gen/object.js +0 -30
- package/dist/document-models/renown-profile/gen/ph-factories.d.ts +0 -26
- package/dist/document-models/renown-profile/gen/ph-factories.js +0 -53
- package/dist/document-models/renown-profile/gen/profile/actions.d.ts +0 -15
- package/dist/document-models/renown-profile/gen/profile/actions.js +0 -1
- package/dist/document-models/renown-profile/gen/profile/creators.d.ts +0 -5
- package/dist/document-models/renown-profile/gen/profile/creators.js +0 -5
- package/dist/document-models/renown-profile/gen/profile/error.d.ts +0 -1
- package/dist/document-models/renown-profile/gen/profile/error.js +0 -1
- package/dist/document-models/renown-profile/gen/profile/object.d.ts +0 -8
- package/dist/document-models/renown-profile/gen/profile/object.js +0 -13
- package/dist/document-models/renown-profile/gen/profile/operations.d.ts +0 -8
- package/dist/document-models/renown-profile/gen/profile/operations.js +0 -1
- package/dist/document-models/renown-profile/gen/reducer.d.ts +0 -4
- package/dist/document-models/renown-profile/gen/reducer.js +0 -37
- package/dist/document-models/renown-profile/gen/schema/index.d.ts +0 -2
- package/dist/document-models/renown-profile/gen/schema/index.js +0 -2
- package/dist/document-models/renown-profile/gen/schema/types.d.ts +0 -174
- package/dist/document-models/renown-profile/gen/schema/types.js +0 -1
- package/dist/document-models/renown-profile/gen/schema/zod.d.ts +0 -16
- package/dist/document-models/renown-profile/gen/schema/zod.js +0 -62
- package/dist/document-models/renown-profile/gen/types.d.ts +0 -9
- package/dist/document-models/renown-profile/gen/types.js +0 -1
- package/dist/document-models/renown-profile/gen/utils.d.ts +0 -21
- package/dist/document-models/renown-profile/gen/utils.js +0 -45
- package/dist/document-models/renown-profile/index.d.ts +0 -28
- package/dist/document-models/renown-profile/index.js +0 -21
- package/dist/document-models/renown-profile/src/reducers/authorization.d.ts +0 -2
- package/dist/document-models/renown-profile/src/reducers/authorization.js +0 -8
- package/dist/document-models/renown-profile/src/reducers/profile.d.ts +0 -2
- package/dist/document-models/renown-profile/src/reducers/profile.js +0 -11
- package/dist/document-models/renown-profile/src/tests/authorization.test.d.ts +0 -5
- package/dist/document-models/renown-profile/src/tests/authorization.test.js +0 -24
- package/dist/document-models/renown-profile/src/tests/document-model.test.d.ts +0 -5
- package/dist/document-models/renown-profile/src/tests/document-model.test.js +0 -18
- package/dist/document-models/renown-profile/src/tests/profile.test.d.ts +0 -5
- package/dist/document-models/renown-profile/src/tests/profile.test.js +0 -24
- package/dist/document-models/renown-profile/src/utils.d.ts +0 -1
- package/dist/document-models/renown-profile/src/utils.js +0 -1
- package/dist/document-models/vetra-package/gen/actions.d.ts +0 -3
- package/dist/document-models/vetra-package/gen/actions.js +0 -1
- package/dist/document-models/vetra-package/gen/creators.d.ts +0 -1
- package/dist/document-models/vetra-package/gen/creators.js +0 -1
- package/dist/document-models/vetra-package/gen/document-model.d.ts +0 -2
- package/dist/document-models/vetra-package/gen/document-model.js +0 -125
- package/dist/document-models/vetra-package/gen/index.d.ts +0 -7
- package/dist/document-models/vetra-package/gen/index.js +0 -6
- package/dist/document-models/vetra-package/gen/meta/actions.d.ts +0 -35
- package/dist/document-models/vetra-package/gen/meta/actions.js +0 -1
- package/dist/document-models/vetra-package/gen/meta/creators.d.ts +0 -10
- package/dist/document-models/vetra-package/gen/meta/creators.js +0 -10
- package/dist/document-models/vetra-package/gen/meta/error.d.ts +0 -1
- package/dist/document-models/vetra-package/gen/meta/error.js +0 -1
- package/dist/document-models/vetra-package/gen/meta/object.d.ts +0 -13
- package/dist/document-models/vetra-package/gen/meta/object.js +0 -28
- package/dist/document-models/vetra-package/gen/meta/operations.d.ts +0 -13
- package/dist/document-models/vetra-package/gen/meta/operations.js +0 -1
- package/dist/document-models/vetra-package/gen/object.d.ts +0 -14
- package/dist/document-models/vetra-package/gen/object.js +0 -25
- package/dist/document-models/vetra-package/gen/ph-factories.d.ts +0 -26
- package/dist/document-models/vetra-package/gen/ph-factories.js +0 -59
- package/dist/document-models/vetra-package/gen/reducer.d.ts +0 -4
- package/dist/document-models/vetra-package/gen/reducer.js +0 -48
- package/dist/document-models/vetra-package/gen/schema/index.d.ts +0 -2
- package/dist/document-models/vetra-package/gen/schema/index.js +0 -2
- package/dist/document-models/vetra-package/gen/schema/types.d.ts +0 -187
- package/dist/document-models/vetra-package/gen/schema/types.js +0 -1
- package/dist/document-models/vetra-package/gen/schema/zod.d.ts +0 -20
- package/dist/document-models/vetra-package/gen/schema/zod.js +0 -73
- package/dist/document-models/vetra-package/gen/types.d.ts +0 -9
- package/dist/document-models/vetra-package/gen/types.js +0 -1
- package/dist/document-models/vetra-package/gen/utils.d.ts +0 -21
- package/dist/document-models/vetra-package/gen/utils.js +0 -51
- package/dist/document-models/vetra-package/index.d.ts +0 -31
- package/dist/document-models/vetra-package/index.js +0 -21
- package/dist/document-models/vetra-package/src/reducers/meta.d.ts +0 -2
- package/dist/document-models/vetra-package/src/reducers/meta.js +0 -34
- package/dist/document-models/vetra-package/src/tests/document-model.test.d.ts +0 -5
- package/dist/document-models/vetra-package/src/tests/document-model.test.js +0 -18
- package/dist/document-models/vetra-package/src/tests/meta.test.d.ts +0 -5
- package/dist/document-models/vetra-package/src/tests/meta.test.js +0 -80
- package/dist/document-models/vetra-package/src/utils.d.ts +0 -1
- package/dist/document-models/vetra-package/src/utils.js +0 -1
- package/dist/editors/builder-account-editor/editor.d.ts +0 -3
- package/dist/editors/builder-account-editor/editor.js +0 -195
- package/dist/editors/builder-account-editor/index.d.ts +0 -3
- package/dist/editors/builder-account-editor/index.js +0 -12
- package/dist/editors/hooks/useRenownProfileDocument.d.ts +0 -3
- package/dist/editors/hooks/useRenownProfileDocument.js +0 -8
- package/dist/editors/renown-profile-editor/editor.d.ts +0 -3
- package/dist/editors/renown-profile-editor/editor.js +0 -33
- package/dist/editors/renown-profile-editor/index.d.ts +0 -2
- package/dist/editors/renown-profile-editor/index.js +0 -11
- package/dist/processors/old_vetra-builder-relational-db-processor/factory.d.ts +0 -3
- package/dist/processors/old_vetra-builder-relational-db-processor/factory.js +0 -22
- package/dist/processors/old_vetra-builder-relational-db-processor/index.d.ts +0 -9
- package/dist/processors/old_vetra-builder-relational-db-processor/index.js +0 -32
- package/dist/processors/old_vetra-builder-relational-db-processor/migrations.d.ts +0 -3
- package/dist/processors/old_vetra-builder-relational-db-processor/migrations.js +0 -14
- package/dist/processors/old_vetra-builder-relational-db-processor/schema.d.ts +0 -7
- package/dist/processors/old_vetra-builder-relational-db-processor/schema.js +0 -1
- package/dist/processors/renown-profile/factory.d.ts +0 -3
- package/dist/processors/renown-profile/factory.js +0 -22
- package/dist/processors/renown-profile/index.d.ts +0 -9
- package/dist/processors/renown-profile/index.js +0 -81
- package/dist/processors/renown-profile/migrations.d.ts +0 -3
- package/dist/processors/renown-profile/migrations.js +0 -39
- package/dist/processors/renown-profile/schema.d.ts +0 -14
- package/dist/processors/renown-profile/schema.js +0 -1
- package/dist/processors/renown-read-model/migrations.d.ts +0 -3
- package/dist/processors/renown-read-model/migrations.js +0 -55
- package/dist/processors/renown-read-model/schema.d.ts +0 -21
- package/dist/processors/renown-read-model/schema.js +0 -1
- package/dist/processors/vetra-builder-read-model/builder-account-handlers.d.ts +0 -27
- package/dist/processors/vetra-builder-read-model/builder-account-handlers.js +0 -249
- package/dist/processors/vetra-builder-read-model/database-helpers.d.ts +0 -39
- package/dist/processors/vetra-builder-read-model/database-helpers.js +0 -144
- package/dist/processors/vetra-builder-read-model/factory.d.ts +0 -3
- package/dist/processors/vetra-builder-read-model/factory.js +0 -25
- package/dist/processors/vetra-builder-read-model/index.d.ts +0 -29
- package/dist/processors/vetra-builder-read-model/index.js +0 -370
- package/dist/processors/vetra-builder-read-model/migrations.d.ts +0 -3
- package/dist/processors/vetra-builder-read-model/migrations.js +0 -152
- package/dist/processors/vetra-builder-read-model/package-handlers.d.ts +0 -20
- package/dist/processors/vetra-builder-read-model/package-handlers.js +0 -116
- package/dist/processors/vetra-builder-read-model/schema.d.ts +0 -66
- package/dist/processors/vetra-builder-read-model/schema.js +0 -1
- package/dist/processors/vetra-builder-read-model/types.d.ts +0 -32
- package/dist/processors/vetra-builder-read-model/types.js +0 -1
- package/dist/processors/vetra-read-model/builder-account-handlers.d.ts +0 -27
- package/dist/processors/vetra-read-model/builder-account-handlers.js +0 -249
- package/dist/processors/vetra-read-model/database-helpers.d.ts +0 -39
- package/dist/processors/vetra-read-model/database-helpers.js +0 -144
- package/dist/processors/vetra-read-model/document-drive-handlers.d.ts +0 -21
- package/dist/processors/vetra-read-model/document-drive-handlers.js +0 -77
- package/dist/processors/vetra-read-model/factory.d.ts +0 -3
- package/dist/processors/vetra-read-model/factory.js +0 -25
- package/dist/processors/vetra-read-model/index.d.ts +0 -29
- package/dist/processors/vetra-read-model/index.js +0 -370
- package/dist/processors/vetra-read-model/migrations.d.ts +0 -3
- package/dist/processors/vetra-read-model/migrations.js +0 -152
- package/dist/processors/vetra-read-model/package-handlers.d.ts +0 -20
- package/dist/processors/vetra-read-model/package-handlers.js +0 -116
- package/dist/processors/vetra-read-model/schema.d.ts +0 -66
- package/dist/processors/vetra-read-model/schema.js +0 -1
- package/dist/processors/vetra-read-model/types.d.ts +0 -32
- package/dist/processors/vetra-read-model/types.js +0 -1
- package/dist/subgraphs/builder-account/index.d.ts +0 -10
- package/dist/subgraphs/builder-account/index.js +0 -11
- package/dist/subgraphs/builder-account/resolvers.d.ts +0 -2
- package/dist/subgraphs/builder-account/resolvers.js +0 -276
- package/dist/subgraphs/builder-account/schema.d.ts +0 -2
- package/dist/subgraphs/builder-account/schema.js +0 -267
- package/dist/subgraphs/renown-profile/index.d.ts +0 -10
- package/dist/subgraphs/renown-profile/index.js +0 -11
- package/dist/subgraphs/renown-profile/resolvers.d.ts +0 -2
- package/dist/subgraphs/renown-profile/resolvers.js +0 -151
- package/dist/subgraphs/renown-profile/schema.d.ts +0 -2
- package/dist/subgraphs/renown-profile/schema.js +0 -104
- package/dist/subgraphs/renown-read-model/index.d.ts +0 -10
- package/dist/subgraphs/renown-read-model/index.js +0 -11
- package/dist/subgraphs/renown-read-model/resolvers.d.ts +0 -2
- package/dist/subgraphs/renown-read-model/resolvers.js +0 -25
- package/dist/subgraphs/renown-read-model/schema.d.ts +0 -2
- package/dist/subgraphs/renown-read-model/schema.js +0 -16
- package/dist/subgraphs/vetra/index.d.ts +0 -10
- package/dist/subgraphs/vetra/index.js +0 -11
- package/dist/subgraphs/vetra/resolvers.d.ts +0 -2
- package/dist/subgraphs/vetra/resolvers.js +0 -10
- package/dist/subgraphs/vetra/schema.d.ts +0 -2
- package/dist/subgraphs/vetra/schema.js +0 -9
- package/dist/subgraphs/vetra-builder-read-model/index.d.ts +0 -10
- package/dist/subgraphs/vetra-builder-read-model/index.js +0 -11
- package/dist/subgraphs/vetra-builder-read-model/resolvers.d.ts +0 -2
- package/dist/subgraphs/vetra-builder-read-model/resolvers.js +0 -174
- package/dist/subgraphs/vetra-builder-read-model/schema.d.ts +0 -2
- package/dist/subgraphs/vetra-builder-read-model/schema.js +0 -79
- package/dist/subgraphs/vetra-builders-bkp/index.d.ts +0 -10
- package/dist/subgraphs/vetra-builders-bkp/index.js +0 -11
- package/dist/subgraphs/vetra-builders-bkp/resolvers.d.ts +0 -2
- package/dist/subgraphs/vetra-builders-bkp/resolvers.js +0 -10
- package/dist/subgraphs/vetra-builders-bkp/schema.d.ts +0 -2
- package/dist/subgraphs/vetra-builders-bkp/schema.js +0 -9
- package/dist/subgraphs/vetra-package/index.d.ts +0 -10
- package/dist/subgraphs/vetra-package/index.js +0 -11
- package/dist/subgraphs/vetra-package/resolvers.d.ts +0 -2
- package/dist/subgraphs/vetra-package/resolvers.js +0 -168
- package/dist/subgraphs/vetra-package/schema.d.ts +0 -2
- package/dist/subgraphs/vetra-package/schema.js +0 -123
- package/dist/subgraphs/vetra-read-model/index.d.ts +0 -10
- package/dist/subgraphs/vetra-read-model/index.js +0 -11
- package/dist/subgraphs/vetra-read-model/resolvers.d.ts +0 -2
- package/dist/subgraphs/vetra-read-model/resolvers.js +0 -174
- package/dist/subgraphs/vetra-read-model/schema.d.ts +0 -2
- package/dist/subgraphs/vetra-read-model/schema.js +0 -79
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useSelectedDocument } from "@powerhousedao/reactor-browser";
|
|
3
|
-
import { useCallback, useState } from "react";
|
|
4
|
-
import { actions, } from "../../document-models/builder-account/index.js";
|
|
5
|
-
import { Form, StringField, UrlField, Button } from "@powerhousedao/document-engineering";
|
|
6
|
-
export default function Editor(props) {
|
|
7
|
-
const [document, dispatch] = useSelectedDocument();
|
|
8
|
-
const typedDocument = document;
|
|
9
|
-
// Local form state
|
|
10
|
-
const [isEditingProfile, setIsEditingProfile] = useState(false);
|
|
11
|
-
const [isAddingSpace, setIsAddingSpace] = useState(false);
|
|
12
|
-
const [isAddingPackage, setIsAddingPackage] = useState(false);
|
|
13
|
-
const [editingSpaceId, setEditingSpaceId] = useState(null);
|
|
14
|
-
const [editingPackageId, setEditingPackageId] = useState(null);
|
|
15
|
-
// Form states
|
|
16
|
-
const [newSpaceTitle, setNewSpaceTitle] = useState("");
|
|
17
|
-
const [newSpaceDescription, setNewSpaceDescription] = useState("");
|
|
18
|
-
const [newPackageName, setNewPackageName] = useState("");
|
|
19
|
-
const [newPackageDescription, setNewPackageDescription] = useState("");
|
|
20
|
-
const [newPackageCategory, setNewPackageCategory] = useState("");
|
|
21
|
-
const [newPackageGithub, setNewPackageGithub] = useState("");
|
|
22
|
-
const [newPackageNpm, setNewPackageNpm] = useState("");
|
|
23
|
-
const [newPackageVetraDrive, setNewPackageVetraDrive] = useState("");
|
|
24
|
-
const [newMemberAddress, setNewMemberAddress] = useState("");
|
|
25
|
-
const [selectedSpaceForPackage, setSelectedSpaceForPackage] = useState("");
|
|
26
|
-
// Editing form states
|
|
27
|
-
const [editingSpaceTitle, setEditingSpaceTitle] = useState("");
|
|
28
|
-
const [editingSpaceDescription, setEditingSpaceDescription] = useState("");
|
|
29
|
-
const [editingPackageName, setEditingPackageName] = useState("");
|
|
30
|
-
const [editingPackageDescription, setEditingPackageDescription] = useState("");
|
|
31
|
-
const [editingPackageCategory, setEditingPackageCategory] = useState("");
|
|
32
|
-
const [editingPackageGithub, setEditingPackageGithub] = useState("");
|
|
33
|
-
const [editingPackageNpm, setEditingPackageNpm] = useState("");
|
|
34
|
-
const [editingPackageVetraDrive, setEditingPackageVetraDrive] = useState("");
|
|
35
|
-
const { state: { global } } = typedDocument;
|
|
36
|
-
const { profile, spaces, members } = global;
|
|
37
|
-
// Profile handlers
|
|
38
|
-
const handleSetProfileName = useCallback((name) => {
|
|
39
|
-
if (name.trim() && name !== profile.name) {
|
|
40
|
-
dispatch(actions.setProfileName({ name: name.trim() }));
|
|
41
|
-
}
|
|
42
|
-
}, [profile.name, dispatch]);
|
|
43
|
-
const handleSetSlug = useCallback((slug) => {
|
|
44
|
-
if (slug.trim() && slug !== profile.slug) {
|
|
45
|
-
dispatch(actions.setSlug({ slug: slug.trim() }));
|
|
46
|
-
}
|
|
47
|
-
}, [profile.slug, dispatch]);
|
|
48
|
-
const handleSetProfileDescription = useCallback((description) => {
|
|
49
|
-
if (description !== profile.description) {
|
|
50
|
-
dispatch(actions.setProfileDescription({ description: description.trim() || null }));
|
|
51
|
-
}
|
|
52
|
-
}, [profile.description, dispatch]);
|
|
53
|
-
const handleSetLogo = useCallback((logoUrl) => {
|
|
54
|
-
if (logoUrl.trim() && logoUrl !== profile.logo) {
|
|
55
|
-
dispatch(actions.setLogo({ logoUrl: logoUrl.trim() }));
|
|
56
|
-
}
|
|
57
|
-
}, [profile.logo, dispatch]);
|
|
58
|
-
const handleUpdateSocials = useCallback((socials) => {
|
|
59
|
-
dispatch(actions.updateSocials({
|
|
60
|
-
github: socials.github?.trim() || null,
|
|
61
|
-
website: socials.website?.trim() || null,
|
|
62
|
-
x: socials.x?.trim() || null,
|
|
63
|
-
}));
|
|
64
|
-
}, [dispatch]);
|
|
65
|
-
// Space handlers
|
|
66
|
-
const handleAddSpace = useCallback(() => {
|
|
67
|
-
if (newSpaceTitle.trim()) {
|
|
68
|
-
dispatch(actions.addSpace({
|
|
69
|
-
title: newSpaceTitle.trim(),
|
|
70
|
-
description: newSpaceDescription.trim() || null,
|
|
71
|
-
}));
|
|
72
|
-
setNewSpaceTitle("");
|
|
73
|
-
setNewSpaceDescription("");
|
|
74
|
-
setIsAddingSpace(false);
|
|
75
|
-
}
|
|
76
|
-
}, [newSpaceTitle, newSpaceDescription, dispatch]);
|
|
77
|
-
const handleDeleteSpace = useCallback((spaceId) => {
|
|
78
|
-
dispatch(actions.deleteSpace({ id: spaceId }));
|
|
79
|
-
}, [dispatch]);
|
|
80
|
-
const handleSetSpaceTitle = useCallback((spaceId, newTitle) => {
|
|
81
|
-
if (newTitle.trim()) {
|
|
82
|
-
dispatch(actions.setSpaceTitle({ id: spaceId, newTitle: newTitle.trim() }));
|
|
83
|
-
}
|
|
84
|
-
}, [dispatch]);
|
|
85
|
-
const handleSetSpaceDescription = useCallback((spaceId, description) => {
|
|
86
|
-
dispatch(actions.setSpaceDescription({ id: spaceId, description: description.trim() }));
|
|
87
|
-
}, [dispatch]);
|
|
88
|
-
const handleStartEditingSpace = useCallback((spaceId) => {
|
|
89
|
-
const space = spaces.find(s => s.id === spaceId);
|
|
90
|
-
if (space) {
|
|
91
|
-
setEditingSpaceId(spaceId);
|
|
92
|
-
setEditingSpaceTitle(space.title);
|
|
93
|
-
setEditingSpaceDescription(space.description || "");
|
|
94
|
-
}
|
|
95
|
-
}, [spaces]);
|
|
96
|
-
const handleSaveSpaceEdit = useCallback(() => {
|
|
97
|
-
if (editingSpaceId && editingSpaceTitle.trim()) {
|
|
98
|
-
handleSetSpaceTitle(editingSpaceId, editingSpaceTitle);
|
|
99
|
-
handleSetSpaceDescription(editingSpaceId, editingSpaceDescription);
|
|
100
|
-
setEditingSpaceId(null);
|
|
101
|
-
setEditingSpaceTitle("");
|
|
102
|
-
setEditingSpaceDescription("");
|
|
103
|
-
}
|
|
104
|
-
}, [editingSpaceId, editingSpaceTitle, editingSpaceDescription, handleSetSpaceTitle, handleSetSpaceDescription]);
|
|
105
|
-
const handleCancelSpaceEdit = useCallback(() => {
|
|
106
|
-
setEditingSpaceId(null);
|
|
107
|
-
setEditingSpaceTitle("");
|
|
108
|
-
setEditingSpaceDescription("");
|
|
109
|
-
}, []);
|
|
110
|
-
// Package handlers
|
|
111
|
-
const handleAddPackage = useCallback(() => {
|
|
112
|
-
if (newPackageName.trim() && selectedSpaceForPackage) {
|
|
113
|
-
dispatch(actions.addPackage({
|
|
114
|
-
name: newPackageName.trim(),
|
|
115
|
-
description: newPackageDescription.trim() || null,
|
|
116
|
-
category: newPackageCategory.trim() || null,
|
|
117
|
-
github: newPackageGithub.trim() || null,
|
|
118
|
-
npm: newPackageNpm.trim() || null,
|
|
119
|
-
vetraDriveUrl: newPackageVetraDrive.trim() || null,
|
|
120
|
-
spaceId: selectedSpaceForPackage,
|
|
121
|
-
author: {
|
|
122
|
-
name: profile.name,
|
|
123
|
-
website: profile.socials.website || null,
|
|
124
|
-
},
|
|
125
|
-
}));
|
|
126
|
-
setNewPackageName("");
|
|
127
|
-
setNewPackageDescription("");
|
|
128
|
-
setNewPackageCategory("");
|
|
129
|
-
setNewPackageGithub("");
|
|
130
|
-
setNewPackageNpm("");
|
|
131
|
-
setNewPackageVetraDrive("");
|
|
132
|
-
setSelectedSpaceForPackage("");
|
|
133
|
-
setIsAddingPackage(false);
|
|
134
|
-
}
|
|
135
|
-
}, [newPackageName, newPackageDescription, newPackageCategory, newPackageGithub, newPackageNpm, newPackageVetraDrive, selectedSpaceForPackage, profile, dispatch]);
|
|
136
|
-
const handleDeletePackage = useCallback((packageId) => {
|
|
137
|
-
dispatch(actions.deletePackage({ id: packageId }));
|
|
138
|
-
}, [dispatch]);
|
|
139
|
-
const handleStartEditingPackage = useCallback((packageId) => {
|
|
140
|
-
// Find the package across all spaces
|
|
141
|
-
for (const space of spaces) {
|
|
142
|
-
const pkg = space.packages.find(p => p.id === packageId);
|
|
143
|
-
if (pkg) {
|
|
144
|
-
setEditingPackageId(packageId);
|
|
145
|
-
setEditingPackageName(pkg.name);
|
|
146
|
-
setEditingPackageDescription(pkg.description || "");
|
|
147
|
-
setEditingPackageCategory(pkg.category || "");
|
|
148
|
-
setEditingPackageGithub(pkg.github || "");
|
|
149
|
-
setEditingPackageNpm(pkg.npm || "");
|
|
150
|
-
setEditingPackageVetraDrive(pkg.vetraDriveUrl || "");
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}, [spaces]);
|
|
155
|
-
const handleSavePackageEdit = useCallback(() => {
|
|
156
|
-
if (editingPackageId && editingPackageName.trim()) {
|
|
157
|
-
// Use the proper updatePackage action
|
|
158
|
-
dispatch(actions.updatePackage({
|
|
159
|
-
id: editingPackageId,
|
|
160
|
-
title: editingPackageName.trim(),
|
|
161
|
-
description: editingPackageDescription.trim() || null,
|
|
162
|
-
}));
|
|
163
|
-
setEditingPackageId(null);
|
|
164
|
-
setEditingPackageName("");
|
|
165
|
-
setEditingPackageDescription("");
|
|
166
|
-
setEditingPackageCategory("");
|
|
167
|
-
setEditingPackageGithub("");
|
|
168
|
-
setEditingPackageNpm("");
|
|
169
|
-
setEditingPackageVetraDrive("");
|
|
170
|
-
}
|
|
171
|
-
}, [editingPackageId, editingPackageName, editingPackageDescription, dispatch]);
|
|
172
|
-
const handleCancelPackageEdit = useCallback(() => {
|
|
173
|
-
setEditingPackageId(null);
|
|
174
|
-
setEditingPackageName("");
|
|
175
|
-
setEditingPackageDescription("");
|
|
176
|
-
setEditingPackageCategory("");
|
|
177
|
-
setEditingPackageGithub("");
|
|
178
|
-
setEditingPackageNpm("");
|
|
179
|
-
setEditingPackageVetraDrive("");
|
|
180
|
-
}, []);
|
|
181
|
-
// Member handlers
|
|
182
|
-
const handleAddMember = useCallback(() => {
|
|
183
|
-
if (newMemberAddress.trim()) {
|
|
184
|
-
dispatch(actions.addMember({ ethAddress: newMemberAddress.trim() }));
|
|
185
|
-
setNewMemberAddress("");
|
|
186
|
-
}
|
|
187
|
-
}, [newMemberAddress, dispatch]);
|
|
188
|
-
const handleRemoveMember = useCallback((ethAddress) => {
|
|
189
|
-
dispatch(actions.removeMember({ ethAddress }));
|
|
190
|
-
}, [dispatch]);
|
|
191
|
-
return (_jsxs("div", { className: "html-defaults-container min-h-screen bg-gray-50", children: [_jsx("div", { className: "bg-white shadow-sm border-b", children: _jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: _jsx("div", { className: "py-6", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center space-x-4", children: [_jsx("div", { className: "flex-shrink-0", children: profile.logo ? (_jsx("img", { className: "w-12 h-12 rounded-lg object-cover", src: profile.logo, alt: "Logo" })) : (_jsx("div", { className: "w-12 h-12 bg-blue-600 rounded-lg flex items-center justify-center", children: _jsx("svg", { className: "w-6 h-6 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) }) })) }), _jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: profile.name || "Builder Account" }), _jsx("p", { className: "text-sm text-gray-500", children: profile.slug ? `@${profile.slug}` : "Manage your builder profile and packages" })] })] }), _jsx("div", { className: "flex items-center space-x-3", children: _jsx(Button, { color: "light", onClick: () => setIsEditingProfile(!isEditingProfile), children: isEditingProfile ? "Cancel" : "Edit Profile" }) })] }) }) }) }), _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: [_jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsxs("div", { className: "px-6 py-4 border-b border-gray-200", children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "Profile Information" }), _jsx("p", { className: "text-sm text-gray-500", children: "Manage your builder profile details" })] }), _jsx("div", { className: "p-6", children: isEditingProfile ? (_jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-6", children: [_jsx(StringField, { name: "profileName", label: "Profile Name", value: profile.name, onChange: (e) => handleSetProfileName(e.target.value), placeholder: "Enter your profile name", description: "Your public display name" }), _jsx(StringField, { name: "slug", label: "Slug", value: profile.slug, onChange: (e) => handleSetSlug(e.target.value), placeholder: "your-slug", description: "Unique identifier for your profile (used in URLs)" }), _jsx(StringField, { name: "description", label: "Description", value: profile.description || "", onChange: (e) => handleSetProfileDescription(e.target.value), placeholder: "Tell us about yourself and your work", description: "Brief description of your work and interests" }), _jsx(UrlField, { name: "logo", label: "Logo URL", value: profile.logo || "", onChange: (e) => handleSetLogo(e.target.value), placeholder: "https://example.com/logo.png", description: "URL to your profile logo image" }), _jsxs("div", { className: "space-y-4", children: [_jsx("h3", { className: "text-md font-medium text-gray-900", children: "Social Links" }), _jsx(UrlField, { name: "github", label: "GitHub", value: profile.socials.github || "", onChange: (e) => handleUpdateSocials({ ...profile.socials, github: e.target.value }), placeholder: "https://github.com/username" }), _jsx(UrlField, { name: "website", label: "Website", value: profile.socials.website || "", onChange: (e) => handleUpdateSocials({ ...profile.socials, website: e.target.value }), placeholder: "https://your-website.com" }), _jsx(UrlField, { name: "x", label: "X (Twitter)", value: profile.socials.xProfile || "", onChange: (e) => handleUpdateSocials({ ...profile.socials, x: e.target.value }), placeholder: "https://x.com/username" })] }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: () => setIsEditingProfile(false), children: "Cancel" }), _jsx(Button, { onClick: () => setIsEditingProfile(false), children: "Save Changes" })] })] }) })) : (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700", children: "Name" }), _jsx("p", { className: "mt-1 text-sm text-gray-900", children: profile.name || "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700", children: "Slug" }), _jsx("p", { className: "mt-1 text-sm text-gray-900", children: profile.slug ? `@${profile.slug}` : "Not set" })] })] }), profile.description && (_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700", children: "Description" }), _jsx("p", { className: "mt-1 text-sm text-gray-900", children: profile.description })] })), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700", children: "Social Links" }), _jsxs("div", { className: "mt-2 flex space-x-4", children: [profile.socials.github && (_jsx("a", { href: profile.socials.github, target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 hover:text-blue-800", children: "GitHub" })), profile.socials.website && (_jsx("a", { href: profile.socials.website, target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 hover:text-blue-800", children: "Website" })), profile.socials.xProfile && (_jsx("a", { href: profile.socials.xProfile, target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 hover:text-blue-800", children: "X (Twitter)" })), !profile.socials.github && !profile.socials.website && !profile.socials.xProfile && (_jsx("span", { className: "text-gray-500 text-sm", children: "No social links added" }))] })] })] })) })] }), _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("div", { className: "p-4 bg-gray-50 rounded-lg", children: _jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-4", children: [_jsx(StringField, { name: "spaceTitle", label: "Space Title", value: newSpaceTitle, onChange: (e) => setNewSpaceTitle(e.target.value), placeholder: "Enter space title" }), _jsx(StringField, { name: "spaceDescription", label: "Description (optional)", value: newSpaceDescription, onChange: (e) => setNewSpaceDescription(e.target.value), placeholder: "Enter space description" }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: () => setIsAddingSpace(false), children: "Cancel" }), _jsx(Button, { onClick: handleAddSpace, disabled: !newSpaceTitle.trim(), children: "Add Space" })] })] }) }) })) : null, _jsx("div", { className: "space-y-4", children: spaces.length > 0 ? (spaces.map((space) => (_jsxs("div", { className: "border border-gray-200 rounded-lg p-4", children: [editingSpaceId === space.id ? (_jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-4", children: [_jsx(StringField, { name: "editingSpaceTitle", label: "Space Title", value: editingSpaceTitle, onChange: (e) => setEditingSpaceTitle(e.target.value), placeholder: "Enter space title" }), _jsx(StringField, { name: "editingSpaceDescription", label: "Description (optional)", value: editingSpaceDescription, onChange: (e) => setEditingSpaceDescription(e.target.value), placeholder: "Enter space description" }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: handleCancelSpaceEdit, children: "Cancel" }), _jsx(Button, { onClick: handleSaveSpaceEdit, disabled: !editingSpaceTitle.trim(), children: "Save Changes" })] })] }) })) : (_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: () => handleStartEditingSpace(space.id), children: "Edit" }), _jsx(Button, { color: "light", size: "sm", onClick: () => {
|
|
192
|
-
setSelectedSpaceForPackage(space.id);
|
|
193
|
-
setIsAddingPackage(true);
|
|
194
|
-
}, children: "Add Package" }), _jsx(Button, { color: "red", size: "sm", onClick: () => handleDeleteSpace(space.id), children: "Delete" })] })] })), space.packages.length > 0 && (_jsx("div", { className: "mt-4 space-y-2", children: space.packages.map((pkg) => (_jsx("div", { className: "p-3 bg-gray-50 rounded border", children: editingPackageId === pkg.id ? (_jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-3", children: [_jsx(StringField, { name: "editingPackageName", label: "Package Name", value: editingPackageName, onChange: (e) => setEditingPackageName(e.target.value), placeholder: "Enter package name" }), _jsx(StringField, { name: "editingPackageDescription", label: "Description", value: editingPackageDescription, onChange: (e) => setEditingPackageDescription(e.target.value), placeholder: "Enter package description" }), _jsx(StringField, { name: "editingPackageCategory", label: "Category", value: editingPackageCategory, onChange: (e) => setEditingPackageCategory(e.target.value), placeholder: "Enter package category" }), _jsx(UrlField, { name: "editingPackageGithub", label: "GitHub URL", value: editingPackageGithub, onChange: (e) => setEditingPackageGithub(e.target.value), placeholder: "https://github.com/username/repo" }), _jsx(UrlField, { name: "editingPackageNpm", label: "NPM URL", value: editingPackageNpm, onChange: (e) => setEditingPackageNpm(e.target.value), placeholder: "https://www.npmjs.com/package/package-name" }), _jsx(UrlField, { name: "editingPackageVetraDrive", label: "Vetra Drive URL", value: editingPackageVetraDrive, onChange: (e) => setEditingPackageVetraDrive(e.target.value), placeholder: "https://vetra.to/drive/..." }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: handleCancelPackageEdit, children: "Cancel" }), _jsx(Button, { onClick: handleSavePackageEdit, disabled: !editingPackageName.trim(), children: "Save Changes" })] })] }) })) : (_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("span", { className: "font-medium text-gray-900", children: pkg.name }), pkg.description && (_jsx("p", { className: "text-sm text-gray-500", children: pkg.description })), pkg.category && (_jsxs("p", { className: "text-xs text-gray-400", children: ["Category: ", pkg.category] })), pkg.vetraDriveUrl && (_jsx("p", { className: "text-xs text-blue-600", children: _jsx("a", { href: pkg.vetraDriveUrl, target: "_blank", rel: "noopener noreferrer", className: "hover:underline", children: "Vetra Drive" }) }))] }), _jsxs("div", { className: "flex space-x-2", children: [_jsx(Button, { color: "light", size: "sm", onClick: () => handleStartEditingPackage(pkg.id), children: "Edit" }), _jsx(Button, { color: "red", size: "sm", onClick: () => handleDeletePackage(pkg.id), children: "Remove" })] })] })) }, pkg.id))) }))] }, 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." }) })) })] })] }), isAddingPackage && (_jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200", children: _jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "Add Package" }) }), _jsx("div", { className: "p-6", children: _jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-4", children: [_jsx(StringField, { name: "packageName", label: "Package Name", value: newPackageName, onChange: (e) => setNewPackageName(e.target.value), placeholder: "Enter package name" }), _jsx(StringField, { name: "packageDescription", label: "Description", value: newPackageDescription, onChange: (e) => setNewPackageDescription(e.target.value), placeholder: "Enter package description" }), _jsx(StringField, { name: "packageCategory", label: "Category", value: newPackageCategory, onChange: (e) => setNewPackageCategory(e.target.value), placeholder: "Enter package category" }), _jsx(UrlField, { name: "packageGithub", label: "GitHub URL", value: newPackageGithub, onChange: (e) => setNewPackageGithub(e.target.value), placeholder: "https://github.com/username/repo" }), _jsx(UrlField, { name: "packageNpm", label: "NPM URL", value: newPackageNpm, onChange: (e) => setNewPackageNpm(e.target.value), placeholder: "https://www.npmjs.com/package/package-name" }), _jsx(UrlField, { name: "packageVetraDrive", label: "Vetra Drive URL", value: newPackageVetraDrive, onChange: (e) => setNewPackageVetraDrive(e.target.value), placeholder: "https://vetra.to/drive/..." }), _jsxs("div", { className: "flex justify-end space-x-3", children: [_jsx(Button, { color: "light", onClick: () => setIsAddingPackage(false), children: "Cancel" }), _jsx(Button, { onClick: handleAddPackage, disabled: !newPackageName.trim() || !selectedSpaceForPackage, children: "Add Package" })] })] }) }) })] }))] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsxs("div", { className: "px-6 py-4 border-b border-gray-200", children: [_jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Team Members" }), _jsx("p", { className: "text-sm text-gray-500", children: "Manage team access" })] }), _jsx("div", { className: "p-6", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex space-x-2", children: [_jsx("input", { type: "text", value: newMemberAddress, onChange: (e) => setNewMemberAddress(e.target.value), placeholder: "0x...", className: "flex-1 px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" }), _jsx(Button, { onClick: handleAddMember, disabled: !newMemberAddress.trim(), children: "Add" })] }), _jsx("div", { className: "space-y-2", children: members.length > 0 ? (members.map((address, index) => (_jsxs("div", { className: "flex items-center justify-between p-2 bg-gray-50 rounded border", children: [_jsx("span", { className: "text-sm font-mono text-gray-700 truncate", children: address }), _jsx(Button, { color: "red", size: "sm", onClick: () => handleRemoveMember(address), children: "Remove" })] }, index)))) : (_jsx("p", { className: "text-sm text-gray-500", children: "No team members added yet" })) })] }) })] }), _jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200", children: _jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Quick Stats" }) }), _jsx("div", { className: "p-6", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-gray-500", children: "Spaces" }), _jsx("span", { className: "text-sm font-medium text-gray-900", children: spaces.length })] }), _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-gray-500", children: "Total Packages" }), _jsx("span", { className: "text-sm font-medium text-gray-900", children: spaces.reduce((total, space) => total + space.packages.length, 0) })] }), _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-gray-500", children: "Team Members" }), _jsx("span", { className: "text-sm font-medium text-gray-900", children: members.length })] })] }) })] })] })] }) })] }));
|
|
195
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import Editor from "./editor.js";
|
|
2
|
-
export const module = {
|
|
3
|
-
Component: Editor,
|
|
4
|
-
documentTypes: ["powerhouse/vetra/builder-account"],
|
|
5
|
-
config: {
|
|
6
|
-
id: "builder-account-editor-id",
|
|
7
|
-
disableExternalControls: true,
|
|
8
|
-
documentToolbarEnabled: true,
|
|
9
|
-
showSwitchboardLink: true,
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
export default module;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { RenownProfileAction, RenownProfileDocument } from "../../document-models/renown-profile/index.js";
|
|
2
|
-
export declare function useRenownProfileDocument(documentId: string | null | undefined): never[] | [RenownProfileDocument, import("@powerhousedao/reactor-browser").DocumentDispatch<RenownProfileAction>];
|
|
3
|
-
export declare function useSelectedRenownProfileDocument(): never[] | [RenownProfileDocument, import("@powerhousedao/reactor-browser").DocumentDispatch<RenownProfileAction>];
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { useDocumentOfType, useSelectedDocumentId, } from "@powerhousedao/reactor-browser";
|
|
2
|
-
export function useRenownProfileDocument(documentId) {
|
|
3
|
-
return useDocumentOfType(documentId, "powerhouse/renown-profile");
|
|
4
|
-
}
|
|
5
|
-
export function useSelectedRenownProfileDocument() {
|
|
6
|
-
const selectedDocumentId = useSelectedDocumentId();
|
|
7
|
-
return useRenownProfileDocument(selectedDocumentId);
|
|
8
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useSelectedDocument } from "@powerhousedao/reactor-browser";
|
|
3
|
-
import { useCallback, useState } from "react";
|
|
4
|
-
import { actions, } from "../../document-models/renown-profile/index.js";
|
|
5
|
-
import { Form, StringField, UrlField, Button } from "@powerhousedao/document-engineering";
|
|
6
|
-
export default function Editor(props) {
|
|
7
|
-
const [document, dispatch] = useSelectedDocument();
|
|
8
|
-
if (!document) {
|
|
9
|
-
return _jsx("div", { children: "Loading..." });
|
|
10
|
-
}
|
|
11
|
-
const typedDocument = document;
|
|
12
|
-
// Local form state
|
|
13
|
-
const [isEditingProfile, setIsEditingProfile] = useState(false);
|
|
14
|
-
const { state: { global } } = typedDocument;
|
|
15
|
-
const { username, ethAddress, userImage } = global;
|
|
16
|
-
// Profile handlers
|
|
17
|
-
const handleSetUsername = useCallback((newUsername) => {
|
|
18
|
-
if (newUsername.trim() && newUsername !== username) {
|
|
19
|
-
dispatch(actions.setUsername({ username: newUsername.trim() }));
|
|
20
|
-
}
|
|
21
|
-
}, [username, dispatch]);
|
|
22
|
-
const handleSetEthAddress = useCallback((address) => {
|
|
23
|
-
if (address.trim() && address !== ethAddress) {
|
|
24
|
-
dispatch(actions.setEthAddress({ ethAddress: address.trim() }));
|
|
25
|
-
}
|
|
26
|
-
}, [ethAddress, dispatch]);
|
|
27
|
-
const handleSetUserImage = useCallback((imageUrl) => {
|
|
28
|
-
if (imageUrl !== userImage) {
|
|
29
|
-
dispatch(actions.setUserImage({ userImage: imageUrl.trim() || null }));
|
|
30
|
-
}
|
|
31
|
-
}, [userImage, dispatch]);
|
|
32
|
-
return (_jsxs("div", { className: "html-defaults-container min-h-screen bg-gray-50", children: [_jsx("div", { className: "bg-white shadow-sm border-b", children: _jsx("div", { className: "max-w-5xl mx-auto px-4 sm:px-6 lg:px-8", children: _jsx("div", { className: "py-6", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center space-x-4", children: [_jsx("div", { className: "flex-shrink-0", children: userImage ? (_jsx("img", { className: "w-16 h-16 rounded-full object-cover border-2 border-blue-500", src: userImage, alt: username || "User" })) : (_jsx("div", { className: "w-16 h-16 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center", children: _jsx("svg", { className: "w-8 h-8 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) }) })) }), _jsxs("div", { children: [_jsx("h1", { className: "text-3xl font-bold text-gray-900", children: username || "Renown Profile" }), _jsx("p", { className: "text-sm text-gray-500 font-mono", children: ethAddress || "No Ethereum address set" })] })] }), _jsx("div", { className: "flex items-center space-x-3", children: _jsx(Button, { color: "light", onClick: () => setIsEditingProfile(!isEditingProfile), children: isEditingProfile ? "Cancel" : "Edit Profile" }) })] }) }) }) }), _jsx("div", { className: "max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8", children: _jsxs("div", { className: "grid grid-cols-1 gap-8", children: [_jsxs("div", { className: "bg-white rounded-lg shadow-sm border", children: [_jsxs("div", { className: "px-6 py-4 border-b border-gray-200", children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "Profile Information" }), _jsx("p", { className: "text-sm text-gray-500", children: "Manage your renown profile details" })] }), _jsx("div", { className: "p-6", children: isEditingProfile ? (_jsx(Form, { onSubmit: (e) => e.preventDefault(), children: _jsxs("div", { className: "space-y-6", children: [_jsx(StringField, { name: "username", label: "Username", value: username || "", onChange: (e) => handleSetUsername(e.target.value), placeholder: "Enter your username", description: "Your display name on the platform" }), _jsx(StringField, { name: "ethAddress", label: "Ethereum Address", value: ethAddress || "", onChange: (e) => handleSetEthAddress(e.target.value), placeholder: "0x...", description: "Your Ethereum wallet address" }), _jsx(UrlField, { name: "userImage", label: "Profile Image URL", value: userImage || "", onChange: (e) => handleSetUserImage(e.target.value), placeholder: "https://example.com/avatar.png", description: "URL to your profile image" }), _jsxs("div", { className: "flex justify-end space-x-3 pt-4 border-t", children: [_jsx(Button, { color: "light", onClick: () => setIsEditingProfile(false), children: "Cancel" }), _jsx(Button, { onClick: () => setIsEditingProfile(false), children: "Save Changes" })] })] }) })) : (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Username" }), _jsx("div", { className: "flex items-center", children: _jsx("p", { className: "text-base text-gray-900", children: username || _jsx("span", { className: "text-gray-400 italic", children: "Not set" }) }) })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Ethereum Address" }), _jsx("div", { className: "flex items-center", children: _jsx("p", { className: "text-sm font-mono text-gray-900 break-all", children: ethAddress || _jsx("span", { className: "text-gray-400 italic", children: "Not set" }) }) })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Profile Image" }), userImage ? (_jsxs("div", { className: "flex items-center space-x-4", children: [_jsx("img", { src: userImage, alt: "Profile", className: "w-20 h-20 rounded-lg object-cover border border-gray-200" }), _jsx("div", { className: "flex-1", children: _jsx("a", { href: userImage, target: "_blank", rel: "noopener noreferrer", className: "text-sm text-blue-600 hover:text-blue-800 hover:underline break-all", children: userImage }) })] })) : (_jsx("p", { className: "text-gray-400 italic", children: "No image set" }))] }), _jsx("div", { className: "pt-4 border-t", children: _jsx(Button, { onClick: () => setIsEditingProfile(true), children: "Edit Profile" }) })] })) })] }), _jsxs("div", { className: "bg-gradient-to-br from-blue-50 to-purple-50 rounded-lg shadow-sm border border-blue-100", children: [_jsx("div", { className: "px-6 py-4 border-b border-blue-100", children: _jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Profile Summary" }) }), _jsx("div", { className: "p-6", children: _jsxs("div", { className: "flex items-center space-x-6", children: [_jsx("div", { className: "flex-shrink-0", children: userImage ? (_jsx("img", { src: userImage, alt: username || "User", className: "w-24 h-24 rounded-full object-cover border-4 border-white shadow-lg" })) : (_jsx("div", { className: "w-24 h-24 bg-gradient-to-br from-blue-400 to-purple-500 rounded-full flex items-center justify-center shadow-lg", children: _jsx("span", { className: "text-3xl text-white font-bold", children: username ? username.charAt(0).toUpperCase() : "?" }) })) }), _jsxs("div", { className: "flex-1", children: [_jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-2", children: username || "Anonymous User" }), ethAddress && (_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("svg", { className: "w-5 h-5 text-gray-500", fill: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { d: "M11.944 17.97L4.58 13.62 11.943 24l7.37-10.38-7.372 4.35h.003zM12.056 0L4.69 12.223l7.365 4.354 7.365-4.35L12.056 0z" }) }), _jsx("span", { className: "text-sm font-mono text-gray-600", children: ethAddress })] })), !username && !ethAddress && (_jsx("p", { className: "text-gray-500 italic", children: "No profile information available. Click \"Edit Profile\" to get started." }))] })] }) })] })] }) })] }));
|
|
33
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import Editor from "./editor.js";
|
|
2
|
-
export const module = {
|
|
3
|
-
Component: Editor,
|
|
4
|
-
documentTypes: ["powerhouse/renown-profile"],
|
|
5
|
-
config: {
|
|
6
|
-
id: "renown-profile-editor",
|
|
7
|
-
disableExternalControls: true,
|
|
8
|
-
documentToolbarEnabled: true,
|
|
9
|
-
showSwitchboardLink: true,
|
|
10
|
-
},
|
|
11
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
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[]>;
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { RelationalDbProcessor } from "document-drive/processors/relational";
|
|
2
|
-
import { up } from "./migrations.js";
|
|
3
|
-
export class VetraBuilderRelationalDbProcessorProcessor extends RelationalDbProcessor {
|
|
4
|
-
static getNamespace(driveId) {
|
|
5
|
-
// Default namespace: `${this.name}_${driveId.replaceAll("-", "_")}`
|
|
6
|
-
return super.getNamespace(driveId);
|
|
7
|
-
}
|
|
8
|
-
async initAndUpgrade() {
|
|
9
|
-
await up(this.relationalDb);
|
|
10
|
-
}
|
|
11
|
-
async onStrands(strands) {
|
|
12
|
-
if (strands.length === 0) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
for (const strand of strands) {
|
|
16
|
-
if (strand.operations.length === 0) {
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
for (const operation of strand.operations) {
|
|
20
|
-
await this.relationalDb
|
|
21
|
-
.insertInto("todo")
|
|
22
|
-
.values({
|
|
23
|
-
task: `${strand.documentId}-${operation.index}: ${operation.action.type}`,
|
|
24
|
-
status: true,
|
|
25
|
-
})
|
|
26
|
-
.onConflict((oc) => oc.column("task").doNothing())
|
|
27
|
-
.execute();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async onDisconnect() { }
|
|
32
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export async function up(db) {
|
|
2
|
-
// Create table
|
|
3
|
-
await db.schema
|
|
4
|
-
.createTable("todo")
|
|
5
|
-
.addColumn("task", "varchar(255)")
|
|
6
|
-
.addColumn("status", "boolean")
|
|
7
|
-
.addPrimaryKeyConstraint("todo_pkey", ["task"])
|
|
8
|
-
.ifNotExists()
|
|
9
|
-
.execute();
|
|
10
|
-
}
|
|
11
|
-
export async function down(db) {
|
|
12
|
-
// drop table
|
|
13
|
-
await db.schema.dropTable("todo").execute();
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { type ProcessorRecord, type IProcessorHostModule } from "document-drive/processors/types";
|
|
2
|
-
import { type PHDocumentHeader } from "document-model";
|
|
3
|
-
export declare const renownProfileProcessorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => Promise<ProcessorRecord[]>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { RenownProfileProcessor } from "./index.js";
|
|
2
|
-
export const renownProfileProcessorFactory = (module) => async (driveHeader) => {
|
|
3
|
-
// Create a namespace for the processor and the provided drive id
|
|
4
|
-
const namespace = RenownProfileProcessor.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/renown-profile"],
|
|
12
|
-
scope: ["global"],
|
|
13
|
-
};
|
|
14
|
-
// Create the processor
|
|
15
|
-
const processor = new RenownProfileProcessor(namespace, filter, store);
|
|
16
|
-
return [
|
|
17
|
-
{
|
|
18
|
-
processor,
|
|
19
|
-
filter,
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
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 RenownProfileProcessor extends RelationalDbProcessor<DB> {
|
|
5
|
-
static getNamespace(driveId: string): string;
|
|
6
|
-
initAndUpgrade(): Promise<void>;
|
|
7
|
-
onStrands(strands: InternalTransmitterUpdate[]): Promise<void>;
|
|
8
|
-
onDisconnect(): Promise<void>;
|
|
9
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { RelationalDbProcessor } from "document-drive/processors/relational";
|
|
2
|
-
import { up } from "./migrations.js";
|
|
3
|
-
export class RenownProfileProcessor extends RelationalDbProcessor {
|
|
4
|
-
static getNamespace(driveId) {
|
|
5
|
-
// Default namespace: `${this.name}_${driveId.replaceAll("-", "_")}`
|
|
6
|
-
return super.getNamespace(driveId);
|
|
7
|
-
}
|
|
8
|
-
async initAndUpgrade() {
|
|
9
|
-
await up(this.relationalDb);
|
|
10
|
-
}
|
|
11
|
-
async onStrands(strands) {
|
|
12
|
-
if (strands.length === 0) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
for (const strand of strands) {
|
|
16
|
-
if (strand.operations.length === 0) {
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
const documentId = strand.documentId;
|
|
20
|
-
// Ensure the profile exists in the database
|
|
21
|
-
const existingProfile = await this.relationalDb
|
|
22
|
-
.selectFrom("renown_profile")
|
|
23
|
-
.select(["document_id"])
|
|
24
|
-
.where("document_id", "=", documentId)
|
|
25
|
-
.executeTakeFirst();
|
|
26
|
-
if (!existingProfile) {
|
|
27
|
-
// Create a new profile entry
|
|
28
|
-
await this.relationalDb
|
|
29
|
-
.insertInto("renown_profile")
|
|
30
|
-
.values({
|
|
31
|
-
document_id: documentId,
|
|
32
|
-
username: null,
|
|
33
|
-
eth_address: null,
|
|
34
|
-
user_image: null,
|
|
35
|
-
created_at: new Date(),
|
|
36
|
-
updated_at: new Date(),
|
|
37
|
-
})
|
|
38
|
-
.execute();
|
|
39
|
-
}
|
|
40
|
-
// Process each operation
|
|
41
|
-
for (const operation of strand.operations) {
|
|
42
|
-
// Update the profile based on the operation type
|
|
43
|
-
const updateData = {
|
|
44
|
-
updated_at: new Date(),
|
|
45
|
-
};
|
|
46
|
-
switch (operation.action.type) {
|
|
47
|
-
case "SET_USERNAME": {
|
|
48
|
-
const input = operation.action.input;
|
|
49
|
-
if (input?.username) {
|
|
50
|
-
updateData.username = input.username;
|
|
51
|
-
}
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
case "SET_ETH_ADDRESS": {
|
|
55
|
-
const input = operation.action.input;
|
|
56
|
-
if (input?.ethAddress) {
|
|
57
|
-
updateData.eth_address = input.ethAddress;
|
|
58
|
-
}
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
case "SET_USER_IMAGE": {
|
|
62
|
-
const input = operation.action.input;
|
|
63
|
-
if (input?.userImage !== undefined) {
|
|
64
|
-
updateData.user_image = input.userImage || null;
|
|
65
|
-
}
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Apply updates if there are any field changes
|
|
70
|
-
if (Object.keys(updateData).length > 1) {
|
|
71
|
-
await this.relationalDb
|
|
72
|
-
.updateTable("renown_profile")
|
|
73
|
-
.set(updateData)
|
|
74
|
-
.where("document_id", "=", documentId)
|
|
75
|
-
.execute();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
async onDisconnect() { }
|
|
81
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export async function up(db) {
|
|
2
|
-
await down(db);
|
|
3
|
-
// Create renown_profile table
|
|
4
|
-
await db.schema
|
|
5
|
-
.createTable("renown_profile")
|
|
6
|
-
.addColumn("document_id", "varchar(255)")
|
|
7
|
-
.addColumn("username", "varchar(255)")
|
|
8
|
-
.addColumn("eth_address", "varchar(42)")
|
|
9
|
-
.addColumn("user_image", "text")
|
|
10
|
-
.addColumn("created_at", "timestamp", (col) => col.defaultTo(db.fn("now")))
|
|
11
|
-
.addColumn("updated_at", "timestamp", (col) => col.defaultTo(db.fn("now")))
|
|
12
|
-
.addPrimaryKeyConstraint("renown_profile_pkey", ["document_id"])
|
|
13
|
-
.ifNotExists()
|
|
14
|
-
.execute();
|
|
15
|
-
// Create index on username for faster lookups
|
|
16
|
-
await db.schema
|
|
17
|
-
.createIndex("idx_renown_profile_username")
|
|
18
|
-
.on("renown_profile")
|
|
19
|
-
.column("username")
|
|
20
|
-
.ifNotExists()
|
|
21
|
-
.execute();
|
|
22
|
-
// Create index on eth_address for faster lookups
|
|
23
|
-
await db.schema
|
|
24
|
-
.createIndex("idx_renown_profile_eth_address")
|
|
25
|
-
.on("renown_profile")
|
|
26
|
-
.column("eth_address")
|
|
27
|
-
.ifNotExists()
|
|
28
|
-
.execute();
|
|
29
|
-
}
|
|
30
|
-
export async function down(db) {
|
|
31
|
-
// Drop indexes
|
|
32
|
-
await db.schema
|
|
33
|
-
.dropIndex("idx_renown_profile_eth_address")
|
|
34
|
-
.ifExists()
|
|
35
|
-
.execute();
|
|
36
|
-
await db.schema.dropIndex("idx_renown_profile_username").ifExists().execute();
|
|
37
|
-
// Drop tables
|
|
38
|
-
await db.schema.dropTable("renown_profile").ifExists().execute();
|
|
39
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ColumnType } from "kysely";
|
|
2
|
-
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U> ? ColumnType<S, I | undefined, U> : ColumnType<T, T | undefined, T>;
|
|
3
|
-
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
|
|
4
|
-
export interface RenownProfile {
|
|
5
|
-
created_at: Generated<Timestamp | null>;
|
|
6
|
-
document_id: string;
|
|
7
|
-
eth_address: string | null;
|
|
8
|
-
updated_at: Generated<Timestamp | null>;
|
|
9
|
-
user_image: string | null;
|
|
10
|
-
username: string | null;
|
|
11
|
-
}
|
|
12
|
-
export interface DB {
|
|
13
|
-
renown_profile: RenownProfile;
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|