@dxos/plugin-space 0.8.4-staging.60fe92afc8 → 0.9.1-main.c7dcc2e112
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/lib/neutral/{CollectionArticle-S3OF5KJ7.mjs → CollectionArticle-BMH7SZ7Q.mjs} +9 -12
- package/dist/lib/neutral/CollectionArticle-BMH7SZ7Q.mjs.map +7 -0
- package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs → CollectionSection-BLYTGOKH.mjs} +2 -2
- package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs.map → CollectionSection-BLYTGOKH.mjs.map} +3 -3
- package/dist/lib/neutral/{CreateObjectDialog-66R3K6I3.mjs → CreateObjectDialog-4VMOUKM7.mjs} +10 -10
- package/dist/lib/neutral/CreateObjectDialog-4VMOUKM7.mjs.map +7 -0
- package/dist/lib/neutral/{CreateSpaceDialog-CDGSEIJB.mjs → CreateSpaceDialog-WWNUTLVK.mjs} +6 -6
- package/dist/lib/neutral/CreateSpaceDialog-WWNUTLVK.mjs.map +7 -0
- package/dist/lib/neutral/{ImportSpaceDialog-7GKV4OTF.mjs → ImportSpaceDialog-CSSRTFAO.mjs} +4 -4
- package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs.map +7 -0
- package/dist/lib/neutral/{InlineSyncStatus-TBJKZCH7.mjs → InlineSyncStatus-UOUTAPCU.mjs} +4 -4
- package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs.map +7 -0
- package/dist/lib/neutral/{JoinDialog-SSFKRFTJ.mjs → JoinDialog-QZGNRJ4P.mjs} +16 -9
- package/dist/lib/neutral/JoinDialog-QZGNRJ4P.mjs.map +7 -0
- package/dist/lib/neutral/{MembersContainer-KMCQDWCS.mjs → MembersContainer-OWCAMBKS.mjs} +5 -5
- package/dist/lib/neutral/MembersContainer-OWCAMBKS.mjs.map +7 -0
- package/dist/lib/neutral/{MenuFooter-5JT7V5FZ.mjs → MenuFooter-QCNFUIAO.mjs} +6 -6
- package/dist/lib/neutral/MenuFooter-QCNFUIAO.mjs.map +7 -0
- package/dist/lib/neutral/{ObjectCardStack-IXNU3HEN.mjs → ObjectCardStack-DHVDRNRK.mjs} +4 -4
- package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs.map +7 -0
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs +102 -0
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs.map +7 -0
- package/dist/lib/neutral/{RelatedArticle-YDNGUDAJ.mjs → RelatedArticle-YRCRBIYU.mjs} +11 -9
- package/dist/lib/neutral/RelatedArticle-YRCRBIYU.mjs.map +7 -0
- package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs +96 -0
- package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs.map +7 -0
- package/dist/lib/neutral/{SchemaContainer-Q4BP6X2M.mjs → SchemaContainer-2NK5YB5O.mjs} +2 -2
- package/dist/lib/neutral/SchemaContainer-2NK5YB5O.mjs.map +7 -0
- package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs → SmallPresenceLive-L4H7WJOA.mjs} +2 -2
- package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs +78 -0
- package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs +83 -0
- package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs.map +7 -0
- package/dist/lib/neutral/SpacePlugin.mjs +1 -1
- package/dist/lib/neutral/SpacePlugin.node.mjs +4 -4
- package/dist/lib/neutral/SpacePlugin.node.mjs.map +3 -3
- package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs → SpacePresence-PDTEDHDE.mjs} +2 -2
- package/dist/lib/neutral/{SpaceSettings-YAHBOY5T.mjs → SpaceSettings-IVTCSLNT.mjs} +6 -6
- package/dist/lib/neutral/SpaceSettings-IVTCSLNT.mjs.map +7 -0
- package/dist/lib/neutral/{SpaceSettingsContainer-IB34TEOB.mjs → SpaceSettingsContainer-QAFQ4LWC.mjs} +8 -8
- package/dist/lib/neutral/SpaceSettingsContainer-QAFQ4LWC.mjs.map +7 -0
- package/dist/lib/neutral/{SyncStatus-CWOXWDDZ.mjs → SyncStatus-J7CHLO5O.mjs} +3 -3
- package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs.map +7 -0
- package/dist/lib/neutral/{add-object-QYOMCBJA.mjs → add-object-S64XELC3.mjs} +10 -10
- package/dist/lib/neutral/add-object-S64XELC3.mjs.map +7 -0
- package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs → add-relation-GWSE42BU.mjs} +3 -3
- package/dist/lib/neutral/{add-type-CZVKSEIW.mjs → add-type-C3KYE6PI.mjs} +3 -3
- package/dist/lib/neutral/{app-graph-builder-SQGCUCDO.mjs → app-graph-builder-TMAD2ZTH.mjs} +128 -71
- package/dist/lib/neutral/app-graph-builder-TMAD2ZTH.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +13 -15
- package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
- package/dist/lib/neutral/capabilities/node.mjs +2 -2
- package/dist/lib/neutral/{chunk-EEXRKYOD.mjs → chunk-2LTGSUGQ.mjs} +2 -2
- package/dist/lib/neutral/{chunk-EEXRKYOD.mjs.map → chunk-2LTGSUGQ.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-2RPQHHD7.mjs +17 -0
- package/dist/lib/neutral/chunk-2RPQHHD7.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs +46 -0
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-K34BPPQE.mjs → chunk-DSYEB2UN.mjs} +29 -17
- package/dist/lib/neutral/chunk-DSYEB2UN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-YY62663T.mjs → chunk-F2VJ6VBV.mjs} +3 -3
- package/dist/lib/neutral/chunk-F2VJ6VBV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-JHZGRYGS.mjs → chunk-G2KHP7FX.mjs} +2 -2
- package/dist/lib/neutral/{chunk-JHZGRYGS.mjs.map → chunk-G2KHP7FX.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-I5JXVBXX.mjs +8 -0
- package/dist/lib/neutral/{chunk-BBQR23DW.mjs → chunk-LY6XK5MV.mjs} +105 -128
- package/dist/lib/neutral/chunk-LY6XK5MV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-7WUJENBF.mjs → chunk-PSCIOT7Q.mjs} +4 -4
- package/dist/lib/neutral/chunk-PSCIOT7Q.mjs.map +7 -0
- package/dist/lib/neutral/{close-FGQN37PK.mjs → close-YZHFYPUN.mjs} +3 -3
- package/dist/lib/neutral/components/index.mjs +7 -7
- package/dist/lib/neutral/components/index.mjs.map +3 -3
- package/dist/lib/neutral/containers/index.mjs +23 -21
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-EPIFSRJA.mjs → create-XKU2W6QC.mjs} +6 -6
- package/dist/lib/neutral/create-XKU2W6QC.mjs.map +7 -0
- package/dist/lib/neutral/{delete-LIA5M3WI.mjs → delete-EFM7CAVO.mjs} +3 -3
- package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs → delete-field-ONAPFFO5.mjs} +3 -3
- package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs → duplicate-object-OJRPFV5I.mjs} +3 -3
- package/dist/lib/neutral/{export-space-VWJHVXWF.mjs → export-space-M5RNVUQX.mjs} +3 -3
- package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs → get-share-link-FUQBJPSQ.mjs} +4 -4
- package/dist/lib/neutral/hooks/index.mjs +16 -4
- package/dist/lib/neutral/hooks/index.mjs.map +3 -3
- package/dist/lib/neutral/{identity-created-57RML5XT.mjs → identity-created-QMV4DANW.mjs} +4 -4
- package/dist/lib/neutral/identity-created-QMV4DANW.mjs.map +7 -0
- package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs → import-space-L3AUIARM.mjs} +3 -3
- package/dist/lib/neutral/index.mjs +12 -6
- package/dist/lib/neutral/{join-Z5K4OAIG.mjs → join-VY3QYBU7.mjs} +4 -4
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/{migrate-G7I52UKD.mjs → migrate-WPUISBC4.mjs} +3 -3
- package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs → navigation-handler-IKXZGMII.mjs} +4 -4
- package/dist/lib/neutral/{navigation-resolver-IFVQRCGU.mjs → navigation-resolver-VBPGMFCE.mjs} +7 -7
- package/dist/lib/neutral/navigation-resolver-VBPGMFCE.mjs.map +7 -0
- package/dist/lib/neutral/{open-CPWVZSI4.mjs → open-RRYULTSY.mjs} +3 -3
- package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs → open-create-object-BRUVFZSY.mjs} +4 -4
- package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs → open-create-space-ARLQWW65.mjs} +4 -4
- package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs → open-import-space-65H57JXX.mjs} +4 -4
- package/dist/lib/neutral/{open-members-BEXOSSBS.mjs → open-members-677P6KD3.mjs} +6 -6
- package/dist/lib/neutral/open-members-677P6KD3.mjs.map +7 -0
- package/dist/lib/neutral/{open-settings-RHDBW2K5.mjs → open-settings-PRBSGO6D.mjs} +6 -6
- package/dist/lib/neutral/open-settings-PRBSGO6D.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +3 -3
- package/dist/lib/neutral/plugin.mjs +4 -4
- package/dist/lib/neutral/{react-root-2DJPZQT4.mjs → react-root-YLYRCSAZ.mjs} +2 -2
- package/dist/lib/neutral/{react-root-2DJPZQT4.mjs.map → react-root-YLYRCSAZ.mjs.map} +3 -3
- package/dist/lib/neutral/{react-surface-LYCTOQLY.mjs → react-surface-5EQ6X4CL.mjs} +48 -70
- package/dist/lib/neutral/react-surface-5EQ6X4CL.mjs.map +7 -0
- package/dist/lib/neutral/{remove-objects-OWDMA4IF.mjs → remove-objects-PWJJI36V.mjs} +5 -5
- package/dist/lib/neutral/remove-objects-PWJJI36V.mjs.map +7 -0
- package/dist/lib/neutral/{rename-SR6BBSPU.mjs → rename-4727PKI4.mjs} +8 -7
- package/dist/lib/neutral/rename-4727PKI4.mjs.map +7 -0
- package/dist/lib/neutral/{rename-object-5H6E5AOX.mjs → rename-object-FXUAB5FN.mjs} +8 -7
- package/dist/lib/neutral/rename-object-FXUAB5FN.mjs.map +7 -0
- package/dist/lib/neutral/{repair-PSYRVSJ6.mjs → repair-HMH476U3.mjs} +3 -3
- package/dist/lib/neutral/repair-HMH476U3.mjs.map +7 -0
- package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs → restore-field-3ICSIHGA.mjs} +3 -3
- package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs → restore-objects-V2BTEWN3.mjs} +3 -3
- package/dist/lib/neutral/{settings-Q32EQCHX.mjs → settings-5IBSYBVU.mjs} +3 -3
- package/dist/lib/neutral/{settings-Q32EQCHX.mjs.map → settings-5IBSYBVU.mjs.map} +3 -3
- package/dist/lib/neutral/{share-5Y4NZA75.mjs → share-ZOZPAUGI.mjs} +3 -3
- package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs → snapshot-ZC5PU55W.mjs} +3 -3
- package/dist/lib/neutral/{spaces-ready-GBF72QJH.mjs → spaces-ready-EXPCJD4N.mjs} +11 -11
- package/dist/lib/neutral/spaces-ready-EXPCJD4N.mjs.map +7 -0
- package/dist/lib/neutral/{state-DPBOZRAW.mjs → state-KMH2NUAL.mjs} +2 -2
- package/dist/lib/neutral/state-KMH2NUAL.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +1 -1
- package/dist/lib/neutral/translations.mjs +4 -2
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +9 -3
- package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs → undo-mappings-P43EAUGI.mjs} +5 -5
- package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs.map → undo-mappings-P43EAUGI.mjs.map} +3 -3
- package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs → wait-for-object-WURK2SLQ.mjs} +3 -3
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +12 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +0 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +13 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +10 -54
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +3 -33
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/commands/database/add.d.ts.map +1 -1
- package/dist/types/src/commands/queue/query.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts +20 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +1 -2
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +12 -0
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -0
- package/dist/types/src/containers/RenamePopover/index.d.ts +3 -0
- package/dist/types/src/containers/RenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts +15 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts +22 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeRecent/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +20 -0
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +20 -0
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +20 -0
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +3 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +28 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-object.d.ts.map +1 -1
- package/dist/types/src/operations/helpers.d.ts.map +1 -1
- package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
- package/dist/types/src/operations/rename-object.d.ts.map +1 -1
- package/dist/types/src/operations/rename.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +20 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +7 -1
- package/dist/types/src/types/form.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/surface.d.ts +26 -0
- package/dist/types/src/types/surface.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +7 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +35 -0
- package/package.json +51 -50
- package/src/SpacePlugin.test.ts +1 -1
- package/src/SpacePlugin.ts +1 -7
- package/src/capabilities/app-graph-builder/extensions/collections.ts +44 -24
- package/src/capabilities/app-graph-builder/extensions/companions.ts +3 -3
- package/src/capabilities/app-graph-builder/extensions/database.ts +17 -14
- package/src/capabilities/app-graph-builder/extensions/settings.ts +9 -9
- package/src/capabilities/app-graph-builder/extensions/shared.ts +5 -20
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +49 -26
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/navigation-resolver.ts +6 -13
- package/src/capabilities/react-root.tsx +1 -1
- package/src/capabilities/react-surface.tsx +58 -88
- package/src/capabilities/repair.ts +4 -2
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/spaces-ready.ts +8 -15
- package/src/capabilities/state.ts +1 -1
- package/src/capabilities/undo-mappings.ts +3 -3
- package/src/commands/database/add.ts +4 -2
- package/src/commands/queue/query.ts +4 -3
- package/src/components/AwaitingObject/AwaitingObject.tsx +1 -1
- package/src/components/CreateObjectPanel/CreateObjectPanel.tsx +2 -2
- package/src/components/ForeignKeys/ForeignKeys.tsx +1 -1
- package/src/components/SpaceSettings/SpaceSettings.tsx +3 -3
- package/src/constants.ts +5 -6
- package/src/containers/CollectionArticle/CollectionArticle.tsx +10 -6
- package/src/containers/CollectionSection/CollectionSection.tsx +1 -1
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -7
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -5
- package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +3 -3
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +3 -3
- package/src/containers/JoinDialog/JoinDialog.tsx +13 -11
- package/src/containers/MembersContainer/MembersContainer.tsx +5 -5
- package/src/containers/MenuFooter/MenuFooter.tsx +3 -3
- package/src/containers/ObjectCardStack/ObjectCardStack.tsx +3 -3
- package/src/containers/RecordArticle/RecordArticle.tsx +67 -8
- package/src/containers/RelatedArticle/RelatedArticle.tsx +17 -13
- package/src/containers/RenamePopover/RenamePopover.tsx +112 -0
- package/src/containers/RenamePopover/index.ts +6 -0
- package/src/containers/SchemaContainer/SchemaContainer.tsx +1 -1
- package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +100 -0
- package/src/containers/SpaceHomeArticle/index.ts +5 -0
- package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +101 -0
- package/src/containers/SpaceHomeRecent/index.ts +5 -0
- package/src/containers/SpacePresence/SpacePresence.tsx +1 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +7 -7
- package/src/containers/SyncStatus/SyncStatus.tsx +2 -2
- package/src/containers/index.ts +3 -2
- package/src/hooks/useInputSurfaceLookup.tsx +3 -2
- package/src/hooks/useRelatedObjects.ts +13 -1
- package/src/meta.ts +2 -27
- package/src/operations/add-object.ts +7 -14
- package/src/operations/create.ts +2 -2
- package/src/operations/definitions.ts +1 -1
- package/src/operations/helpers.ts +1 -1
- package/src/operations/open-members.ts +3 -3
- package/src/operations/open-settings.ts +3 -3
- package/src/operations/remove-objects.ts +3 -2
- package/src/operations/rename-object.ts +3 -2
- package/src/operations/rename.ts +3 -2
- package/src/translations.ts +3 -1
- package/src/types/capabilities.ts +8 -8
- package/src/types/events.ts +5 -5
- package/src/types/form.ts +5 -1
- package/src/types/index.ts +1 -0
- package/src/types/surface.ts +31 -0
- package/src/types/types.ts +9 -1
- package/src/util.ts +3 -3
- package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs.map +0 -7
- package/dist/lib/neutral/CreateObjectDialog-66R3K6I3.mjs.map +0 -7
- package/dist/lib/neutral/CreateSpaceDialog-CDGSEIJB.mjs.map +0 -7
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs +0 -59
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs.map +0 -7
- package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs.map +0 -7
- package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs.map +0 -7
- package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs.map +0 -7
- package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs.map +0 -7
- package/dist/lib/neutral/MenuFooter-5JT7V5FZ.mjs.map +0 -7
- package/dist/lib/neutral/ObjectCardStack-IXNU3HEN.mjs.map +0 -7
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs +0 -51
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs.map +0 -7
- package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs.map +0 -7
- package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs.map +0 -7
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs +0 -56
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettings-YAHBOY5T.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs.map +0 -7
- package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs.map +0 -7
- package/dist/lib/neutral/add-object-QYOMCBJA.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-SQGCUCDO.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs +0 -81
- package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs +0 -37
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7WUJENBF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-B7DBIARR.mjs +0 -8
- package/dist/lib/neutral/chunk-BBQR23DW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-F5MESIRH.mjs +0 -19
- package/dist/lib/neutral/chunk-F5MESIRH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-K34BPPQE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YY62663T.mjs.map +0 -7
- package/dist/lib/neutral/create-EPIFSRJA.mjs.map +0 -7
- package/dist/lib/neutral/identity-created-57RML5XT.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-IFVQRCGU.mjs.map +0 -7
- package/dist/lib/neutral/open-members-BEXOSSBS.mjs.map +0 -7
- package/dist/lib/neutral/open-settings-RHDBW2K5.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-LYCTOQLY.mjs.map +0 -7
- package/dist/lib/neutral/remove-objects-OWDMA4IF.mjs.map +0 -7
- package/dist/lib/neutral/rename-SR6BBSPU.mjs.map +0 -7
- package/dist/lib/neutral/rename-object-5H6E5AOX.mjs.map +0 -7
- package/dist/lib/neutral/repair-PSYRVSJ6.mjs.map +0 -7
- package/dist/lib/neutral/spaces-ready-GBF72QJH.mjs.map +0 -7
- package/dist/lib/neutral/state-DPBOZRAW.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -5
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts +0 -2
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +0 -2
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +0 -1
- package/src/capabilities/app-graph-serializer.ts +0 -85
- package/src/containers/EntityRenamePopover/EntityRenamePopover.tsx +0 -52
- package/src/containers/EntityRenamePopover/index.ts +0 -5
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +0 -54
- package/src/containers/SpaceRenamePopover/index.ts +0 -5
- /package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs.map → SmallPresenceLive-L4H7WJOA.mjs.map} +0 -0
- /package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs.map → SpacePresence-PDTEDHDE.mjs.map} +0 -0
- /package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs.map → add-relation-GWSE42BU.mjs.map} +0 -0
- /package/dist/lib/neutral/{add-type-CZVKSEIW.mjs.map → add-type-C3KYE6PI.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-B7DBIARR.mjs.map → chunk-I5JXVBXX.mjs.map} +0 -0
- /package/dist/lib/neutral/{close-FGQN37PK.mjs.map → close-YZHFYPUN.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-LIA5M3WI.mjs.map → delete-EFM7CAVO.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs.map → delete-field-ONAPFFO5.mjs.map} +0 -0
- /package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs.map → duplicate-object-OJRPFV5I.mjs.map} +0 -0
- /package/dist/lib/neutral/{export-space-VWJHVXWF.mjs.map → export-space-M5RNVUQX.mjs.map} +0 -0
- /package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs.map → get-share-link-FUQBJPSQ.mjs.map} +0 -0
- /package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs.map → import-space-L3AUIARM.mjs.map} +0 -0
- /package/dist/lib/neutral/{join-Z5K4OAIG.mjs.map → join-VY3QYBU7.mjs.map} +0 -0
- /package/dist/lib/neutral/{migrate-G7I52UKD.mjs.map → migrate-WPUISBC4.mjs.map} +0 -0
- /package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs.map → navigation-handler-IKXZGMII.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-CPWVZSI4.mjs.map → open-RRYULTSY.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs.map → open-create-object-BRUVFZSY.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs.map → open-create-space-ARLQWW65.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs.map → open-import-space-65H57JXX.mjs.map} +0 -0
- /package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs.map → restore-field-3ICSIHGA.mjs.map} +0 -0
- /package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs.map → restore-objects-V2BTEWN3.mjs.map} +0 -0
- /package/dist/lib/neutral/{share-5Y4NZA75.mjs.map → share-ZOZPAUGI.mjs.map} +0 -0
- /package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs.map → snapshot-ZC5PU55W.mjs.map} +0 -0
- /package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs.map → wait-for-object-WURK2SLQ.mjs.map} +0 -0
|
@@ -7,14 +7,7 @@ import * as Fiber from 'effect/Fiber';
|
|
|
7
7
|
import * as Option from 'effect/Option';
|
|
8
8
|
|
|
9
9
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
10
|
-
import {
|
|
11
|
-
AppCapabilities,
|
|
12
|
-
LayoutOperation,
|
|
13
|
-
RootCollectionAnnotation,
|
|
14
|
-
getSpacePath,
|
|
15
|
-
resolvePersonalSpace,
|
|
16
|
-
setPersonalSpace,
|
|
17
|
-
} from '@dxos/app-toolkit';
|
|
10
|
+
import { AppAnnotation, AppCapabilities, AppSpace, LayoutOperation, Paths } from '@dxos/app-toolkit';
|
|
18
11
|
import { SubscriptionList } from '@dxos/async';
|
|
19
12
|
import { Annotation, Collection, Filter, Obj, Type } from '@dxos/echo';
|
|
20
13
|
import { SPACE_ID_LENGTH, parseId } from '@dxos/keys';
|
|
@@ -67,13 +60,13 @@ export default Capability.makeModule(
|
|
|
67
60
|
yield* Effect.promise(() => personalSpace.waitUntilReady());
|
|
68
61
|
|
|
69
62
|
if (fromCredential) {
|
|
70
|
-
setPersonalSpace(personalSpace);
|
|
63
|
+
AppSpace.setPersonalSpace(personalSpace);
|
|
71
64
|
}
|
|
72
65
|
|
|
73
66
|
// Check if deck state indicates we should switch to default space.
|
|
74
67
|
const layout = registry.get(layoutAtom);
|
|
75
68
|
if (layout.workspace === 'default') {
|
|
76
|
-
yield* invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(personalSpace.id) });
|
|
69
|
+
yield* invoke(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(personalSpace.id) });
|
|
77
70
|
}
|
|
78
71
|
|
|
79
72
|
const queryResults = yield* Effect.promise(() =>
|
|
@@ -102,12 +95,12 @@ export default Capability.makeModule(
|
|
|
102
95
|
|
|
103
96
|
// Try to find the personal space now, or subscribe to find it later.
|
|
104
97
|
// Initialization is non-blocking so subscriptions wire immediately.
|
|
105
|
-
const resolved = resolvePersonalSpace(client);
|
|
98
|
+
const resolved = AppSpace.resolvePersonalSpace(client);
|
|
106
99
|
if (resolved) {
|
|
107
100
|
startPersonalSpaceInit(resolved.space, resolved);
|
|
108
101
|
} else {
|
|
109
102
|
const personalSpaceSub = client.spaces.subscribe(() => {
|
|
110
|
-
const resolved = resolvePersonalSpace(client);
|
|
103
|
+
const resolved = AppSpace.resolvePersonalSpace(client);
|
|
111
104
|
if (resolved) {
|
|
112
105
|
startPersonalSpaceInit(resolved.space, resolved);
|
|
113
106
|
}
|
|
@@ -158,7 +151,7 @@ export default Capability.makeModule(
|
|
|
158
151
|
// Cache space names.
|
|
159
152
|
const spaceNamesSub = client.spaces.subscribe(async (spaces) => {
|
|
160
153
|
// TODO(wittjosiah): Remove. This is a hack to be able to migrate the personal space properties.
|
|
161
|
-
const personalSpaceForMigration = resolvePersonalSpace(client);
|
|
154
|
+
const personalSpaceForMigration = AppSpace.resolvePersonalSpace(client);
|
|
162
155
|
if (
|
|
163
156
|
personalSpaceForMigration?.space &&
|
|
164
157
|
personalSpaceForMigration.space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION
|
|
@@ -169,11 +162,11 @@ export default Capability.makeModule(
|
|
|
169
162
|
spaces
|
|
170
163
|
.filter((space) => space.state.get() === SpaceState.SPACE_READY)
|
|
171
164
|
.forEach((space) => {
|
|
172
|
-
if (Option.isNone(Annotation.get(space.properties, RootCollectionAnnotation))) {
|
|
165
|
+
if (Option.isNone(Annotation.get(space.properties, AppAnnotation.RootCollectionAnnotation))) {
|
|
173
166
|
const legacyRef = (space.properties as any)[Type.getTypename(Collection.Collection)];
|
|
174
167
|
if (legacyRef) {
|
|
175
168
|
Obj.update(space.properties, (properties) => {
|
|
176
|
-
Annotation.set(properties, RootCollectionAnnotation, legacyRef);
|
|
169
|
+
Annotation.set(properties, AppAnnotation.RootCollectionAnnotation, legacyRef);
|
|
177
170
|
});
|
|
178
171
|
}
|
|
179
172
|
}
|
|
@@ -25,7 +25,7 @@ export default Capability.makeModule(
|
|
|
25
25
|
|
|
26
26
|
// Persisted state using KVS store.
|
|
27
27
|
const stateAtom = createKvsStore({
|
|
28
|
-
key: `${meta.
|
|
28
|
+
key: `${meta.profile.key}.state`,
|
|
29
29
|
schema: SpaceCapabilities.StateSchema,
|
|
30
30
|
defaultValue: () => ({ ...defaultSpaceState }),
|
|
31
31
|
});
|
|
@@ -30,7 +30,7 @@ export default Capability.makeModule(
|
|
|
30
30
|
props: output.props,
|
|
31
31
|
index: output.index,
|
|
32
32
|
}),
|
|
33
|
-
message: ['field-deleted.label', { ns: meta.
|
|
33
|
+
message: ['field-deleted.label', { ns: meta.profile.key }],
|
|
34
34
|
}),
|
|
35
35
|
UndoMapping.make({
|
|
36
36
|
operation: SpaceOperation.RemoveObjects,
|
|
@@ -44,8 +44,8 @@ export default Capability.makeModule(
|
|
|
44
44
|
message: (input, _output) => {
|
|
45
45
|
const ns = Entity.getTypename(input.objects[0]);
|
|
46
46
|
return ns && input.objects.length === 1
|
|
47
|
-
? ['object-deleted.label', { ns: [ns, meta.
|
|
48
|
-
: ['objects-deleted.label', { ns: meta.
|
|
47
|
+
? ['object-deleted.label', { ns: [ns, meta.profile.key] }]
|
|
48
|
+
: ['objects-deleted.label', { ns: meta.profile.key }];
|
|
49
49
|
},
|
|
50
50
|
}),
|
|
51
51
|
]),
|
|
@@ -11,7 +11,7 @@ import * as Effect from 'effect/Effect';
|
|
|
11
11
|
import * as Option from 'effect/Option';
|
|
12
12
|
|
|
13
13
|
import { type Capability, Plugin } from '@dxos/app-framework';
|
|
14
|
-
import { AppActivationEvents,
|
|
14
|
+
import { AppActivationEvents, AppAnnotation } from '@dxos/app-toolkit';
|
|
15
15
|
import { CommandConfig, Common, type SpaceNotFoundError, flushAndSync, print, spaceLayer } from '@dxos/cli-util';
|
|
16
16
|
import { type ClientService } from '@dxos/client';
|
|
17
17
|
import { SpaceProperties } from '@dxos/client/echo';
|
|
@@ -53,7 +53,9 @@ export const add: Command.Command<
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
const [properties] = yield* Database.query(Filter.type(SpaceProperties)).run;
|
|
56
|
-
const rootCollectionRef = Annotation.get(properties, RootCollectionAnnotation).pipe(
|
|
56
|
+
const rootCollectionRef = Annotation.get(properties, AppAnnotation.RootCollectionAnnotation).pipe(
|
|
57
|
+
Option.getOrUndefined,
|
|
58
|
+
);
|
|
57
59
|
const collection = rootCollectionRef ? yield* Database.load<Collection.Collection>(rootCollectionRef) : undefined;
|
|
58
60
|
|
|
59
61
|
const selectedTypename = yield* Option.match(typename, {
|
|
@@ -9,7 +9,7 @@ import * as Effect from 'effect/Effect';
|
|
|
9
9
|
|
|
10
10
|
import { CommandConfig, printList } from '@dxos/cli-util';
|
|
11
11
|
import { ClientService } from '@dxos/client';
|
|
12
|
-
import { Entity } from '@dxos/echo';
|
|
12
|
+
import { Entity, Filter, Query, Scope } from '@dxos/echo';
|
|
13
13
|
import { EID } from '@dxos/keys';
|
|
14
14
|
|
|
15
15
|
import { printQueueObject } from './util';
|
|
@@ -37,8 +37,9 @@ export const query = Command.make(
|
|
|
37
37
|
yield* Console.error(`Space not found: ${spaceId}`);
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
const
|
|
41
|
-
|
|
40
|
+
const objects = yield* Effect.promise(() =>
|
|
41
|
+
space.db.query(Query.select(Filter.everything()).from(Scope.feed(echoUri))).run(),
|
|
42
|
+
);
|
|
42
43
|
|
|
43
44
|
if (json) {
|
|
44
45
|
yield* Console.log(JSON.stringify(objects, null, 2));
|
|
@@ -20,7 +20,7 @@ const WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1_000;
|
|
|
20
20
|
const TOAST_TIMEOUT = 4 * 60 * 1_000;
|
|
21
21
|
|
|
22
22
|
export const AwaitingObject = ({ id }: { id: string }) => {
|
|
23
|
-
const { t } = useTranslation(meta.
|
|
23
|
+
const { t } = useTranslation(meta.profile.key);
|
|
24
24
|
const { invokePromise } = useOperationInvoker();
|
|
25
25
|
const [open, setOpen] = useState(true);
|
|
26
26
|
const [waiting, setWaiting] = useState(true);
|
|
@@ -149,7 +149,7 @@ type SelectTypeProps = Pick<CreateObjectPanelProps, 'options'> & {
|
|
|
149
149
|
};
|
|
150
150
|
|
|
151
151
|
const SelectType = ({ options, onChange }: SelectTypeProps) => {
|
|
152
|
-
const { t } = useTranslation(meta.
|
|
152
|
+
const { t } = useTranslation(meta.profile.key);
|
|
153
153
|
|
|
154
154
|
const { results, handleSearch } = useSearchListResults({
|
|
155
155
|
items: options,
|
|
@@ -197,7 +197,7 @@ type SelectSpaceProps = Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'
|
|
|
197
197
|
};
|
|
198
198
|
|
|
199
199
|
const SelectSpace = ({ spaces, defaultSpaceId, onChange }: SelectSpaceProps) => {
|
|
200
|
-
const { t } = useTranslation(meta.
|
|
200
|
+
const { t } = useTranslation(meta.profile.key);
|
|
201
201
|
|
|
202
202
|
const sortedSpaces = useMemo(
|
|
203
203
|
() =>
|
|
@@ -31,7 +31,7 @@ type KeyItemProps = {
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
const KeyItem = ({ forignKey, onDelete }: KeyItemProps) => {
|
|
34
|
-
const { t } = useTranslation(meta.
|
|
34
|
+
const { t } = useTranslation(meta.profile.key);
|
|
35
35
|
|
|
36
36
|
const handleDelete = useCallback(() => {
|
|
37
37
|
onDelete?.(forignKey);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { AppSpace } from '@dxos/app-toolkit';
|
|
8
8
|
import { type Space } from '@dxos/react-client/echo';
|
|
9
9
|
import { IconButton, Input, List, ListItem, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
10
10
|
import { Settings as SettingsForm } from '@dxos/react-ui-form';
|
|
@@ -19,7 +19,7 @@ export type SpaceSettingsProps = {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export const SpaceSettings = ({ spaces, onOpenSpaceSettings }: SpaceSettingsProps) => {
|
|
22
|
-
const { t } = useTranslation(meta.
|
|
22
|
+
const { t } = useTranslation(meta.profile.key);
|
|
23
23
|
|
|
24
24
|
return (
|
|
25
25
|
<SettingsForm.Viewport>
|
|
@@ -35,7 +35,7 @@ export const SpaceSettings = ({ spaces, onOpenSpaceSettings }: SpaceSettingsProp
|
|
|
35
35
|
<ListItem.Heading classNames='grow truncate min-h-0!'>
|
|
36
36
|
{toLocalizedString(
|
|
37
37
|
getSpaceDisplayName(space, {
|
|
38
|
-
personal: isPersonalSpace(space),
|
|
38
|
+
personal: AppSpace.isPersonalSpace(space),
|
|
39
39
|
}),
|
|
40
40
|
t,
|
|
41
41
|
)}
|
package/src/constants.ts
CHANGED
|
@@ -6,9 +6,8 @@ import { DXN } from '@dxos/keys';
|
|
|
6
6
|
|
|
7
7
|
import { meta } from '#meta';
|
|
8
8
|
|
|
9
|
-
export const CREATE_OBJECT_DIALOG = DXN.make(`${meta.
|
|
10
|
-
export const CREATE_SPACE_DIALOG = DXN.make(`${meta.
|
|
11
|
-
export const IMPORT_SPACE_DIALOG = DXN.make(`${meta.
|
|
12
|
-
export const JOIN_DIALOG = DXN.make(`${meta.
|
|
13
|
-
export const
|
|
14
|
-
export const SPACE_RENAME_POPOVER = DXN.make(`${meta.id}.spaceRenamePopover`);
|
|
9
|
+
export const CREATE_OBJECT_DIALOG = DXN.make(`${meta.profile.key}.createObjectDialog`);
|
|
10
|
+
export const CREATE_SPACE_DIALOG = DXN.make(`${meta.profile.key}.createSpaceDialog`);
|
|
11
|
+
export const IMPORT_SPACE_DIALOG = DXN.make(`${meta.profile.key}.importSpaceDialog`);
|
|
12
|
+
export const JOIN_DIALOG = DXN.make(`${meta.profile.key}.joinDialog`);
|
|
13
|
+
export const RENAME_POPOVER = DXN.make(`${meta.profile.key}.renamePopover`);
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
8
|
-
import { LayoutOperation,
|
|
8
|
+
import { LayoutOperation, Paths } from '@dxos/app-toolkit';
|
|
9
9
|
import { type AppSurface } from '@dxos/app-toolkit/ui';
|
|
10
10
|
import { type Collection, Obj } from '@dxos/echo';
|
|
11
11
|
import { ScrollArea, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
12
|
-
import { Card,
|
|
12
|
+
import { Card, Icon } from '@dxos/react-ui';
|
|
13
13
|
import { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';
|
|
14
14
|
import { SearchPanel, useSearchListResults } from '@dxos/react-ui-search';
|
|
15
15
|
import { getStyles } from '@dxos/ui-theme';
|
|
@@ -20,7 +20,7 @@ import { meta } from '#meta';
|
|
|
20
20
|
* Article view for collections.
|
|
21
21
|
*/
|
|
22
22
|
export const CollectionArticle = ({ subject, attendableId }: AppSurface.ObjectArticleProps<Collection.Collection>) => {
|
|
23
|
-
const { t } = useTranslation(meta.
|
|
23
|
+
const { t } = useTranslation(meta.profile.key);
|
|
24
24
|
const { items, handleSearch } = useCollectionItems(subject, attendableId);
|
|
25
25
|
|
|
26
26
|
return (
|
|
@@ -51,7 +51,7 @@ type ObjectItem = {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const ObjectTile: MosaicStackTileComponent<ObjectItem> = ({ data: item }) => {
|
|
54
|
-
const { t } = useTranslation(meta.
|
|
54
|
+
const { t } = useTranslation(meta.profile.key);
|
|
55
55
|
const { invokePromise } = useOperationInvoker();
|
|
56
56
|
|
|
57
57
|
const typename = Obj.getTypename(item.object) ?? '';
|
|
@@ -68,7 +68,9 @@ const ObjectTile: MosaicStackTileComponent<ObjectItem> = ({ data: item }) => {
|
|
|
68
68
|
return (
|
|
69
69
|
<Card.Root fullWidth role='button' classNames='cursor-pointer' onClick={handleClick}>
|
|
70
70
|
<Card.Header>
|
|
71
|
-
<
|
|
71
|
+
<Card.Block>
|
|
72
|
+
<Icon icon={item.icon} classNames={styles?.fg} />
|
|
73
|
+
</Card.Block>
|
|
72
74
|
<Card.Title>{label}</Card.Title>
|
|
73
75
|
<Card.Menu />
|
|
74
76
|
</Card.Header>
|
|
@@ -89,7 +91,9 @@ const useCollectionItems = (collection: Collection.Collection, attendableId?: st
|
|
|
89
91
|
() =>
|
|
90
92
|
objects.map((obj) => {
|
|
91
93
|
const iconAnnotation = Obj.getIcon(obj);
|
|
92
|
-
const targetPath = attendableId
|
|
94
|
+
const targetPath = attendableId
|
|
95
|
+
? Paths.getCollectionObjectPath(attendableId, obj.id)
|
|
96
|
+
: Paths.getObjectPathFromObject(obj);
|
|
93
97
|
|
|
94
98
|
return {
|
|
95
99
|
id: Obj.getURI(obj),
|
|
@@ -13,7 +13,7 @@ import { meta } from '#meta';
|
|
|
13
13
|
export type CollectionSectionProps = AppSurface.ObjectSectionProps<Collection.Collection>;
|
|
14
14
|
|
|
15
15
|
export const CollectionSection = ({ role, subject }: CollectionSectionProps) => {
|
|
16
|
-
const { t } = useTranslation(meta.
|
|
16
|
+
const { t } = useTranslation(meta.profile.key);
|
|
17
17
|
|
|
18
18
|
// TODO(wittjosiah): Better placeholder.
|
|
19
19
|
return (
|
|
@@ -9,7 +9,7 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
|
9
9
|
|
|
10
10
|
import { Capability } from '@dxos/app-framework';
|
|
11
11
|
import { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';
|
|
12
|
-
import {
|
|
12
|
+
import { AppSpace, LayoutOperation, TypeOptions } from '@dxos/app-toolkit';
|
|
13
13
|
import { PluginRegistryButton, useLayout } from '@dxos/app-toolkit/ui';
|
|
14
14
|
import { Operation } from '@dxos/compute';
|
|
15
15
|
import { Annotation, Collection, Database, Obj, Type } from '@dxos/echo';
|
|
@@ -27,7 +27,7 @@ import { SpaceCapabilities } from '#types';
|
|
|
27
27
|
|
|
28
28
|
import { getSpaceDisplayName } from '../../util';
|
|
29
29
|
|
|
30
|
-
export const CREATE_OBJECT_DIALOG = `${meta.
|
|
30
|
+
export const CREATE_OBJECT_DIALOG = `${meta.profile.key}.CreateObjectDialog`;
|
|
31
31
|
|
|
32
32
|
export type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'initialFormValues'> & {
|
|
33
33
|
views?: boolean;
|
|
@@ -45,7 +45,7 @@ export const CreateObjectDialog = ({
|
|
|
45
45
|
shouldNavigate: _shouldNavigate,
|
|
46
46
|
targetNodeId,
|
|
47
47
|
}: CreateObjectDialogProps) => {
|
|
48
|
-
const { t } = useTranslation(meta.
|
|
48
|
+
const { t } = useTranslation(meta.profile.key);
|
|
49
49
|
const manager = usePluginManager();
|
|
50
50
|
const operationInvoker = useOperationInvoker();
|
|
51
51
|
const { invoke } = operationInvoker;
|
|
@@ -57,12 +57,15 @@ export const CreateObjectDialog = ({
|
|
|
57
57
|
const closeRef = useRef<HTMLButtonElement | null>(null);
|
|
58
58
|
|
|
59
59
|
const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
|
|
60
|
-
const allTypes = useQuery(db, allTypesQuery);
|
|
60
|
+
const allTypes = useQuery(db, TypeOptions.allTypesQuery);
|
|
61
61
|
const space = useMemo(() => spaces.find((s) => s.db === db), [spaces, db]);
|
|
62
62
|
const spaceLabel = useMemo(
|
|
63
63
|
() =>
|
|
64
64
|
space &&
|
|
65
|
-
toLocalizedString(
|
|
65
|
+
toLocalizedString(
|
|
66
|
+
getSpaceDisplayName(space, { personal: space.id === AppSpace.getPersonalSpace(client)?.id }),
|
|
67
|
+
t,
|
|
68
|
+
),
|
|
66
69
|
[space, client, t],
|
|
67
70
|
);
|
|
68
71
|
|
|
@@ -86,7 +89,7 @@ export const CreateObjectDialog = ({
|
|
|
86
89
|
for (const entry of contributions) {
|
|
87
90
|
entries.push(entry);
|
|
88
91
|
if (owningPlugin) {
|
|
89
|
-
pluginByEntryId.set(entry.id, owningPlugin.meta.name);
|
|
92
|
+
pluginByEntryId.set(entry.id, owningPlugin.meta.profile.name);
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
95
|
}
|
|
@@ -205,7 +208,7 @@ export const CreateObjectDialog = ({
|
|
|
205
208
|
target={target}
|
|
206
209
|
typename={typename}
|
|
207
210
|
initialFormValues={initialFormValues}
|
|
208
|
-
defaultSpaceId={getPersonalSpace(client)?.id ?? client.spaces.get()[0]?.id}
|
|
211
|
+
defaultSpaceId={AppSpace.getPersonalSpace(client)?.id ?? client.spaces.get()[0]?.id}
|
|
209
212
|
resolve={resolve}
|
|
210
213
|
onCreateObject={handleCreateObject}
|
|
211
214
|
onTargetChange={setTarget}
|
|
@@ -7,7 +7,7 @@ import type * as Schema from 'effect/Schema';
|
|
|
7
7
|
import React, { useCallback, useRef } from 'react';
|
|
8
8
|
|
|
9
9
|
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
10
|
-
import { LayoutOperation,
|
|
10
|
+
import { LayoutOperation, Paths } from '@dxos/app-toolkit';
|
|
11
11
|
import { EffectEx } from '@dxos/effect';
|
|
12
12
|
import { Column, Dialog, useTranslation } from '@dxos/react-ui';
|
|
13
13
|
import { Form } from '@dxos/react-ui-form';
|
|
@@ -17,14 +17,14 @@ import { meta } from '#meta';
|
|
|
17
17
|
import { SpaceOperation } from '#operations';
|
|
18
18
|
import { SpaceForm } from '#types';
|
|
19
19
|
|
|
20
|
-
export const CREATE_SPACE_DIALOG = `${meta.
|
|
20
|
+
export const CREATE_SPACE_DIALOG = `${meta.profile.key}.CreateSpaceDialog`;
|
|
21
21
|
|
|
22
22
|
type FormValues = Schema.Schema.Type<typeof SpaceForm>;
|
|
23
23
|
const initialValues: FormValues = { edgeReplication: true };
|
|
24
24
|
|
|
25
25
|
export const CreateSpaceDialog = () => {
|
|
26
26
|
const closeRef = useRef<HTMLButtonElement | null>(null);
|
|
27
|
-
const { t } = useTranslation(meta.
|
|
27
|
+
const { t } = useTranslation(meta.profile.key);
|
|
28
28
|
const { invokePromise } = useOperationInvoker();
|
|
29
29
|
|
|
30
30
|
const inputSurfaceLookup = useInputSurfaceLookup();
|
|
@@ -36,8 +36,8 @@ export const CreateSpaceDialog = () => {
|
|
|
36
36
|
if (result?.space) {
|
|
37
37
|
yield* Effect.promise(() =>
|
|
38
38
|
invokePromise(LayoutOperation.Open, {
|
|
39
|
-
subject: [getSpaceHomePath(result.space.id)],
|
|
40
|
-
workspace: getSpacePath(result.space.id),
|
|
39
|
+
subject: [Paths.getSpaceHomePath(result.space.id)],
|
|
40
|
+
workspace: Paths.getSpacePath(result.space.id),
|
|
41
41
|
navigation: 'immediate',
|
|
42
42
|
}),
|
|
43
43
|
);
|
|
@@ -6,14 +6,14 @@ import React, { useCallback } from 'react';
|
|
|
6
6
|
import { FileUploader } from 'react-drag-drop-files';
|
|
7
7
|
|
|
8
8
|
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
9
|
-
import { LayoutOperation,
|
|
9
|
+
import { LayoutOperation, Paths } from '@dxos/app-toolkit';
|
|
10
10
|
import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
|
|
11
11
|
|
|
12
12
|
import { meta } from '#meta';
|
|
13
13
|
import { SpaceOperation } from '#operations';
|
|
14
14
|
|
|
15
15
|
export const ImportSpaceDialog = () => {
|
|
16
|
-
const { t } = useTranslation(meta.
|
|
16
|
+
const { t } = useTranslation(meta.profile.key);
|
|
17
17
|
const { invokePromise } = useOperationInvoker();
|
|
18
18
|
|
|
19
19
|
const handleFile = useCallback(
|
|
@@ -24,7 +24,7 @@ export const ImportSpaceDialog = () => {
|
|
|
24
24
|
});
|
|
25
25
|
await invokePromise(LayoutOperation.UpdateDialog, { state: false });
|
|
26
26
|
if (result?.space) {
|
|
27
|
-
await invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(result.space.id) });
|
|
27
|
+
await invokePromise(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(result.space.id) });
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
[invokePromise],
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { Paths } from '@dxos/app-toolkit';
|
|
8
8
|
import { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';
|
|
9
9
|
import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
|
|
10
10
|
import { useClient } from '@dxos/react-client';
|
|
@@ -27,8 +27,8 @@ const useEdgeStatus = (): EdgeStatus.ConnectionState => {
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
export const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {
|
|
30
|
-
const { t } = useTranslation(meta.
|
|
31
|
-
const qualifiedId = getSpacePath(space.id);
|
|
30
|
+
const { t } = useTranslation(meta.profile.key);
|
|
31
|
+
const qualifiedId = Paths.getSpacePath(space.id);
|
|
32
32
|
const { hasAttention, isAncestor, isRelated } = useAttention(qualifiedId);
|
|
33
33
|
const attended = hasAttention || isRelated;
|
|
34
34
|
const containsAttended = isAncestor && !open;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React, { useCallback } from 'react';
|
|
6
6
|
|
|
7
7
|
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
8
|
-
import { LayoutOperation,
|
|
8
|
+
import { LayoutOperation, Paths } from '@dxos/app-toolkit';
|
|
9
9
|
import { useAppGraph } from '@dxos/app-toolkit/ui';
|
|
10
10
|
import { Trigger } from '@dxos/async';
|
|
11
11
|
import { Graph } from '@dxos/plugin-graph';
|
|
@@ -19,7 +19,7 @@ import { osTranslations } from '@dxos/ui-theme';
|
|
|
19
19
|
|
|
20
20
|
import { meta } from '#meta';
|
|
21
21
|
|
|
22
|
-
export const JOIN_DIALOG = `${meta.
|
|
22
|
+
export const JOIN_DIALOG = `${meta.profile.key}.JoinDialog`;
|
|
23
23
|
|
|
24
24
|
export type JoinDialogProps = JoinPanelProps & {
|
|
25
25
|
navigableCollections?: boolean;
|
|
@@ -29,7 +29,7 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
|
|
|
29
29
|
const { invokePromise } = useOperationInvoker();
|
|
30
30
|
const client = useClient();
|
|
31
31
|
const { graph } = useAppGraph();
|
|
32
|
-
const { t } = useTranslation(meta.
|
|
32
|
+
const { t } = useTranslation(meta.profile.key);
|
|
33
33
|
|
|
34
34
|
const handleDone = useCallback(
|
|
35
35
|
async (result: InvitationResult | null) => {
|
|
@@ -40,10 +40,10 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
|
|
|
40
40
|
|
|
41
41
|
await Promise.all([
|
|
42
42
|
invokePromise(LayoutOperation.AddToast, {
|
|
43
|
-
id: `${meta.
|
|
43
|
+
id: `${meta.profile.key}.join-success`,
|
|
44
44
|
duration: 5_000,
|
|
45
|
-
title: ['join-success.label', { ns: meta.
|
|
46
|
-
closeLabel: ['dismiss.label', { ns: meta.
|
|
45
|
+
title: ['join-success.label', { ns: meta.profile.key }],
|
|
46
|
+
closeLabel: ['dismiss.label', { ns: meta.profile.key }],
|
|
47
47
|
}),
|
|
48
48
|
invokePromise(LayoutOperation.UpdateDialog, { state: false }),
|
|
49
49
|
]);
|
|
@@ -61,12 +61,9 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
|
|
|
61
61
|
space = await trigger.wait();
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
await invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(space.id) });
|
|
64
|
+
await invokePromise(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(space.id) });
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
// should try to navigate to the first object of the space replicates.
|
|
68
|
-
// Potentially this could also be done on the inviters side to ensure there's always a target.
|
|
69
|
-
const target = result?.target || (navigableCollections ? space?.id : undefined);
|
|
66
|
+
const target = result?.target;
|
|
70
67
|
if (target) {
|
|
71
68
|
// Wait before navigating to the target node.
|
|
72
69
|
// If the target has not yet replicated, this will trigger a loading toast.
|
|
@@ -75,6 +72,11 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
|
|
|
75
72
|
invokePromise(LayoutOperation.Open, { subject: [target] }),
|
|
76
73
|
invokePromise(LayoutOperation.Expose, { subject: target }),
|
|
77
74
|
]);
|
|
75
|
+
} else {
|
|
76
|
+
await invokePromise(LayoutOperation.Open, {
|
|
77
|
+
subject: [Paths.getSpaceHomePath(space.id)],
|
|
78
|
+
workspace: Paths.getSpacePath(space.id),
|
|
79
|
+
});
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
onDone?.(result);
|
|
@@ -7,7 +7,7 @@ import React, { type Dispatch, type SetStateAction, useMemo, useState } from 're
|
|
|
7
7
|
import { QR } from 'react-qr-rounded';
|
|
8
8
|
|
|
9
9
|
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
10
|
-
import {
|
|
10
|
+
import { AppAnnotation } from '@dxos/app-toolkit';
|
|
11
11
|
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
12
12
|
import { Annotation, Obj } from '@dxos/echo';
|
|
13
13
|
import { log } from '@dxos/log';
|
|
@@ -48,7 +48,7 @@ export type MembersContainerProps = AppSurface.SpaceArticleProps<{
|
|
|
48
48
|
}>;
|
|
49
49
|
|
|
50
50
|
export const MembersContainer = ({ space, createInvitationUrl }: MembersContainerProps) => {
|
|
51
|
-
const { t } = useTranslation(meta.
|
|
51
|
+
const { t } = useTranslation(meta.profile.key);
|
|
52
52
|
const config = useConfig();
|
|
53
53
|
const { invokePromise } = useOperationInvoker();
|
|
54
54
|
const invitations = useSpaceInvitations(space.key);
|
|
@@ -64,8 +64,8 @@ export const MembersContainer = ({ space, createInvitationUrl }: MembersContaine
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
// TODO(wittjosiah): Track which was the most recently viewed object.
|
|
67
|
-
const target = Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)
|
|
68
|
-
?.objects[0]?.target;
|
|
67
|
+
const target = Annotation.get(space.properties, AppAnnotation.RootCollectionAnnotation).pipe(Option.getOrUndefined)
|
|
68
|
+
?.target?.objects[0]?.target;
|
|
69
69
|
|
|
70
70
|
const inviteActions = useMemo(
|
|
71
71
|
(): Record<string, ActionMenuItem> => ({
|
|
@@ -210,7 +210,7 @@ const InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel
|
|
|
210
210
|
const emoji = hexToEmoji(id);
|
|
211
211
|
return (
|
|
212
212
|
<>
|
|
213
|
-
<p className='text-description'>{t('qr-code.description', { ns: meta.
|
|
213
|
+
<p className='text-description'>{t('qr-code.description', { ns: meta.profile.key })}</p>
|
|
214
214
|
<div role='group' className='grid grid-cols-[1fr_min-content] my-2 gap-2'>
|
|
215
215
|
<div className='w-full aspect-square relative text-description'>
|
|
216
216
|
<QR
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { AppSpace } from '@dxos/app-toolkit';
|
|
8
8
|
import { getSpace } from '@dxos/client/echo';
|
|
9
9
|
import { type Obj } from '@dxos/echo';
|
|
10
10
|
import { DropdownMenu, Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
@@ -14,9 +14,9 @@ import { meta } from '#meta';
|
|
|
14
14
|
import { getSpaceDisplayName } from '../../util';
|
|
15
15
|
|
|
16
16
|
export const MenuFooter = ({ object }: { object: Obj.Unknown }) => {
|
|
17
|
-
const { t } = useTranslation(meta.
|
|
17
|
+
const { t } = useTranslation(meta.profile.key);
|
|
18
18
|
const space = getSpace(object);
|
|
19
|
-
const spaceName = space ? getSpaceDisplayName(space, { personal: isPersonalSpace(space) }) : '';
|
|
19
|
+
const spaceName = space ? getSpaceDisplayName(space, { personal: AppSpace.isPersonalSpace(space) }) : '';
|
|
20
20
|
return space ? (
|
|
21
21
|
<>
|
|
22
22
|
<DropdownMenu.Separator />
|
|
@@ -7,7 +7,7 @@ import React, { forwardRef, useState } from 'react';
|
|
|
7
7
|
import { Filter, Obj, type View } from '@dxos/echo';
|
|
8
8
|
import { useQuery, useType } from '@dxos/react-client/echo';
|
|
9
9
|
import { Card, Message, Panel, ScrollArea, Toolbar, useTranslation } from '@dxos/react-ui';
|
|
10
|
-
import {
|
|
10
|
+
import { useSelection } from '@dxos/react-ui-attention';
|
|
11
11
|
import { ObjectForm } from '@dxos/react-ui-form';
|
|
12
12
|
import { Mosaic } from '@dxos/react-ui-mosaic';
|
|
13
13
|
import { getTypeURIFromQuery } from '@dxos/schema';
|
|
@@ -24,13 +24,13 @@ export type ObjectCardStackProps = {
|
|
|
24
24
|
* @deprecated Use Mosaic Board components.
|
|
25
25
|
*/
|
|
26
26
|
export const ObjectCardStack = forwardRef<HTMLDivElement, ObjectCardStackProps>(({ objectId, view }, forwardedRef) => {
|
|
27
|
-
const { t } = useTranslation(meta.
|
|
27
|
+
const { t } = useTranslation(meta.profile.key);
|
|
28
28
|
const db = Obj.getDatabase(view);
|
|
29
29
|
const typeUri = view.query ? getTypeURIFromQuery(view.query.ast) : undefined;
|
|
30
30
|
const type = useType(db, typeUri);
|
|
31
31
|
|
|
32
32
|
const queriedObjects = useQuery(db, type ? Filter.type(type) : Filter.nothing());
|
|
33
|
-
const selectedRows =
|
|
33
|
+
const selectedRows = useSelection(objectId, 'multi');
|
|
34
34
|
const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
|
|
35
35
|
|
|
36
36
|
const [viewport, setViewport] = useState<HTMLElement | null>(null);
|