@dxos/plugin-space 0.6.14-main.f49f251 → 0.6.14-staging.8758a12
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/browser/{chunk-FOI7DAUV.mjs → chunk-WZAM3FNP.mjs} +1 -1
- package/dist/lib/browser/{chunk-FOI7DAUV.mjs.map → chunk-WZAM3FNP.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +432 -387
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{chunk-OTDRTHT4.cjs → chunk-HTAM5LQD.cjs} +4 -4
- package/dist/lib/node/{chunk-OTDRTHT4.cjs.map → chunk-HTAM5LQD.cjs.map} +2 -2
- package/dist/lib/node/index.cjs +474 -433
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +11 -11
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{chunk-FYDGMPSC.mjs → chunk-TRJKV4PK.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-FYDGMPSC.mjs.map → chunk-TRJKV4PK.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +432 -387
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettingsPanel.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/Space.d.ts +8 -0
- package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +3 -2
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +5 -20
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/save-tracker.d.ts +3 -0
- package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/status.d.ts +9 -0
- package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/{types.d.ts → sync-state.d.ts} +1 -1
- package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +6 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +2 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +34 -33
- package/src/SpacePlugin.tsx +55 -30
- package/src/components/SpaceSettings.tsx +5 -5
- package/src/components/SpaceSettingsPanel.tsx +18 -8
- package/src/components/SyncStatus/Space.tsx +109 -0
- package/src/components/SyncStatus/SyncStatus.stories.tsx +13 -4
- package/src/components/SyncStatus/SyncStatus.tsx +43 -129
- package/src/components/{SaveStatus.tsx → SyncStatus/save-tracker.ts} +1 -25
- package/src/components/SyncStatus/status.ts +44 -0
- package/src/components/index.ts +0 -2
- package/src/translations.ts +6 -0
- package/src/types/types.ts +3 -1
- package/dist/types/src/components/MissingObject.d.ts +0 -5
- package/dist/types/src/components/MissingObject.d.ts.map +0 -1
- package/dist/types/src/components/SaveStatus.d.ts +0 -3
- package/dist/types/src/components/SaveStatus.d.ts.map +0 -1
- package/dist/types/src/components/SyncStatus/types.d.ts.map +0 -1
- package/src/components/MissingObject.tsx +0 -54
- /package/src/components/SyncStatus/{types.ts → sync-state.ts} +0 -0
package/dist/lib/node/index.cjs
CHANGED
|
@@ -28,30 +28,28 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
|
-
ActorSchema: () =>
|
|
31
|
+
ActorSchema: () => import_chunk_HTAM5LQD.ActorSchema,
|
|
32
32
|
AwaitingObject: () => AwaitingObject,
|
|
33
33
|
COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
|
|
34
|
-
ChannelType: () =>
|
|
34
|
+
ChannelType: () => import_chunk_HTAM5LQD.ChannelType,
|
|
35
35
|
CollectionMain: () => CollectionMain,
|
|
36
36
|
CollectionSection: () => CollectionSection,
|
|
37
|
-
CollectionType: () =>
|
|
38
|
-
ContactType: () =>
|
|
37
|
+
CollectionType: () => import_chunk_HTAM5LQD.CollectionType,
|
|
38
|
+
ContactType: () => import_chunk_HTAM5LQD.ContactType,
|
|
39
39
|
DefaultObjectSettings: () => DefaultObjectSettings,
|
|
40
40
|
FullPresence: () => FullPresence,
|
|
41
41
|
MenuFooter: () => MenuFooter,
|
|
42
|
-
MessageState: () =>
|
|
43
|
-
MessageType: () =>
|
|
44
|
-
MissingObject: () => MissingObject,
|
|
42
|
+
MessageState: () => import_chunk_HTAM5LQD.MessageState,
|
|
43
|
+
MessageType: () => import_chunk_HTAM5LQD.MessageType,
|
|
45
44
|
PersistenceStatus: () => PersistenceStatus,
|
|
46
45
|
PopoverRenameObject: () => PopoverRenameObject,
|
|
47
46
|
PopoverRenameSpace: () => PopoverRenameSpace,
|
|
48
47
|
SHARED: () => SHARED,
|
|
49
48
|
SPACES: () => SPACES,
|
|
50
|
-
SPACE_DIRECTORY_HANDLE: () =>
|
|
49
|
+
SPACE_DIRECTORY_HANDLE: () => import_chunk_HTAM5LQD.SPACE_DIRECTORY_HANDLE,
|
|
51
50
|
SPACE_PLUGIN: () => import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
52
51
|
SPACE_PLUGIN_SHORT_ID: () => import_chunk_P4XUXM7Y.SPACE_PLUGIN_SHORT_ID,
|
|
53
52
|
SPACE_TYPE: () => SPACE_TYPE,
|
|
54
|
-
SaveStatus: () => SaveStatus,
|
|
55
53
|
ShareSpaceButton: () => ShareSpaceButton,
|
|
56
54
|
ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
|
|
57
55
|
SmallPresence: () => SmallPresence,
|
|
@@ -65,8 +63,8 @@ __export(node_exports, {
|
|
|
65
63
|
SyncStatus: () => SyncStatus,
|
|
66
64
|
SyncStatusDetail: () => SyncStatusDetail,
|
|
67
65
|
SyncStatusIndicator: () => SyncStatusIndicator,
|
|
68
|
-
ThreadStatus: () =>
|
|
69
|
-
ThreadType: () =>
|
|
66
|
+
ThreadStatus: () => import_chunk_HTAM5LQD.ThreadStatus,
|
|
67
|
+
ThreadType: () => import_chunk_HTAM5LQD.ThreadType,
|
|
70
68
|
cloneObject: () => cloneObject,
|
|
71
69
|
constructObjectActionGroups: () => constructObjectActionGroups,
|
|
72
70
|
constructObjectActions: () => constructObjectActions,
|
|
@@ -79,13 +77,13 @@ __export(node_exports, {
|
|
|
79
77
|
getNestedObjects: () => getNestedObjects,
|
|
80
78
|
getSpaceDisplayName: () => getSpaceDisplayName,
|
|
81
79
|
memoizeQuery: () => memoizeQuery,
|
|
82
|
-
parseSpaceInitPlugin: () =>
|
|
80
|
+
parseSpaceInitPlugin: () => import_chunk_HTAM5LQD.parseSpaceInitPlugin,
|
|
83
81
|
parseSpacePlugin: () => parseSpacePlugin,
|
|
84
82
|
translations: () => translations_default
|
|
85
83
|
});
|
|
86
84
|
module.exports = __toCommonJS(node_exports);
|
|
87
85
|
var import_chunk_P4XUXM7Y = require("./chunk-P4XUXM7Y.cjs");
|
|
88
|
-
var
|
|
86
|
+
var import_chunk_HTAM5LQD = require("./chunk-HTAM5LQD.cjs");
|
|
89
87
|
var import_signals_core = require("@preact/signals-core");
|
|
90
88
|
var import_react = __toESM(require("react"));
|
|
91
89
|
var import_app_framework = require("@dxos/app-framework");
|
|
@@ -129,70 +127,68 @@ var import_invariant = require("@dxos/invariant");
|
|
|
129
127
|
var import_migrations2 = require("@dxos/migrations");
|
|
130
128
|
var import_plugin_graph2 = require("@dxos/plugin-graph");
|
|
131
129
|
var import_echo4 = require("@dxos/react-client/echo");
|
|
132
|
-
var import_react10 =
|
|
133
|
-
var
|
|
130
|
+
var import_react10 = require("@phosphor-icons/react");
|
|
131
|
+
var import_react11 = __toESM(require("react"));
|
|
132
|
+
var import_async2 = require("@dxos/async");
|
|
134
133
|
var import_react_ui7 = require("@dxos/react-ui");
|
|
135
134
|
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
136
|
-
var import_react11 = require("@phosphor-icons/react");
|
|
137
135
|
var import_react12 = __toESM(require("react"));
|
|
138
|
-
var
|
|
136
|
+
var import_log2 = require("@dxos/log");
|
|
139
137
|
var import_react_ui8 = require("@dxos/react-ui");
|
|
140
|
-
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
141
138
|
var import_react13 = __toESM(require("react"));
|
|
142
|
-
var import_log2 = require("@dxos/log");
|
|
143
139
|
var import_react_ui9 = require("@dxos/react-ui");
|
|
144
140
|
var import_react14 = __toESM(require("react"));
|
|
141
|
+
var import_app_framework4 = require("@dxos/app-framework");
|
|
145
142
|
var import_react_ui10 = require("@dxos/react-ui");
|
|
146
|
-
var import_react15 =
|
|
143
|
+
var import_react15 = require("@phosphor-icons/react");
|
|
144
|
+
var import_react16 = __toESM(require("react"));
|
|
147
145
|
var import_app_framework5 = require("@dxos/app-framework");
|
|
146
|
+
var import_echo5 = require("@dxos/react-client/echo");
|
|
148
147
|
var import_react_ui11 = require("@dxos/react-ui");
|
|
149
|
-
var
|
|
150
|
-
var import_react17 =
|
|
148
|
+
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
149
|
+
var import_react17 = require("@dxos/shell/react");
|
|
150
|
+
var import_react18 = require("@phosphor-icons/react");
|
|
151
|
+
var import_react19 = __toESM(require("react"));
|
|
151
152
|
var import_app_framework6 = require("@dxos/app-framework");
|
|
152
|
-
var import_echo5 = require("@dxos/react-client/echo");
|
|
153
|
-
var import_react_ui12 = require("@dxos/react-ui");
|
|
154
|
-
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
|
155
|
-
var import_react18 = require("@dxos/shell/react");
|
|
156
|
-
var import_react19 = require("@phosphor-icons/react");
|
|
157
|
-
var import_react20 = __toESM(require("react"));
|
|
158
|
-
var import_app_framework7 = require("@dxos/app-framework");
|
|
159
153
|
var import_echo6 = require("@dxos/react-client/echo");
|
|
160
154
|
var import_invitations = require("@dxos/react-client/invitations");
|
|
161
155
|
var import_invitations2 = require("@dxos/react-client/invitations");
|
|
162
|
-
var
|
|
163
|
-
var
|
|
164
|
-
var
|
|
165
|
-
var
|
|
166
|
-
var
|
|
156
|
+
var import_react_ui12 = require("@dxos/react-ui");
|
|
157
|
+
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
|
158
|
+
var import_react20 = require("@dxos/shell/react");
|
|
159
|
+
var import_react21 = __toESM(require("react"));
|
|
160
|
+
var import_app_framework7 = require("@dxos/app-framework");
|
|
167
161
|
var import_display_name = require("@dxos/display-name");
|
|
168
162
|
var import_react_client4 = require("@dxos/react-client");
|
|
169
163
|
var import_echo7 = require("@dxos/react-client/echo");
|
|
170
164
|
var import_halo = require("@dxos/react-client/halo");
|
|
171
|
-
var
|
|
165
|
+
var import_react_ui13 = require("@dxos/react-ui");
|
|
172
166
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
173
167
|
var import_util2 = require("@dxos/util");
|
|
174
|
-
var
|
|
175
|
-
var
|
|
176
|
-
var
|
|
168
|
+
var import_react22 = __toESM(require("react"));
|
|
169
|
+
var import_app_framework8 = require("@dxos/app-framework");
|
|
170
|
+
var import_react_ui14 = require("@dxos/react-ui");
|
|
177
171
|
var import_react_ui_data = require("@dxos/react-ui-data");
|
|
178
|
-
var
|
|
172
|
+
var import_react23 = __toESM(require("react"));
|
|
179
173
|
var import_log3 = require("@dxos/log");
|
|
180
174
|
var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
|
|
175
|
+
var import_react_client5 = require("@dxos/react-client");
|
|
176
|
+
var import_halo2 = require("@dxos/react-client/halo");
|
|
177
|
+
var import_react_ui15 = require("@dxos/react-ui");
|
|
178
|
+
var import_react24 = __toESM(require("react"));
|
|
179
|
+
var import_plugin_status_bar = require("@dxos/plugin-status-bar");
|
|
180
|
+
var import_react_client6 = require("@dxos/react-client");
|
|
181
181
|
var import_react_ui16 = require("@dxos/react-ui");
|
|
182
|
+
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
183
|
+
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
182
184
|
var import_react25 = __toESM(require("react"));
|
|
183
|
-
var import_context = require("@dxos/context");
|
|
184
|
-
var import_plugin_status_bar = require("@dxos/plugin-status-bar");
|
|
185
|
-
var import_react_client5 = require("@dxos/react-client");
|
|
186
185
|
var import_react_ui17 = require("@dxos/react-ui");
|
|
187
|
-
var import_react26 = __toESM(require("react"));
|
|
188
|
-
var import_plugin_status_bar2 = require("@dxos/plugin-status-bar");
|
|
189
|
-
var import_react_ui18 = require("@dxos/react-ui");
|
|
190
|
-
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
191
186
|
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
|
192
|
-
var
|
|
187
|
+
var import_context = require("@dxos/context");
|
|
188
|
+
var import_react26 = require("react");
|
|
193
189
|
var import_context2 = require("@dxos/context");
|
|
194
190
|
var import_protocols = require("@dxos/protocols");
|
|
195
|
-
var
|
|
191
|
+
var import_react_client7 = require("@dxos/react-client");
|
|
196
192
|
var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
|
|
197
193
|
var TOAST_TIMEOUT = 24e4;
|
|
198
194
|
var AwaitingObject = ({ id }) => {
|
|
@@ -380,8 +376,8 @@ var checkPendingMigration = (space) => {
|
|
|
380
376
|
};
|
|
381
377
|
var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
|
|
382
378
|
const hasPendingMigration = checkPendingMigration(space);
|
|
383
|
-
const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[
|
|
384
|
-
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof
|
|
379
|
+
const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_HTAM5LQD.CollectionType.typename];
|
|
380
|
+
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_HTAM5LQD.CollectionType ? getCollectionGraphNodePartials({
|
|
385
381
|
collection,
|
|
386
382
|
space,
|
|
387
383
|
resolve
|
|
@@ -410,7 +406,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
410
406
|
if (state !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration) {
|
|
411
407
|
return [];
|
|
412
408
|
}
|
|
413
|
-
const collection = space.properties[
|
|
409
|
+
const collection = space.properties[import_chunk_HTAM5LQD.CollectionType.typename];
|
|
414
410
|
const actions = [
|
|
415
411
|
{
|
|
416
412
|
id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT),
|
|
@@ -440,7 +436,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
440
436
|
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
441
437
|
data: {
|
|
442
438
|
target: collection,
|
|
443
|
-
object: (0, import_echo_schema2.create)(
|
|
439
|
+
object: (0, import_echo_schema2.create)(import_chunk_HTAM5LQD.CollectionType, {
|
|
444
440
|
objects: [],
|
|
445
441
|
views: {}
|
|
446
442
|
})
|
|
@@ -643,7 +639,7 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
643
639
|
if (Object.keys(metadata).length === 0) {
|
|
644
640
|
return void 0;
|
|
645
641
|
}
|
|
646
|
-
const partials = object instanceof
|
|
642
|
+
const partials = object instanceof import_chunk_HTAM5LQD.CollectionType ? getCollectionGraphNodePartials({
|
|
647
643
|
collection: object,
|
|
648
644
|
space,
|
|
649
645
|
resolve
|
|
@@ -668,7 +664,7 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
668
664
|
};
|
|
669
665
|
};
|
|
670
666
|
var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
671
|
-
if (!(object instanceof
|
|
667
|
+
if (!(object instanceof import_chunk_HTAM5LQD.CollectionType)) {
|
|
672
668
|
return [];
|
|
673
669
|
}
|
|
674
670
|
const collection = object;
|
|
@@ -702,7 +698,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
|
702
698
|
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
703
699
|
data: {
|
|
704
700
|
target: collection,
|
|
705
|
-
object: (0, import_echo_schema2.create)(
|
|
701
|
+
object: (0, import_echo_schema2.create)(import_chunk_HTAM5LQD.CollectionType, {
|
|
706
702
|
objects: [],
|
|
707
703
|
views: {}
|
|
708
704
|
})
|
|
@@ -746,7 +742,7 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
746
742
|
},
|
|
747
743
|
properties: {
|
|
748
744
|
label: [
|
|
749
|
-
object instanceof
|
|
745
|
+
object instanceof import_chunk_HTAM5LQD.CollectionType ? "rename collection label" : "rename object label",
|
|
750
746
|
{
|
|
751
747
|
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
752
748
|
}
|
|
@@ -764,7 +760,7 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
764
760
|
const graph = (0, import_plugin_graph2.getGraph)(node);
|
|
765
761
|
const collection = graph.nodes(node, {
|
|
766
762
|
relation: "inbound"
|
|
767
|
-
}).find(({ data }) => data instanceof
|
|
763
|
+
}).find(({ data }) => data instanceof import_chunk_HTAM5LQD.CollectionType)?.data;
|
|
768
764
|
await dispatch([
|
|
769
765
|
{
|
|
770
766
|
action: import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT,
|
|
@@ -777,13 +773,13 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
777
773
|
},
|
|
778
774
|
properties: {
|
|
779
775
|
label: [
|
|
780
|
-
object instanceof
|
|
776
|
+
object instanceof import_chunk_HTAM5LQD.CollectionType ? "delete collection label" : "delete object label",
|
|
781
777
|
{
|
|
782
778
|
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
783
779
|
}
|
|
784
780
|
],
|
|
785
781
|
icon: "ph--trash--regular",
|
|
786
|
-
keyBinding: object instanceof
|
|
782
|
+
keyBinding: object instanceof import_chunk_HTAM5LQD.CollectionType ? void 0 : "shift+meta+Backspace",
|
|
787
783
|
testId: "spacePlugin.deleteObject"
|
|
788
784
|
}
|
|
789
785
|
},
|
|
@@ -875,54 +871,19 @@ var MenuFooter = ({ object }) => {
|
|
|
875
871
|
className: "inline-block mie-1"
|
|
876
872
|
}), (0, import_react_ui6.toLocalizedString)(spaceName, t)))) : null;
|
|
877
873
|
};
|
|
878
|
-
var
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
if (!intentPlugin) {
|
|
885
|
-
return;
|
|
886
|
-
}
|
|
887
|
-
const timeout = setTimeout(async () => {
|
|
888
|
-
setWaiting(true);
|
|
889
|
-
await intentPlugin.provides.intent.dispatch({
|
|
890
|
-
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
891
|
-
action: import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT,
|
|
892
|
-
data: {
|
|
893
|
-
id
|
|
894
|
-
}
|
|
895
|
-
});
|
|
896
|
-
}, WAIT_FOR_OBJECT_TIMEOUT2);
|
|
897
|
-
return () => clearTimeout(timeout);
|
|
898
|
-
}, [
|
|
899
|
-
intentPlugin,
|
|
900
|
-
id
|
|
901
|
-
]);
|
|
902
|
-
return /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
903
|
-
role: "none",
|
|
904
|
-
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8")
|
|
905
|
-
}, waiting ? /* @__PURE__ */ import_react10.default.createElement("p", {
|
|
906
|
-
role: "alert",
|
|
907
|
-
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg")
|
|
908
|
-
}, t("missing object message")) : /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Status, {
|
|
909
|
-
indeterminate: true,
|
|
910
|
-
"aria-label": "Initializing"
|
|
911
|
-
}));
|
|
912
|
-
};
|
|
913
|
-
var Status2;
|
|
914
|
-
(function(Status3) {
|
|
915
|
-
Status3[Status3["PERSISTED_LOCALLY"] = 0] = "PERSISTED_LOCALLY";
|
|
916
|
-
Status3[Status3["PENDING"] = 1] = "PENDING";
|
|
917
|
-
Status3[Status3["ERROR"] = 2] = "ERROR";
|
|
918
|
-
})(Status2 || (Status2 = {}));
|
|
874
|
+
var Status;
|
|
875
|
+
(function(Status2) {
|
|
876
|
+
Status2[Status2["PERSISTED_LOCALLY"] = 0] = "PERSISTED_LOCALLY";
|
|
877
|
+
Status2[Status2["PENDING"] = 1] = "PENDING";
|
|
878
|
+
Status2[Status2["ERROR"] = 2] = "ERROR";
|
|
879
|
+
})(Status || (Status = {}));
|
|
919
880
|
var PersistenceStatus = ({ db }) => {
|
|
920
|
-
const { t } = (0,
|
|
921
|
-
const [displayMessage, setDisplayMessage] = (0,
|
|
922
|
-
const [status, naturalSetStatus] = (0,
|
|
923
|
-
const [prevStatus, setPrevStatus] = (0,
|
|
881
|
+
const { t } = (0, import_react_ui7.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
882
|
+
const [displayMessage, setDisplayMessage] = (0, import_react11.useState)(false);
|
|
883
|
+
const [status, naturalSetStatus] = (0, import_react11.useState)(0);
|
|
884
|
+
const [prevStatus, setPrevStatus] = (0, import_react11.useState)(0);
|
|
924
885
|
const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
|
|
925
|
-
(0,
|
|
886
|
+
(0, import_react11.useEffect)(() => {
|
|
926
887
|
setPrevStatus(status);
|
|
927
888
|
if (prevStatus !== status && status === 0) {
|
|
928
889
|
setDisplayMessage(true);
|
|
@@ -934,44 +895,44 @@ var PersistenceStatus = ({ db }) => {
|
|
|
934
895
|
]);
|
|
935
896
|
switch (status) {
|
|
936
897
|
case 2:
|
|
937
|
-
return /* @__PURE__ */
|
|
898
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
938
899
|
className: "flex items-center"
|
|
939
|
-
}, /* @__PURE__ */
|
|
940
|
-
className: (0,
|
|
941
|
-
}), /* @__PURE__ */
|
|
942
|
-
className: (0,
|
|
900
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react10.Warning, {
|
|
901
|
+
className: (0, import_react_ui_theme3.mx)((0, import_react_ui_theme3.getSize)(4), "me-1")
|
|
902
|
+
}), /* @__PURE__ */ import_react11.default.createElement("span", {
|
|
903
|
+
className: (0, import_react_ui_theme3.mx)("text-sm", import_react_ui_theme3.warningText)
|
|
943
904
|
}, t("persistence error label")));
|
|
944
905
|
case 1:
|
|
945
|
-
return /* @__PURE__ */
|
|
906
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
946
907
|
className: "flex items-center"
|
|
947
|
-
}, /* @__PURE__ */
|
|
948
|
-
className: (0,
|
|
949
|
-
}), /* @__PURE__ */
|
|
950
|
-
className: (0,
|
|
908
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react10.ArrowsCounterClockwise, {
|
|
909
|
+
className: (0, import_react_ui_theme3.mx)((0, import_react_ui_theme3.getSize)(4), "me-1")
|
|
910
|
+
}), /* @__PURE__ */ import_react11.default.createElement("span", {
|
|
911
|
+
className: (0, import_react_ui_theme3.mx)("text-sm", import_react_ui_theme3.staticPlaceholderText)
|
|
951
912
|
}, t("persistence pending label")));
|
|
952
913
|
case 0:
|
|
953
914
|
default:
|
|
954
|
-
return /* @__PURE__ */
|
|
915
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.Tooltip.Root, {
|
|
955
916
|
delayDuration: 400
|
|
956
|
-
}, /* @__PURE__ */
|
|
917
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.Tooltip.Trigger, {
|
|
957
918
|
role: "status",
|
|
958
919
|
className: "flex items-center"
|
|
959
|
-
}, /* @__PURE__ */
|
|
960
|
-
className: (0,
|
|
961
|
-
}), displayMessage && /* @__PURE__ */
|
|
962
|
-
className: (0,
|
|
963
|
-
}, t("persisted locally label"))), /* @__PURE__ */
|
|
920
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react10.CheckCircle, {
|
|
921
|
+
className: (0, import_react_ui_theme3.mx)((0, import_react_ui_theme3.getSize)(4), "me-1")
|
|
922
|
+
}), displayMessage && /* @__PURE__ */ import_react11.default.createElement("span", {
|
|
923
|
+
className: (0, import_react_ui_theme3.mx)("text-sm", import_react_ui_theme3.staticPlaceholderText)
|
|
924
|
+
}, t("persisted locally label"))), /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.Tooltip.Portal, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.Tooltip.Content, {
|
|
964
925
|
classNames: "z-10"
|
|
965
|
-
}, t("persisted locally message"), /* @__PURE__ */
|
|
926
|
+
}, t("persisted locally message"), /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.Tooltip.Arrow, null))));
|
|
966
927
|
}
|
|
967
928
|
};
|
|
968
929
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
969
930
|
var PopoverRenameObject = ({ object: obj }) => {
|
|
970
|
-
const { t } = (0,
|
|
971
|
-
const doneButton = (0,
|
|
931
|
+
const { t } = (0, import_react_ui8.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
932
|
+
const doneButton = (0, import_react12.useRef)(null);
|
|
972
933
|
const object = obj;
|
|
973
|
-
const [name, setName] = (0,
|
|
974
|
-
const handleDone = (0,
|
|
934
|
+
const [name, setName] = (0, import_react12.useState)(object.name || object.title || "");
|
|
935
|
+
const handleDone = (0, import_react12.useCallback)(() => {
|
|
975
936
|
try {
|
|
976
937
|
object.name = name;
|
|
977
938
|
} catch {
|
|
@@ -992,23 +953,23 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
992
953
|
object,
|
|
993
954
|
name
|
|
994
955
|
]);
|
|
995
|
-
return /* @__PURE__ */
|
|
956
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", {
|
|
996
957
|
role: "none",
|
|
997
958
|
className: "p-1 flex gap-2"
|
|
998
|
-
}, /* @__PURE__ */
|
|
959
|
+
}, /* @__PURE__ */ import_react12.default.createElement("div", {
|
|
999
960
|
role: "none",
|
|
1000
961
|
className: "flex-1"
|
|
1001
|
-
}, /* @__PURE__ */
|
|
962
|
+
}, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Input.Root, null, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Input.Label, {
|
|
1002
963
|
srOnly: true
|
|
1003
|
-
}, t("object name label")), /* @__PURE__ */
|
|
964
|
+
}, t("object name label")), /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Input.TextInput, {
|
|
1004
965
|
placeholder: t("object title placeholder"),
|
|
1005
966
|
value: name,
|
|
1006
967
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1007
968
|
onChange: ({ target: { value } }) => setName(value),
|
|
1008
969
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1009
|
-
}))), /* @__PURE__ */
|
|
970
|
+
}))), /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Popover.Close, {
|
|
1010
971
|
asChild: true
|
|
1011
|
-
}, /* @__PURE__ */
|
|
972
|
+
}, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Button, {
|
|
1012
973
|
ref: doneButton,
|
|
1013
974
|
classNames: "self-stretch",
|
|
1014
975
|
onClick: handleDone
|
|
@@ -1017,33 +978,33 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
1017
978
|
}))));
|
|
1018
979
|
};
|
|
1019
980
|
var PopoverRenameSpace = ({ space }) => {
|
|
1020
|
-
const { t } = (0,
|
|
1021
|
-
const doneButton = (0,
|
|
1022
|
-
const [name, setName] = (0,
|
|
1023
|
-
const handleDone = (0,
|
|
981
|
+
const { t } = (0, import_react_ui9.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
982
|
+
const doneButton = (0, import_react13.useRef)(null);
|
|
983
|
+
const [name, setName] = (0, import_react13.useState)(space.properties.name ?? "");
|
|
984
|
+
const handleDone = (0, import_react13.useCallback)(() => {
|
|
1024
985
|
space.properties.name = name;
|
|
1025
986
|
}, [
|
|
1026
987
|
space,
|
|
1027
988
|
name
|
|
1028
989
|
]);
|
|
1029
|
-
return /* @__PURE__ */
|
|
990
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
1030
991
|
role: "none",
|
|
1031
992
|
className: "p-1 flex gap-2"
|
|
1032
|
-
}, /* @__PURE__ */
|
|
993
|
+
}, /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
1033
994
|
role: "none",
|
|
1034
995
|
className: "flex-1"
|
|
1035
|
-
}, /* @__PURE__ */
|
|
996
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.Root, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.Label, {
|
|
1036
997
|
srOnly: true
|
|
1037
|
-
}, t("space name label")), /* @__PURE__ */
|
|
998
|
+
}, t("space name label")), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.TextInput, {
|
|
1038
999
|
defaultValue: space.properties.name ?? "",
|
|
1039
1000
|
placeholder: t("unnamed space label"),
|
|
1040
1001
|
onChange: ({ target: { value } }) => setName(value),
|
|
1041
1002
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1042
1003
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1043
1004
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1044
|
-
}))), /* @__PURE__ */
|
|
1005
|
+
}))), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Popover.Close, {
|
|
1045
1006
|
asChild: true
|
|
1046
|
-
}, /* @__PURE__ */
|
|
1007
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Button, {
|
|
1047
1008
|
ref: doneButton,
|
|
1048
1009
|
classNames: "self-stretch",
|
|
1049
1010
|
onClick: handleDone
|
|
@@ -1052,8 +1013,8 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1052
1013
|
}))));
|
|
1053
1014
|
};
|
|
1054
1015
|
var ShareSpaceButton = ({ spaceId }) => {
|
|
1055
|
-
const dispatch = (0,
|
|
1056
|
-
return /* @__PURE__ */
|
|
1016
|
+
const dispatch = (0, import_app_framework4.useIntentDispatcher)();
|
|
1017
|
+
return /* @__PURE__ */ import_react14.default.createElement(ShareSpaceButtonImpl, {
|
|
1057
1018
|
onClick: () => dispatch({
|
|
1058
1019
|
action: import_chunk_P4XUXM7Y.SpaceAction.SHARE,
|
|
1059
1020
|
data: {
|
|
@@ -1063,8 +1024,8 @@ var ShareSpaceButton = ({ spaceId }) => {
|
|
|
1063
1024
|
});
|
|
1064
1025
|
};
|
|
1065
1026
|
var ShareSpaceButtonImpl = ({ onClick }) => {
|
|
1066
|
-
const { t } = (0,
|
|
1067
|
-
return /* @__PURE__ */
|
|
1027
|
+
const { t } = (0, import_react_ui10.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1028
|
+
return /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Button, {
|
|
1068
1029
|
"data-testid": "spacePlugin.shareSpaceButton",
|
|
1069
1030
|
onClick,
|
|
1070
1031
|
classNames: "mli-1"
|
|
@@ -1074,9 +1035,9 @@ var activeActionKeyStorageKey = "dxos:react-shell/space-manager/active-action";
|
|
|
1074
1035
|
var Presence = import_echo6.SpaceMember.PresenceState;
|
|
1075
1036
|
var handleCreateInvitationUrl = (invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`;
|
|
1076
1037
|
var SpaceMemberList = ({ members }) => {
|
|
1077
|
-
return members.length > 0 ? /* @__PURE__ */
|
|
1038
|
+
return members.length > 0 ? /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.List, {
|
|
1078
1039
|
classNames: "col-start-2 col-end-5 gap-y-1 grid grid-cols-subgrid items-center"
|
|
1079
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1040
|
+
}, members.map((member) => /* @__PURE__ */ import_react19.default.createElement(import_react20.IdentityListItem, {
|
|
1080
1041
|
classNames: "contents",
|
|
1081
1042
|
key: member.identity.identityKey.toHex(),
|
|
1082
1043
|
identity: member.identity,
|
|
@@ -1084,11 +1045,11 @@ var SpaceMemberList = ({ members }) => {
|
|
|
1084
1045
|
}))) : null;
|
|
1085
1046
|
};
|
|
1086
1047
|
var SpaceMembersSection = ({ space }) => {
|
|
1087
|
-
const { t } = (0,
|
|
1048
|
+
const { t } = (0, import_react_ui12.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1088
1049
|
const invitations = (0, import_echo6.useSpaceInvitations)(space.key);
|
|
1089
|
-
const { dispatch } = (0,
|
|
1050
|
+
const { dispatch } = (0, import_app_framework6.useIntent)();
|
|
1090
1051
|
const handleCloseDialog = () => dispatch({
|
|
1091
|
-
action:
|
|
1052
|
+
action: import_app_framework6.LayoutAction.SET_LAYOUT,
|
|
1092
1053
|
data: {
|
|
1093
1054
|
element: "dialog",
|
|
1094
1055
|
state: false
|
|
@@ -1097,7 +1058,7 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1097
1058
|
const handleInvitationSelect = ({ invitation: invitationObservable }) => {
|
|
1098
1059
|
const invitation = invitationObservable.get();
|
|
1099
1060
|
void dispatch({
|
|
1100
|
-
action:
|
|
1061
|
+
action: import_app_framework6.LayoutAction.SET_LAYOUT,
|
|
1101
1062
|
data: {
|
|
1102
1063
|
element: "dialog",
|
|
1103
1064
|
component: "dxos.org/plugin/space/InvitationManagerDialog",
|
|
@@ -1120,8 +1081,8 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1120
1081
|
description: t("invite one description", {
|
|
1121
1082
|
ns: "os"
|
|
1122
1083
|
}),
|
|
1123
|
-
icon:
|
|
1124
|
-
onClick: (0,
|
|
1084
|
+
icon: import_react18.UserPlus,
|
|
1085
|
+
onClick: (0, import_react19.useCallback)(() => {
|
|
1125
1086
|
space.share?.({
|
|
1126
1087
|
type: import_invitations2.Invitation.Type.INTERACTIVE,
|
|
1127
1088
|
authMethod: import_invitations2.Invitation.AuthMethod.SHARED_SECRET
|
|
@@ -1137,8 +1098,8 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1137
1098
|
description: t("invite many description", {
|
|
1138
1099
|
ns: "os"
|
|
1139
1100
|
}),
|
|
1140
|
-
icon:
|
|
1141
|
-
onClick: (0,
|
|
1101
|
+
icon: import_react18.UsersThree,
|
|
1102
|
+
onClick: (0, import_react19.useCallback)(() => {
|
|
1142
1103
|
space.share?.({
|
|
1143
1104
|
type: import_invitations2.Invitation.Type.INTERACTIVE,
|
|
1144
1105
|
authMethod: import_invitations2.Invitation.AuthMethod.NONE,
|
|
@@ -1149,7 +1110,7 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1149
1110
|
])
|
|
1150
1111
|
}
|
|
1151
1112
|
};
|
|
1152
|
-
const [activeActionKey, setInternalActiveActionKey] = (0,
|
|
1113
|
+
const [activeActionKey, setInternalActiveActionKey] = (0, import_react19.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
|
|
1153
1114
|
const setActiveActionKey = (nextKey) => {
|
|
1154
1115
|
setInternalActiveActionKey(nextKey);
|
|
1155
1116
|
localStorage.setItem(activeActionKeyStorageKey, nextKey);
|
|
@@ -1162,101 +1123,101 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1162
1123
|
[Presence.ONLINE]: [],
|
|
1163
1124
|
[Presence.OFFLINE]: []
|
|
1164
1125
|
});
|
|
1165
|
-
return /* @__PURE__ */
|
|
1126
|
+
return /* @__PURE__ */ import_react19.default.createElement("section", {
|
|
1166
1127
|
className: "mbe-4 col-span-3 grid gap-y-2 grid-cols-subgrid auto-rows-min"
|
|
1167
|
-
}, /* @__PURE__ */
|
|
1128
|
+
}, /* @__PURE__ */ import_react19.default.createElement("h2", {
|
|
1168
1129
|
className: "contents"
|
|
1169
|
-
}, /* @__PURE__ */
|
|
1130
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react18.UsersThree, {
|
|
1170
1131
|
weight: "duotone",
|
|
1171
|
-
className: (0,
|
|
1172
|
-
}), /* @__PURE__ */
|
|
1132
|
+
className: (0, import_react_ui_theme5.mx)((0, import_react_ui_theme5.getSize)(5), "place-self-center")
|
|
1133
|
+
}), /* @__PURE__ */ import_react19.default.createElement("span", {
|
|
1173
1134
|
className: "text-lg col-span-2"
|
|
1174
|
-
}, t("space members label"))), /* @__PURE__ */
|
|
1135
|
+
}, t("space members label"))), /* @__PURE__ */ import_react19.default.createElement("h3", {
|
|
1175
1136
|
className: "col-start-2 col-span-3 text-sm italic text-description"
|
|
1176
|
-
}, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */
|
|
1137
|
+
}, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.List, {
|
|
1177
1138
|
classNames: "col-start-2 col-span-2 gap-y-2 grid grid-cols-[var(--rail-size)_1fr_var(--rail-action)_var(--rail-action)]"
|
|
1178
|
-
}, invitations.map((invitation) => /* @__PURE__ */
|
|
1139
|
+
}, invitations.map((invitation) => /* @__PURE__ */ import_react19.default.createElement(import_react20.InvitationListItem, {
|
|
1179
1140
|
reverseEffects: true,
|
|
1180
1141
|
classNames: "pis-0 pie-0 gap-0 col-span-4 grid grid-cols-subgrid",
|
|
1181
1142
|
key: invitation.get().invitationId,
|
|
1182
1143
|
invitation,
|
|
1183
1144
|
send: handleInvitationSelect,
|
|
1184
1145
|
createInvitationUrl: handleCreateInvitationUrl
|
|
1185
|
-
}))), /* @__PURE__ */
|
|
1146
|
+
}))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ButtonGroup, {
|
|
1186
1147
|
classNames: "col-start-2 col-end-4 grid grid-cols-[1fr_var(--rail-action)] place-self-grow gap-px"
|
|
1187
|
-
}, /* @__PURE__ */
|
|
1148
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Button, {
|
|
1188
1149
|
classNames: "gap-2",
|
|
1189
1150
|
onClick: activeAction.onClick
|
|
1190
|
-
}, /* @__PURE__ */
|
|
1191
|
-
className: (0,
|
|
1192
|
-
}), /* @__PURE__ */
|
|
1151
|
+
}, /* @__PURE__ */ import_react19.default.createElement(activeAction.icon, {
|
|
1152
|
+
className: (0, import_react_ui_theme5.getSize)(5)
|
|
1153
|
+
}), /* @__PURE__ */ import_react19.default.createElement("span", null, t(activeAction.label, {
|
|
1193
1154
|
ns: "os"
|
|
1194
|
-
}))), /* @__PURE__ */
|
|
1155
|
+
}))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.Root, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.Trigger, {
|
|
1195
1156
|
asChild: true
|
|
1196
|
-
}, /* @__PURE__ */
|
|
1157
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Button, {
|
|
1197
1158
|
classNames: "pli-0"
|
|
1198
|
-
}, /* @__PURE__ */
|
|
1199
|
-
className: (0,
|
|
1200
|
-
}))), /* @__PURE__ */
|
|
1201
|
-
return /* @__PURE__ */
|
|
1159
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react18.CaretDown, {
|
|
1160
|
+
className: (0, import_react_ui_theme5.getSize)(4)
|
|
1161
|
+
}))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.Content, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.Viewport, null, Object.entries(inviteActions).map(([id, action]) => {
|
|
1162
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.CheckboxItem, {
|
|
1202
1163
|
key: id,
|
|
1203
1164
|
"aria-labelledby": `${id}__label`,
|
|
1204
1165
|
"aria-describedby": `${id}__description`,
|
|
1205
1166
|
checked: activeActionKey === id,
|
|
1206
1167
|
onCheckedChange: (checked) => checked && setActiveActionKey(id),
|
|
1207
1168
|
classNames: "gap-2"
|
|
1208
|
-
}, action.icon && /* @__PURE__ */
|
|
1209
|
-
className: (0,
|
|
1210
|
-
}), /* @__PURE__ */
|
|
1169
|
+
}, action.icon && /* @__PURE__ */ import_react19.default.createElement(action.icon, {
|
|
1170
|
+
className: (0, import_react_ui_theme5.getSize)(5)
|
|
1171
|
+
}), /* @__PURE__ */ import_react19.default.createElement("div", {
|
|
1211
1172
|
role: "none",
|
|
1212
1173
|
className: "flex-1 min-is-0 space-b-1"
|
|
1213
|
-
}, /* @__PURE__ */
|
|
1174
|
+
}, /* @__PURE__ */ import_react19.default.createElement("p", {
|
|
1214
1175
|
id: `${id}__label`
|
|
1215
1176
|
}, t(action.label, {
|
|
1216
1177
|
ns: "os"
|
|
1217
|
-
})), action.description && /* @__PURE__ */
|
|
1178
|
+
})), action.description && /* @__PURE__ */ import_react19.default.createElement("p", {
|
|
1218
1179
|
id: `${id}__description`,
|
|
1219
|
-
className:
|
|
1180
|
+
className: import_react_ui_theme5.descriptionText
|
|
1220
1181
|
}, t(action.description, {
|
|
1221
1182
|
ns: "os"
|
|
1222
|
-
}))), /* @__PURE__ */
|
|
1183
|
+
}))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.ItemIndicator, {
|
|
1223
1184
|
asChild: true
|
|
1224
|
-
}, /* @__PURE__ */
|
|
1225
|
-
className: (0,
|
|
1185
|
+
}, /* @__PURE__ */ import_react19.default.createElement(import_react18.Check, {
|
|
1186
|
+
className: (0, import_react_ui_theme5.getSize)(4)
|
|
1226
1187
|
})));
|
|
1227
|
-
})), /* @__PURE__ */
|
|
1228
|
-
className: (0,
|
|
1188
|
+
})), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.DropdownMenu.Arrow, null)))), members[Presence.ONLINE].length + members[Presence.OFFLINE].length < 1 ? /* @__PURE__ */ import_react19.default.createElement("p", {
|
|
1189
|
+
className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.descriptionText, "text-center is-full mlb-2")
|
|
1229
1190
|
}, t("empty space members message", {
|
|
1230
1191
|
ns: "os"
|
|
1231
|
-
})) : /* @__PURE__ */
|
|
1192
|
+
})) : /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement("h3", {
|
|
1232
1193
|
className: "col-start-2 col-end-5 text-sm italic text-description"
|
|
1233
1194
|
}, t("active space members heading", {
|
|
1234
1195
|
count: members[Presence.ONLINE].length
|
|
1235
|
-
})), /* @__PURE__ */
|
|
1196
|
+
})), /* @__PURE__ */ import_react19.default.createElement(SpaceMemberList, {
|
|
1236
1197
|
members: members[Presence.ONLINE]
|
|
1237
|
-
}), /* @__PURE__ */
|
|
1198
|
+
}), /* @__PURE__ */ import_react19.default.createElement("h3", {
|
|
1238
1199
|
className: "col-start-2 col-end-5 text-sm italic text-description"
|
|
1239
1200
|
}, t("inactive space members heading", {
|
|
1240
1201
|
count: members[Presence.OFFLINE].length
|
|
1241
|
-
})), /* @__PURE__ */
|
|
1202
|
+
})), /* @__PURE__ */ import_react19.default.createElement(SpaceMemberList, {
|
|
1242
1203
|
members: members[Presence.OFFLINE]
|
|
1243
1204
|
})));
|
|
1244
1205
|
};
|
|
1245
1206
|
var KeyShortcuts = () => {
|
|
1246
|
-
const { t } = (0,
|
|
1247
|
-
return /* @__PURE__ */
|
|
1207
|
+
const { t } = (0, import_react_ui11.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1208
|
+
return /* @__PURE__ */ import_react16.default.createElement("section", {
|
|
1248
1209
|
className: "mbe-4 col-span-4 md:col-start-5 md:col-end-7 grid grid-cols-subgrid gap-y-2 auto-rows-min"
|
|
1249
|
-
}, /* @__PURE__ */
|
|
1210
|
+
}, /* @__PURE__ */ import_react16.default.createElement("h2", {
|
|
1250
1211
|
className: "contents"
|
|
1251
|
-
}, /* @__PURE__ */
|
|
1212
|
+
}, /* @__PURE__ */ import_react16.default.createElement(import_react15.Command, {
|
|
1252
1213
|
weight: "duotone",
|
|
1253
|
-
className: (0,
|
|
1254
|
-
}), /* @__PURE__ */
|
|
1214
|
+
className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(5), "place-self-center")
|
|
1215
|
+
}), /* @__PURE__ */ import_react16.default.createElement("span", {
|
|
1255
1216
|
className: "text-lg col-span-2 md:col-span-1"
|
|
1256
|
-
}, t("keyshortcuts label"))), /* @__PURE__ */
|
|
1217
|
+
}, t("keyshortcuts label"))), /* @__PURE__ */ import_react16.default.createElement("div", {
|
|
1257
1218
|
role: "none",
|
|
1258
1219
|
className: "col-start-2 col-end-4 md:col-end-5 pie-2"
|
|
1259
|
-
}, /* @__PURE__ */
|
|
1220
|
+
}, /* @__PURE__ */ import_react16.default.createElement(import_app_framework5.Surface, {
|
|
1260
1221
|
role: "keyshortcuts"
|
|
1261
1222
|
})));
|
|
1262
1223
|
};
|
|
@@ -1264,41 +1225,41 @@ var spaceMainLayout = "grid gap-y-2 auto-rows-min before:bs-2 before:col-span-5
|
|
|
1264
1225
|
var SpaceMain = ({ space, role }) => {
|
|
1265
1226
|
const state = space.state.get();
|
|
1266
1227
|
const ready = state === import_echo5.SpaceState.SPACE_READY;
|
|
1267
|
-
const Root = role === "main" ?
|
|
1268
|
-
return /* @__PURE__ */
|
|
1228
|
+
const Root = role === "main" ? import_react_ui11.Main.Content : "div";
|
|
1229
|
+
return /* @__PURE__ */ import_react16.default.createElement(import_react17.ClipboardProvider, null, /* @__PURE__ */ import_react16.default.createElement(Root, {
|
|
1269
1230
|
...role === "main" ? {
|
|
1270
1231
|
classNames: [
|
|
1271
|
-
|
|
1232
|
+
import_react_ui_theme4.topbarBlockPaddingStart,
|
|
1272
1233
|
"min-bs-dvh",
|
|
1273
1234
|
spaceMainLayout
|
|
1274
1235
|
]
|
|
1275
1236
|
} : {
|
|
1276
1237
|
role: "none",
|
|
1277
|
-
className: (0,
|
|
1238
|
+
className: (0, import_react_ui_theme4.mx)(import_react_ui_theme4.topbarBlockPaddingStart, "row-span-2", spaceMainLayout)
|
|
1278
1239
|
},
|
|
1279
1240
|
"data-testid": `spacePlugin.${role}`,
|
|
1280
1241
|
"data-isready": ready ? "true" : "false"
|
|
1281
|
-
}, ready && /* @__PURE__ */
|
|
1242
|
+
}, ready && /* @__PURE__ */ import_react16.default.createElement(SpaceMembersSection, {
|
|
1282
1243
|
space
|
|
1283
|
-
}), /* @__PURE__ */
|
|
1244
|
+
}), /* @__PURE__ */ import_react16.default.createElement(KeyShortcuts, null)));
|
|
1284
1245
|
};
|
|
1285
1246
|
var REFRESH_INTERVAL = 5e3;
|
|
1286
1247
|
var ACTIVITY_DURATION = 3e4;
|
|
1287
1248
|
var noViewers = new import_util2.ComplexMap(import_react_client4.PublicKey.hash);
|
|
1288
1249
|
var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
|
|
1289
1250
|
var SpacePresence = ({ object, spaceKey }) => {
|
|
1290
|
-
const spacePlugin = (0,
|
|
1251
|
+
const spacePlugin = (0, import_app_framework7.usePlugin)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1291
1252
|
const client = (0, import_react_client4.useClient)();
|
|
1292
1253
|
const identity = (0, import_halo.useIdentity)();
|
|
1293
1254
|
const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo7.getSpace)(object);
|
|
1294
1255
|
const spaceMembers = (0, import_echo7.useMembers)(space?.key);
|
|
1295
|
-
const [_moment, setMoment] = (0,
|
|
1296
|
-
(0,
|
|
1256
|
+
const [_moment, setMoment] = (0, import_react21.useState)(Date.now());
|
|
1257
|
+
(0, import_react21.useEffect)(() => {
|
|
1297
1258
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1298
1259
|
return () => clearInterval(interval);
|
|
1299
1260
|
}, []);
|
|
1300
|
-
const memberOnline = (0,
|
|
1301
|
-
const memberIsNotSelf = (0,
|
|
1261
|
+
const memberOnline = (0, import_react21.useCallback)((member) => member.presence === 1, []);
|
|
1262
|
+
const memberIsNotSelf = (0, import_react21.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
|
|
1302
1263
|
identity?.identityKey
|
|
1303
1264
|
]);
|
|
1304
1265
|
if (!identity || !spacePlugin || !space) {
|
|
@@ -1316,61 +1277,61 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1316
1277
|
lastSeen
|
|
1317
1278
|
};
|
|
1318
1279
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1319
|
-
return /* @__PURE__ */
|
|
1280
|
+
return /* @__PURE__ */ import_react21.default.createElement(FullPresence, {
|
|
1320
1281
|
members: membersForObject
|
|
1321
1282
|
});
|
|
1322
1283
|
};
|
|
1323
1284
|
var FullPresence = (props) => {
|
|
1324
1285
|
const { size = 9, onMemberClick } = props;
|
|
1325
|
-
const members = (0,
|
|
1286
|
+
const members = (0, import_react_ui13.useDefaultValue)(props.members, () => []);
|
|
1326
1287
|
if (members.length === 0) {
|
|
1327
1288
|
return null;
|
|
1328
1289
|
}
|
|
1329
|
-
return /* @__PURE__ */
|
|
1290
|
+
return /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.AvatarGroup.Root, {
|
|
1330
1291
|
size,
|
|
1331
1292
|
classNames: "mbs-2 mie-4",
|
|
1332
1293
|
"data-testid": "spacePlugin.presence"
|
|
1333
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1294
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Root, {
|
|
1334
1295
|
key: member.identity.identityKey.toHex()
|
|
1335
|
-
}, /* @__PURE__ */
|
|
1296
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Trigger, null, /* @__PURE__ */ import_react21.default.createElement(PrensenceAvatar, {
|
|
1336
1297
|
identity: member.identity,
|
|
1337
1298
|
group: true,
|
|
1338
1299
|
match: member.currentlyAttended,
|
|
1339
1300
|
index: members.length - i,
|
|
1340
1301
|
onClick: () => onMemberClick?.(member)
|
|
1341
|
-
})), /* @__PURE__ */
|
|
1302
|
+
})), /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Content, {
|
|
1342
1303
|
side: "bottom"
|
|
1343
|
-
}, /* @__PURE__ */
|
|
1304
|
+
}, /* @__PURE__ */ import_react21.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Trigger, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.AvatarGroupItem.Root, {
|
|
1344
1305
|
status: "inactive"
|
|
1345
|
-
}, /* @__PURE__ */
|
|
1306
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Avatar.Frame, {
|
|
1346
1307
|
style: {
|
|
1347
1308
|
zIndex: members.length - 4
|
|
1348
1309
|
}
|
|
1349
|
-
}, /* @__PURE__ */
|
|
1310
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Avatar.Fallback, {
|
|
1350
1311
|
text: `+${members.length - 3}`
|
|
1351
|
-
})))), /* @__PURE__ */
|
|
1312
|
+
})))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Content, {
|
|
1352
1313
|
side: "bottom"
|
|
1353
|
-
}, /* @__PURE__ */
|
|
1314
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Arrow, null), /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.List, {
|
|
1354
1315
|
classNames: "max-h-56 overflow-y-auto"
|
|
1355
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1316
|
+
}, members.map((member) => /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.ListItem.Root, {
|
|
1356
1317
|
key: member.identity.identityKey.toHex(),
|
|
1357
1318
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1358
1319
|
onClick: () => onMemberClick?.(member),
|
|
1359
1320
|
"data-testid": "identity-list-item"
|
|
1360
|
-
}, /* @__PURE__ */
|
|
1321
|
+
}, /* @__PURE__ */ import_react21.default.createElement(PrensenceAvatar, {
|
|
1361
1322
|
identity: member.identity,
|
|
1362
1323
|
showName: true,
|
|
1363
1324
|
match: member.currentlyAttended
|
|
1364
1325
|
}))))))));
|
|
1365
1326
|
};
|
|
1366
1327
|
var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) => {
|
|
1367
|
-
const Root = group ?
|
|
1328
|
+
const Root = group ? import_react_ui13.AvatarGroupItem.Root : import_react_ui13.Avatar.Root;
|
|
1368
1329
|
const status = match ? "current" : "active";
|
|
1369
1330
|
const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
|
|
1370
|
-
return /* @__PURE__ */
|
|
1331
|
+
return /* @__PURE__ */ import_react21.default.createElement(Root, {
|
|
1371
1332
|
status,
|
|
1372
1333
|
hue: identity.profile?.data?.hue || fallbackValue.hue
|
|
1373
|
-
}, /* @__PURE__ */
|
|
1334
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Avatar.Frame, {
|
|
1374
1335
|
"data-testid": "spacePlugin.presence.member",
|
|
1375
1336
|
"data-status": status,
|
|
1376
1337
|
...index ? {
|
|
@@ -1379,9 +1340,9 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
|
|
|
1379
1340
|
}
|
|
1380
1341
|
} : {},
|
|
1381
1342
|
onClick: () => onClick?.()
|
|
1382
|
-
}, /* @__PURE__ */
|
|
1343
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Avatar.Fallback, {
|
|
1383
1344
|
text: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
1384
|
-
})), showName && /* @__PURE__ */
|
|
1345
|
+
})), showName && /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Avatar.Label, {
|
|
1385
1346
|
classNames: "text-sm truncate pli-2"
|
|
1386
1347
|
}, getName(identity)));
|
|
1387
1348
|
};
|
|
@@ -1390,8 +1351,8 @@ var SmallPresenceLive = ({ id, viewers }) => {
|
|
|
1390
1351
|
const moment = Date.now();
|
|
1391
1352
|
return Array.from(viewers2.values()).filter(({ lastSeen }) => moment - lastSeen < ACTIVITY_DURATION);
|
|
1392
1353
|
};
|
|
1393
|
-
const [activeViewers, setActiveViewers] = (0,
|
|
1394
|
-
(0,
|
|
1354
|
+
const [activeViewers, setActiveViewers] = (0, import_react21.useState)(viewers ? getActiveViewers(viewers) : []);
|
|
1355
|
+
(0, import_react21.useEffect)(() => {
|
|
1395
1356
|
if (viewers) {
|
|
1396
1357
|
setActiveViewers(getActiveViewers(viewers));
|
|
1397
1358
|
const interval = setInterval(() => {
|
|
@@ -1402,38 +1363,38 @@ var SmallPresenceLive = ({ id, viewers }) => {
|
|
|
1402
1363
|
}, [
|
|
1403
1364
|
viewers
|
|
1404
1365
|
]);
|
|
1405
|
-
return /* @__PURE__ */
|
|
1366
|
+
return /* @__PURE__ */ import_react21.default.createElement(SmallPresence, {
|
|
1406
1367
|
id,
|
|
1407
1368
|
count: activeViewers.length
|
|
1408
1369
|
});
|
|
1409
1370
|
};
|
|
1410
1371
|
var SmallPresence = ({ id, count }) => {
|
|
1411
|
-
const { t } = (0,
|
|
1372
|
+
const { t } = (0, import_react_ui13.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1412
1373
|
const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
|
|
1413
1374
|
const attention = hasAttention || isAncestor || isRelated;
|
|
1414
|
-
return /* @__PURE__ */
|
|
1375
|
+
return /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Trigger, {
|
|
1415
1376
|
asChild: true
|
|
1416
|
-
}, /* @__PURE__ */
|
|
1377
|
+
}, /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1417
1378
|
role: "none",
|
|
1418
1379
|
className: "flex",
|
|
1419
1380
|
"data-attention": attention
|
|
1420
|
-
}, /* @__PURE__ */
|
|
1381
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_attention.AttentionGlyph, {
|
|
1421
1382
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
1422
1383
|
classNames: "self-center mie-1"
|
|
1423
|
-
}))), /* @__PURE__ */
|
|
1384
|
+
}))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Content, {
|
|
1424
1385
|
side: "bottom",
|
|
1425
1386
|
classNames: "z-[70]"
|
|
1426
|
-
}, /* @__PURE__ */
|
|
1387
|
+
}, /* @__PURE__ */ import_react21.default.createElement("span", null, t("presence label", {
|
|
1427
1388
|
count
|
|
1428
|
-
})), /* @__PURE__ */
|
|
1389
|
+
})), /* @__PURE__ */ import_react21.default.createElement(import_react_ui13.Tooltip.Arrow, null))));
|
|
1429
1390
|
};
|
|
1430
1391
|
var SpaceSettings = ({ settings }) => {
|
|
1431
|
-
const { t } = (0,
|
|
1432
|
-
const dispatch = (0,
|
|
1433
|
-
const plugins = (0,
|
|
1434
|
-
return /* @__PURE__ */
|
|
1392
|
+
const { t } = (0, import_react_ui14.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1393
|
+
const dispatch = (0, import_app_framework8.useIntentDispatcher)();
|
|
1394
|
+
const plugins = (0, import_app_framework8.useResolvePlugins)(import_chunk_HTAM5LQD.parseSpaceInitPlugin);
|
|
1395
|
+
return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
1435
1396
|
label: t("show hidden spaces label")
|
|
1436
|
-
}, /* @__PURE__ */
|
|
1397
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Input.Switch, {
|
|
1437
1398
|
checked: settings.showHidden,
|
|
1438
1399
|
onCheckedChange: (checked) => dispatch({
|
|
1439
1400
|
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
@@ -1442,28 +1403,33 @@ var SpaceSettings = ({ settings }) => {
|
|
|
1442
1403
|
state: !!checked
|
|
1443
1404
|
}
|
|
1444
1405
|
})
|
|
1445
|
-
})), /* @__PURE__ */
|
|
1406
|
+
})), /* @__PURE__ */ import_react22.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
1446
1407
|
label: t("default on space create label")
|
|
1447
|
-
}, /* @__PURE__ */
|
|
1408
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Select.Root, {
|
|
1448
1409
|
value: settings.onSpaceCreate,
|
|
1449
1410
|
onValueChange: (value) => {
|
|
1450
1411
|
settings.onSpaceCreate = value;
|
|
1451
1412
|
}
|
|
1452
|
-
}, /* @__PURE__ */
|
|
1413
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Select.TriggerButton, null), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Select.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Select.Content, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Select.Viewport, null, plugins.map(({ provides: { space: { onSpaceCreate } } }) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Select.Option, {
|
|
1453
1414
|
key: onSpaceCreate.action,
|
|
1454
1415
|
value: onSpaceCreate.action
|
|
1455
|
-
}, (0,
|
|
1416
|
+
}, (0, import_react_ui14.toLocalizedString)(onSpaceCreate.label, t)))))))));
|
|
1456
1417
|
};
|
|
1457
1418
|
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettingsPanel.tsx";
|
|
1458
1419
|
var SpaceSettingsPanel = ({ space }) => {
|
|
1459
|
-
const { t } = (0,
|
|
1460
|
-
const
|
|
1461
|
-
const
|
|
1420
|
+
const { t } = (0, import_react_ui15.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1421
|
+
const client = (0, import_react_client5.useClient)();
|
|
1422
|
+
const devices = (0, import_halo2.useDevices)();
|
|
1423
|
+
const managedDeviceAvailable = devices.find((device) => device.profile?.type === import_halo2.DeviceType.AGENT_MANAGED);
|
|
1424
|
+
const edgeAgents = Boolean(client.config.values.runtime?.client?.edgeFeatures?.agents);
|
|
1425
|
+
const edgeReplicationAvailable = edgeAgents && managedDeviceAvailable;
|
|
1426
|
+
const [edgeReplication, setEdgeReplication] = (0, import_react23.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
|
|
1427
|
+
const toggleEdgeReplication = (0, import_react23.useCallback)(async (next) => {
|
|
1462
1428
|
setEdgeReplication(next);
|
|
1463
1429
|
await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1464
1430
|
import_log3.log.catch(err, void 0, {
|
|
1465
1431
|
F: __dxlog_file3,
|
|
1466
|
-
L:
|
|
1432
|
+
L: 38,
|
|
1467
1433
|
S: void 0,
|
|
1468
1434
|
C: (f, a) => f(...a)
|
|
1469
1435
|
});
|
|
@@ -1472,43 +1438,113 @@ var SpaceSettingsPanel = ({ space }) => {
|
|
|
1472
1438
|
}, [
|
|
1473
1439
|
space
|
|
1474
1440
|
]);
|
|
1475
|
-
return /* @__PURE__ */
|
|
1441
|
+
return /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1476
1442
|
role: "form",
|
|
1477
1443
|
className: "flex flex-col w-full p-2 gap-4"
|
|
1478
|
-
}, /* @__PURE__ */
|
|
1444
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1479
1445
|
role: "none",
|
|
1480
1446
|
className: "flex flex-col gap-1"
|
|
1481
|
-
}, /* @__PURE__ */
|
|
1447
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Label, null, t("name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.TextInput, {
|
|
1482
1448
|
placeholder: t("name placeholder"),
|
|
1483
|
-
value: space.properties.name,
|
|
1449
|
+
value: space.properties.name ?? "",
|
|
1484
1450
|
onChange: (event) => {
|
|
1485
1451
|
space.properties.name = event.target.value;
|
|
1486
1452
|
}
|
|
1487
|
-
}))), /* @__PURE__ */
|
|
1453
|
+
}))), edgeReplicationAvailable && /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1488
1454
|
role: "none",
|
|
1489
1455
|
className: "flex justify-between"
|
|
1490
|
-
}, /* @__PURE__ */
|
|
1456
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Label, null, t("edge replication label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Switch, {
|
|
1491
1457
|
checked: edgeReplication,
|
|
1492
1458
|
onCheckedChange: toggleEdgeReplication
|
|
1493
1459
|
}))));
|
|
1494
1460
|
};
|
|
1495
|
-
var
|
|
1496
|
-
var
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1461
|
+
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1462
|
+
var styles = {
|
|
1463
|
+
barBg: "bg-neutral-50 dark:bg-green-900 text-black",
|
|
1464
|
+
barFg: "bg-neutral-100 bg-green-500",
|
|
1465
|
+
barHover: "dark:hover:bg-green-500"
|
|
1466
|
+
};
|
|
1467
|
+
var useActive = (count) => {
|
|
1468
|
+
const [current, setCurrent] = (0, import_react25.useState)(count);
|
|
1469
|
+
const [active, setActive] = (0, import_react25.useState)(false);
|
|
1500
1470
|
(0, import_react25.useEffect)(() => {
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1471
|
+
let t;
|
|
1472
|
+
if (count !== current) {
|
|
1473
|
+
setActive(true);
|
|
1474
|
+
setCurrent(count);
|
|
1475
|
+
t && clearTimeout(t);
|
|
1476
|
+
t = setTimeout(() => {
|
|
1477
|
+
setActive(false);
|
|
1478
|
+
}, SYNC_STALLED_TIMEOUT);
|
|
1479
|
+
}
|
|
1480
|
+
return () => {
|
|
1481
|
+
setActive(false);
|
|
1482
|
+
clearTimeout(t);
|
|
1483
|
+
};
|
|
1484
|
+
}, [
|
|
1485
|
+
count,
|
|
1486
|
+
current
|
|
1487
|
+
]);
|
|
1488
|
+
return active;
|
|
1489
|
+
};
|
|
1490
|
+
var SpaceRow = ({ spaceId, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
|
|
1491
|
+
const downActive = useActive(localDocumentCount);
|
|
1492
|
+
const upActive = useActive(remoteDocumentCount);
|
|
1493
|
+
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1494
|
+
className: (0, import_react_ui_theme7.mx)("flex items-center mx-[2px] gap-[2px] cursor-pointer", styles.barHover),
|
|
1495
|
+
title: spaceId,
|
|
1496
|
+
onClick: () => {
|
|
1497
|
+
void navigator.clipboard.writeText(spaceId);
|
|
1498
|
+
}
|
|
1507
1499
|
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
|
|
1508
|
-
icon:
|
|
1509
|
-
size:
|
|
1500
|
+
icon: "ph--arrow-fat-line-left--regular",
|
|
1501
|
+
size: 3,
|
|
1502
|
+
classNames: (0, import_react_ui_theme7.mx)(downActive && "animate-[pulse_1s_infinite]")
|
|
1503
|
+
}), /* @__PURE__ */ import_react25.default.createElement(Candle, {
|
|
1504
|
+
up: {
|
|
1505
|
+
count: remoteDocumentCount,
|
|
1506
|
+
total: remoteDocumentCount + missingOnRemote
|
|
1507
|
+
},
|
|
1508
|
+
down: {
|
|
1509
|
+
count: localDocumentCount,
|
|
1510
|
+
total: localDocumentCount + missingOnLocal
|
|
1511
|
+
},
|
|
1512
|
+
title: spaceId
|
|
1513
|
+
}), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
|
|
1514
|
+
icon: "ph--arrow-fat-line-right--regular",
|
|
1515
|
+
size: 3,
|
|
1516
|
+
classNames: (0, import_react_ui_theme7.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
|
|
1510
1517
|
}));
|
|
1511
1518
|
};
|
|
1519
|
+
var Candle = ({ classNames, up, down }) => {
|
|
1520
|
+
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1521
|
+
className: (0, import_react_ui_theme7.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
|
|
1522
|
+
}, /* @__PURE__ */ import_react25.default.createElement(Bar, {
|
|
1523
|
+
classNames: "justify-end",
|
|
1524
|
+
...up
|
|
1525
|
+
}), /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1526
|
+
className: "relative"
|
|
1527
|
+
}, /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1528
|
+
className: (0, import_react_ui_theme7.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
|
|
1529
|
+
}, up.total)), /* @__PURE__ */ import_react25.default.createElement(Bar, down));
|
|
1530
|
+
};
|
|
1531
|
+
var Bar = ({ classNames, count, total }) => {
|
|
1532
|
+
let p = count / total * 100;
|
|
1533
|
+
if (count < total) {
|
|
1534
|
+
p = Math.min(p, 95);
|
|
1535
|
+
}
|
|
1536
|
+
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1537
|
+
className: (0, import_react_ui_theme7.mx)("relative flex w-full", styles.barBg, classNames)
|
|
1538
|
+
}, /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1539
|
+
className: (0, import_react_ui_theme7.mx)("shrink-0", styles.barFg),
|
|
1540
|
+
style: {
|
|
1541
|
+
width: `${p}%`
|
|
1542
|
+
}
|
|
1543
|
+
}), count !== total && /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1544
|
+
className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
|
|
1545
|
+
}, count));
|
|
1546
|
+
};
|
|
1547
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
|
|
1512
1548
|
var createClientSaveTracker = (client, cb) => {
|
|
1513
1549
|
const unsubscribeCallbacks = {};
|
|
1514
1550
|
const state = {};
|
|
@@ -1537,7 +1573,7 @@ var createClientSaveTracker = (client, cb) => {
|
|
|
1537
1573
|
var createSpaceSaveTracker = (space, cb) => {
|
|
1538
1574
|
const ctx = new import_context.Context(void 0, {
|
|
1539
1575
|
F: __dxlog_file4,
|
|
1540
|
-
L:
|
|
1576
|
+
L: 40
|
|
1541
1577
|
});
|
|
1542
1578
|
void space.waitUntilReady().then(() => {
|
|
1543
1579
|
if (ctx.disposed) {
|
|
@@ -1567,7 +1603,34 @@ var createSpaceSaveTracker = (space, cb) => {
|
|
|
1567
1603
|
void ctx.dispose();
|
|
1568
1604
|
};
|
|
1569
1605
|
};
|
|
1570
|
-
var
|
|
1606
|
+
var getStatus = ({ offline, saved, needsToUpload, needsToDownload }) => {
|
|
1607
|
+
if (!saved) {
|
|
1608
|
+
return "saving locally";
|
|
1609
|
+
} else if (!offline && needsToDownload) {
|
|
1610
|
+
return "downloading";
|
|
1611
|
+
} else if (!offline && needsToUpload) {
|
|
1612
|
+
return "uploading";
|
|
1613
|
+
} else if (offline && !needsToUpload && !needsToDownload) {
|
|
1614
|
+
return "offline persisted";
|
|
1615
|
+
} else {
|
|
1616
|
+
return "remote synced";
|
|
1617
|
+
}
|
|
1618
|
+
};
|
|
1619
|
+
var getIcon = (status) => {
|
|
1620
|
+
switch (status) {
|
|
1621
|
+
case "saving locally":
|
|
1622
|
+
return "ph--download--regular";
|
|
1623
|
+
case "downloading":
|
|
1624
|
+
return "ph--cloud-arrow-down--regular";
|
|
1625
|
+
case "uploading":
|
|
1626
|
+
return "ph--cloud-arrow-up--regular";
|
|
1627
|
+
case "offline persisted":
|
|
1628
|
+
return "ph--check-circle--regular";
|
|
1629
|
+
case "remote synced":
|
|
1630
|
+
return "ph--cloud-check--regular";
|
|
1631
|
+
}
|
|
1632
|
+
};
|
|
1633
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
|
|
1571
1634
|
var createEmptyEdgeSyncState = () => ({
|
|
1572
1635
|
missingOnLocal: 0,
|
|
1573
1636
|
missingOnRemote: 0,
|
|
@@ -1587,9 +1650,9 @@ var getSyncSummary = (syncMap) => {
|
|
|
1587
1650
|
};
|
|
1588
1651
|
var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
|
|
1589
1652
|
var useSyncState = () => {
|
|
1590
|
-
const client = (0,
|
|
1591
|
-
const [spaceState, setSpaceState] = (0,
|
|
1592
|
-
(0,
|
|
1653
|
+
const client = (0, import_react_client7.useClient)();
|
|
1654
|
+
const [spaceState, setSpaceState] = (0, import_react26.useState)({});
|
|
1655
|
+
(0, import_react26.useEffect)(() => {
|
|
1593
1656
|
const ctx = new import_context2.Context(void 0, {
|
|
1594
1657
|
F: __dxlog_file5,
|
|
1595
1658
|
L: 48
|
|
@@ -1622,146 +1685,86 @@ var useSyncState = () => {
|
|
|
1622
1685
|
]);
|
|
1623
1686
|
return spaceState;
|
|
1624
1687
|
};
|
|
1625
|
-
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1626
|
-
var styles = {
|
|
1627
|
-
barBg: "bg-neutral-50 dark:bg-green-900 text-black",
|
|
1628
|
-
barFg: "bg-neutral-100 bg-green-500",
|
|
1629
|
-
barHover: "dark:hover:bg-green-500"
|
|
1630
|
-
};
|
|
1631
1688
|
var SyncStatus = () => {
|
|
1689
|
+
const client = (0, import_react_client6.useClient)();
|
|
1632
1690
|
const state = useSyncState();
|
|
1633
|
-
|
|
1634
|
-
|
|
1691
|
+
const [saved, setSaved] = (0, import_react24.useState)(true);
|
|
1692
|
+
(0, import_react24.useEffect)(() => {
|
|
1693
|
+
return createClientSaveTracker(client, (state2) => {
|
|
1694
|
+
setSaved(state2 === "saved");
|
|
1695
|
+
});
|
|
1696
|
+
}, []);
|
|
1697
|
+
return /* @__PURE__ */ import_react24.default.createElement(SyncStatusIndicator, {
|
|
1698
|
+
state,
|
|
1699
|
+
saved
|
|
1635
1700
|
});
|
|
1636
1701
|
};
|
|
1637
|
-
var SyncStatusIndicator = ({ state }) => {
|
|
1702
|
+
var SyncStatusIndicator = ({ state, saved }) => {
|
|
1703
|
+
const { t } = (0, import_react_ui16.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1638
1704
|
const summary = getSyncSummary(state);
|
|
1639
|
-
const offline =
|
|
1705
|
+
const offline = Object.values(state).length === 0;
|
|
1640
1706
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
1641
1707
|
const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
|
|
1642
|
-
const
|
|
1643
|
-
|
|
1708
|
+
const status = getStatus({
|
|
1709
|
+
offline,
|
|
1710
|
+
saved,
|
|
1711
|
+
needsToUpload,
|
|
1712
|
+
needsToDownload
|
|
1713
|
+
});
|
|
1714
|
+
const [classNames, setClassNames] = (0, import_react24.useState)();
|
|
1715
|
+
(0, import_react24.useEffect)(() => {
|
|
1644
1716
|
setClassNames(void 0);
|
|
1645
|
-
if (!needsToUpload && !needsToDownload) {
|
|
1717
|
+
if (offline || !needsToUpload && !needsToDownload) {
|
|
1646
1718
|
return;
|
|
1647
1719
|
}
|
|
1648
|
-
const
|
|
1720
|
+
const t2 = setTimeout(() => {
|
|
1649
1721
|
setClassNames("text-orange-500");
|
|
1650
1722
|
}, SYNC_STALLED_TIMEOUT);
|
|
1651
|
-
return () => clearTimeout(
|
|
1723
|
+
return () => clearTimeout(t2);
|
|
1652
1724
|
}, [
|
|
1725
|
+
offline,
|
|
1653
1726
|
needsToUpload,
|
|
1654
1727
|
needsToDownload
|
|
1655
1728
|
]);
|
|
1656
|
-
|
|
1657
|
-
|
|
1729
|
+
const title = t(`${status} label`);
|
|
1730
|
+
const icon = /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Icon, {
|
|
1731
|
+
icon: getIcon(status),
|
|
1658
1732
|
size: 4,
|
|
1659
1733
|
classNames
|
|
1660
|
-
})
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1734
|
+
});
|
|
1735
|
+
if (offline) {
|
|
1736
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_plugin_status_bar.StatusBar.Item, {
|
|
1737
|
+
title
|
|
1738
|
+
}, icon);
|
|
1739
|
+
} else {
|
|
1740
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Popover.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Popover.Trigger, {
|
|
1741
|
+
asChild: true
|
|
1742
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_plugin_status_bar.StatusBar.Button, {
|
|
1743
|
+
title
|
|
1744
|
+
}, icon)), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Popover.Portal, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Popover.Content, {
|
|
1745
|
+
sideOffset: 16
|
|
1746
|
+
}, /* @__PURE__ */ import_react24.default.createElement(SyncStatusDetail, {
|
|
1747
|
+
state,
|
|
1748
|
+
summary,
|
|
1749
|
+
debug: false
|
|
1750
|
+
}))));
|
|
1751
|
+
}
|
|
1667
1752
|
};
|
|
1668
1753
|
var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
1669
|
-
const { t } = (0,
|
|
1754
|
+
const { t } = (0, import_react_ui16.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
|
|
1670
1755
|
const entries = Object.entries(state).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
1671
|
-
return /* @__PURE__ */
|
|
1672
|
-
className: (0,
|
|
1673
|
-
}, /* @__PURE__ */
|
|
1674
|
-
className: "
|
|
1675
|
-
},
|
|
1676
|
-
className: "flex flex-col gap-[2px] my-[2px]"
|
|
1677
|
-
}, entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react26.default.createElement(SpaceRow, {
|
|
1756
|
+
return /* @__PURE__ */ import_react24.default.createElement("div", {
|
|
1757
|
+
className: (0, import_react_ui_theme6.mx)("flex flex-col gap-3 p-2 text-xs min-w-[16rem]", classNames)
|
|
1758
|
+
}, /* @__PURE__ */ import_react24.default.createElement("h1", null, t("sync status title")), /* @__PURE__ */ import_react24.default.createElement("div", {
|
|
1759
|
+
className: "flex flex-col gap-2"
|
|
1760
|
+
}, entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react24.default.createElement(SpaceRow, {
|
|
1678
1761
|
key: spaceId,
|
|
1679
1762
|
spaceId,
|
|
1680
1763
|
state: state2
|
|
1681
|
-
}))), debug && /* @__PURE__ */
|
|
1764
|
+
}))), debug && /* @__PURE__ */ import_react24.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
|
|
1682
1765
|
language: "json"
|
|
1683
1766
|
}, JSON.stringify(summary, null, 2)));
|
|
1684
1767
|
};
|
|
1685
|
-
var useActive = (count) => {
|
|
1686
|
-
const [current, setCurrent] = (0, import_react26.useState)(count);
|
|
1687
|
-
const [active, setActive] = (0, import_react26.useState)(false);
|
|
1688
|
-
(0, import_react26.useEffect)(() => {
|
|
1689
|
-
let t;
|
|
1690
|
-
if (count !== current) {
|
|
1691
|
-
setActive(true);
|
|
1692
|
-
setCurrent(count);
|
|
1693
|
-
t && clearTimeout(t);
|
|
1694
|
-
t = setTimeout(() => {
|
|
1695
|
-
setActive(false);
|
|
1696
|
-
}, SYNC_STALLED_TIMEOUT);
|
|
1697
|
-
}
|
|
1698
|
-
return () => {
|
|
1699
|
-
setActive(false);
|
|
1700
|
-
clearTimeout(t);
|
|
1701
|
-
};
|
|
1702
|
-
}, [
|
|
1703
|
-
count,
|
|
1704
|
-
current
|
|
1705
|
-
]);
|
|
1706
|
-
return active;
|
|
1707
|
-
};
|
|
1708
|
-
var SpaceRow = ({ spaceId, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
|
|
1709
|
-
const downActive = useActive(localDocumentCount);
|
|
1710
|
-
const upActive = useActive(remoteDocumentCount);
|
|
1711
|
-
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1712
|
-
className: (0, import_react_ui_theme7.mx)("flex items-center mx-[2px] gap-[2px] cursor-pointer", styles.barHover),
|
|
1713
|
-
title: spaceId,
|
|
1714
|
-
onClick: () => {
|
|
1715
|
-
void navigator.clipboard.writeText(spaceId);
|
|
1716
|
-
}
|
|
1717
|
-
}, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1718
|
-
icon: "ph--arrow-fat-line-left--regular",
|
|
1719
|
-
size: 3,
|
|
1720
|
-
classNames: (0, import_react_ui_theme7.mx)(downActive && "animate-[pulse_1s_infinite]")
|
|
1721
|
-
}), /* @__PURE__ */ import_react26.default.createElement(Candle, {
|
|
1722
|
-
up: {
|
|
1723
|
-
count: remoteDocumentCount,
|
|
1724
|
-
total: remoteDocumentCount + missingOnRemote
|
|
1725
|
-
},
|
|
1726
|
-
down: {
|
|
1727
|
-
count: localDocumentCount,
|
|
1728
|
-
total: localDocumentCount + missingOnLocal
|
|
1729
|
-
},
|
|
1730
|
-
title: spaceId
|
|
1731
|
-
}), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1732
|
-
icon: "ph--arrow-fat-line-right--regular",
|
|
1733
|
-
size: 3,
|
|
1734
|
-
classNames: (0, import_react_ui_theme7.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
|
|
1735
|
-
}));
|
|
1736
|
-
};
|
|
1737
|
-
var Candle = ({ classNames, up, down }) => {
|
|
1738
|
-
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1739
|
-
className: (0, import_react_ui_theme7.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
|
|
1740
|
-
}, /* @__PURE__ */ import_react26.default.createElement(Bar, {
|
|
1741
|
-
classNames: "justify-end",
|
|
1742
|
-
...up
|
|
1743
|
-
}), /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1744
|
-
className: "relative"
|
|
1745
|
-
}, /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1746
|
-
className: (0, import_react_ui_theme7.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
|
|
1747
|
-
}, up.total)), /* @__PURE__ */ import_react26.default.createElement(Bar, down));
|
|
1748
|
-
};
|
|
1749
|
-
var Bar = ({ classNames, count, total }) => {
|
|
1750
|
-
let p = count / total * 100;
|
|
1751
|
-
if (count < total) {
|
|
1752
|
-
p = Math.min(p, 95);
|
|
1753
|
-
}
|
|
1754
|
-
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1755
|
-
className: (0, import_react_ui_theme7.mx)("relative flex w-full", styles.barBg, classNames)
|
|
1756
|
-
}, /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1757
|
-
className: (0, import_react_ui_theme7.mx)("shrink-0", styles.barFg),
|
|
1758
|
-
style: {
|
|
1759
|
-
width: `${p}%`
|
|
1760
|
-
}
|
|
1761
|
-
}), count !== total && /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1762
|
-
className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
|
|
1763
|
-
}, count));
|
|
1764
|
-
};
|
|
1765
1768
|
var translations_default = [
|
|
1766
1769
|
{
|
|
1767
1770
|
"en-US": {
|
|
@@ -1848,14 +1851,19 @@ var translations_default = [
|
|
|
1848
1851
|
"name label": "Name",
|
|
1849
1852
|
"name placeholder": "Name",
|
|
1850
1853
|
"unnamed object settings label": "Settings",
|
|
1851
|
-
"edge replication label": "Enable EDGE Replication"
|
|
1854
|
+
"edge replication label": "Enable EDGE Replication",
|
|
1855
|
+
"saving locally label": "Writing to disk",
|
|
1856
|
+
"downloading label": "Replicating from peers",
|
|
1857
|
+
"uploading label": "Replicating to peers",
|
|
1858
|
+
"offline persisted label": "Saved to disk (offline)",
|
|
1859
|
+
"remote synced label": "Synced with peers",
|
|
1860
|
+
"open settings panel label": "Show Settings"
|
|
1852
1861
|
}
|
|
1853
1862
|
}
|
|
1854
1863
|
}
|
|
1855
1864
|
];
|
|
1856
1865
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
|
|
1857
1866
|
var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
|
|
1858
|
-
var OBJECT_ID_LENGTH = 60;
|
|
1859
1867
|
var SPACE_MAX_OBJECTS = 500;
|
|
1860
1868
|
var DIRECTORY_TYPE = "text/directory";
|
|
1861
1869
|
var parseSpacePlugin = (plugin) => Array.isArray(plugin?.provides.space?.enabled) ? plugin : void 0;
|
|
@@ -1875,15 +1883,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1875
1883
|
const spaceSubscriptions = new import_async.EventSubscriptions();
|
|
1876
1884
|
const graphSubscriptions = /* @__PURE__ */ new Map();
|
|
1877
1885
|
let clientPlugin;
|
|
1886
|
+
let graphPlugin;
|
|
1878
1887
|
let intentPlugin;
|
|
1888
|
+
let layoutPlugin;
|
|
1879
1889
|
let navigationPlugin;
|
|
1880
1890
|
let attentionPlugin;
|
|
1881
1891
|
const onSpaceReady = async () => {
|
|
1882
|
-
if (!clientPlugin || !navigationPlugin || !attentionPlugin) {
|
|
1892
|
+
if (!clientPlugin || !intentPlugin || !graphPlugin || !navigationPlugin || !layoutPlugin || !attentionPlugin) {
|
|
1883
1893
|
return;
|
|
1884
1894
|
}
|
|
1885
1895
|
const client = clientPlugin.provides.client;
|
|
1896
|
+
const dispatch = intentPlugin.provides.intent.dispatch;
|
|
1897
|
+
const graph = graphPlugin.provides.graph;
|
|
1886
1898
|
const location = navigationPlugin.provides.location;
|
|
1899
|
+
const layout = layoutPlugin.provides.layout;
|
|
1887
1900
|
const attention = attentionPlugin.provides.attention;
|
|
1888
1901
|
const defaultSpace = client.spaces.default;
|
|
1889
1902
|
if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== "boolean") {
|
|
@@ -1898,6 +1911,24 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1898
1911
|
order: []
|
|
1899
1912
|
}));
|
|
1900
1913
|
}
|
|
1914
|
+
subscriptions.add((0, import_core.scheduledEffect)(() => ({
|
|
1915
|
+
layoutMode: layout.layoutMode,
|
|
1916
|
+
soloPart: location.active.solo?.[0]
|
|
1917
|
+
}), ({ layoutMode, soloPart }) => {
|
|
1918
|
+
if (layoutMode !== "solo" || !soloPart) {
|
|
1919
|
+
return;
|
|
1920
|
+
}
|
|
1921
|
+
const node = graph.findNode(soloPart.id);
|
|
1922
|
+
if (!node && soloPart.id.length === import_echo.FQ_ID_LENGTH) {
|
|
1923
|
+
void dispatch({
|
|
1924
|
+
plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
|
|
1925
|
+
action: import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT,
|
|
1926
|
+
data: {
|
|
1927
|
+
id: soloPart.id
|
|
1928
|
+
}
|
|
1929
|
+
});
|
|
1930
|
+
}
|
|
1931
|
+
}));
|
|
1901
1932
|
subscriptions.add(client.spaces.subscribe(async (spaces) => {
|
|
1902
1933
|
if (defaultSpace.state.get() === import_echo.SpaceState.SPACE_REQUIRES_MIGRATION) {
|
|
1903
1934
|
await defaultSpace.internal.migrate();
|
|
@@ -1945,7 +1976,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1945
1976
|
err: err.message
|
|
1946
1977
|
}, {
|
|
1947
1978
|
F: __dxlog_file6,
|
|
1948
|
-
L:
|
|
1979
|
+
L: 257,
|
|
1949
1980
|
S: void 0,
|
|
1950
1981
|
C: (f, a) => f(...a)
|
|
1951
1982
|
});
|
|
@@ -2003,6 +2034,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2003
2034
|
key: "spaceNames",
|
|
2004
2035
|
type: import_local_storage.LocalStorageStore.json()
|
|
2005
2036
|
});
|
|
2037
|
+
graphPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseGraphPlugin);
|
|
2038
|
+
layoutPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseLayoutPlugin);
|
|
2006
2039
|
navigationPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseNavigationPlugin);
|
|
2007
2040
|
attentionPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_attention.parseAttentionPlugin);
|
|
2008
2041
|
clientPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_client.parseClientPlugin);
|
|
@@ -2014,7 +2047,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2014
2047
|
const dispatch = intentPlugin.provides.intent.dispatch;
|
|
2015
2048
|
const handleFirstRun = async () => {
|
|
2016
2049
|
const defaultSpace = client.spaces.default;
|
|
2017
|
-
defaultSpace.properties[
|
|
2050
|
+
defaultSpace.properties[import_chunk_HTAM5LQD.CollectionType.typename] = (0, import_echo.create)(import_chunk_HTAM5LQD.CollectionType, {
|
|
2018
2051
|
objects: [],
|
|
2019
2052
|
views: {}
|
|
2020
2053
|
});
|
|
@@ -2026,7 +2059,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2026
2059
|
dispatch
|
|
2027
2060
|
});
|
|
2028
2061
|
};
|
|
2029
|
-
client.spaces.isReady.subscribe(async (ready) => {
|
|
2062
|
+
subscriptions.add(client.spaces.isReady.subscribe(async (ready) => {
|
|
2030
2063
|
if (ready) {
|
|
2031
2064
|
await clientPlugin?.provides.client.spaces.default.waitUntilReady();
|
|
2032
2065
|
if (firstRun) {
|
|
@@ -2036,7 +2069,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2036
2069
|
}
|
|
2037
2070
|
await onSpaceReady();
|
|
2038
2071
|
}
|
|
2039
|
-
});
|
|
2072
|
+
}).unsubscribe);
|
|
2040
2073
|
},
|
|
2041
2074
|
unload: async () => {
|
|
2042
2075
|
settings.close();
|
|
@@ -2052,12 +2085,26 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2052
2085
|
...translations_default,
|
|
2053
2086
|
import_react2.osTranslations
|
|
2054
2087
|
],
|
|
2088
|
+
complementary: {
|
|
2089
|
+
panels: [
|
|
2090
|
+
{
|
|
2091
|
+
id: "settings",
|
|
2092
|
+
label: [
|
|
2093
|
+
"open settings panel label",
|
|
2094
|
+
{
|
|
2095
|
+
ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
|
|
2096
|
+
}
|
|
2097
|
+
],
|
|
2098
|
+
icon: "ph--gear--regular"
|
|
2099
|
+
}
|
|
2100
|
+
]
|
|
2101
|
+
},
|
|
2055
2102
|
root: () => state.values.awaiting ? /* @__PURE__ */ import_react.default.createElement(AwaitingObject, {
|
|
2056
2103
|
id: state.values.awaiting
|
|
2057
2104
|
}) : null,
|
|
2058
2105
|
metadata: {
|
|
2059
2106
|
records: {
|
|
2060
|
-
[
|
|
2107
|
+
[import_chunk_HTAM5LQD.CollectionType.typename]: {
|
|
2061
2108
|
placeholder: [
|
|
2062
2109
|
"unnamed collection label",
|
|
2063
2110
|
{
|
|
@@ -2075,30 +2122,26 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2075
2122
|
},
|
|
2076
2123
|
echo: {
|
|
2077
2124
|
schema: [
|
|
2078
|
-
|
|
2125
|
+
import_chunk_HTAM5LQD.CollectionType
|
|
2079
2126
|
]
|
|
2080
2127
|
},
|
|
2081
2128
|
surface: {
|
|
2082
2129
|
component: ({ data, role, ...rest }) => {
|
|
2083
|
-
const primary = data.active ?? data.object;
|
|
2084
2130
|
switch (role) {
|
|
2085
2131
|
case "article":
|
|
2086
|
-
|
|
2087
|
-
return (0, import_echo.isSpace)(primary) && primary.state.get() === import_echo.SpaceState.SPACE_READY ? /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
|
|
2132
|
+
return (0, import_echo.isSpace)(data.object) && data.object.state.get() === import_echo.SpaceState.SPACE_READY ? /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
|
|
2088
2133
|
data: {
|
|
2089
|
-
|
|
2090
|
-
id:
|
|
2134
|
+
object: data.object.properties[import_chunk_HTAM5LQD.CollectionType.typename],
|
|
2135
|
+
id: data.object.id
|
|
2091
2136
|
},
|
|
2092
2137
|
role,
|
|
2093
2138
|
...rest
|
|
2094
|
-
}) :
|
|
2139
|
+
}) : data.object instanceof import_chunk_HTAM5LQD.CollectionType ? {
|
|
2095
2140
|
node: /* @__PURE__ */ import_react.default.createElement(CollectionMain, {
|
|
2096
|
-
collection:
|
|
2141
|
+
collection: data.object
|
|
2097
2142
|
}),
|
|
2098
2143
|
disposition: "fallback"
|
|
2099
|
-
} :
|
|
2100
|
-
id: primary
|
|
2101
|
-
}) : null;
|
|
2144
|
+
} : null;
|
|
2102
2145
|
case "complementary--settings":
|
|
2103
2146
|
return (0, import_echo.isSpace)(data.subject) ? /* @__PURE__ */ import_react.default.createElement(SpaceSettingsPanel, {
|
|
2104
2147
|
space: data.subject
|
|
@@ -2147,7 +2190,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2147
2190
|
return null;
|
|
2148
2191
|
}
|
|
2149
2192
|
const space = (0, import_echo.isSpace)(data.object) ? data.object : (0, import_echo.getSpace)(data.object);
|
|
2150
|
-
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[
|
|
2193
|
+
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_HTAM5LQD.CollectionType.typename] : void 0 : data.object;
|
|
2151
2194
|
return space && object ? {
|
|
2152
2195
|
node: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SpacePresence, {
|
|
2153
2196
|
object
|
|
@@ -2158,7 +2201,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2158
2201
|
} : null;
|
|
2159
2202
|
}
|
|
2160
2203
|
case "section":
|
|
2161
|
-
return data.object instanceof
|
|
2204
|
+
return data.object instanceof import_chunk_HTAM5LQD.CollectionType ? /* @__PURE__ */ import_react.default.createElement(CollectionSection, {
|
|
2162
2205
|
collection: data.object
|
|
2163
2206
|
}) : null;
|
|
2164
2207
|
case "settings":
|
|
@@ -2174,7 +2217,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2174
2217
|
return null;
|
|
2175
2218
|
}
|
|
2176
2219
|
case "status": {
|
|
2177
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
2220
|
+
return /* @__PURE__ */ import_react.default.createElement(SyncStatus, null);
|
|
2178
2221
|
}
|
|
2179
2222
|
default:
|
|
2180
2223
|
return null;
|
|
@@ -2185,11 +2228,11 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2185
2228
|
builder: (plugins) => {
|
|
2186
2229
|
const clientPlugin2 = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_client.parseClientPlugin);
|
|
2187
2230
|
const metadataPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseMetadataResolverPlugin);
|
|
2188
|
-
const
|
|
2231
|
+
const graphPlugin2 = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseGraphPlugin);
|
|
2189
2232
|
const client = clientPlugin2?.provides.client;
|
|
2190
2233
|
const dispatch = intentPlugin?.provides.intent.dispatch;
|
|
2191
2234
|
const resolve = metadataPlugin?.provides.metadata.resolver;
|
|
2192
|
-
const graph =
|
|
2235
|
+
const graph = graphPlugin2?.provides.graph;
|
|
2193
2236
|
if (!client || !dispatch || !resolve || !graph) {
|
|
2194
2237
|
return [];
|
|
2195
2238
|
}
|
|
@@ -2235,7 +2278,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2235
2278
|
} else {
|
|
2236
2279
|
import_log.log.warn("spaces order object not found", void 0, {
|
|
2237
2280
|
F: __dxlog_file6,
|
|
2238
|
-
L:
|
|
2281
|
+
L: 553,
|
|
2239
2282
|
S: void 0,
|
|
2240
2283
|
C: (f, a) => f(...a)
|
|
2241
2284
|
});
|
|
@@ -2387,7 +2430,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2387
2430
|
if (state2 !== import_echo.SpaceState.SPACE_READY) {
|
|
2388
2431
|
return;
|
|
2389
2432
|
}
|
|
2390
|
-
const collection = space.properties[
|
|
2433
|
+
const collection = space.properties[import_chunk_HTAM5LQD.CollectionType.typename];
|
|
2391
2434
|
if (!collection) {
|
|
2392
2435
|
return;
|
|
2393
2436
|
}
|
|
@@ -2414,7 +2457,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2414
2457
|
// Create nodes for objects in collections.
|
|
2415
2458
|
(0, import_plugin_graph.createExtension)({
|
|
2416
2459
|
id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/collection-objects`,
|
|
2417
|
-
filter: (node) => node.data instanceof
|
|
2460
|
+
filter: (node) => node.data instanceof import_chunk_HTAM5LQD.CollectionType,
|
|
2418
2461
|
connector: ({ node }) => {
|
|
2419
2462
|
const collection = node.data;
|
|
2420
2463
|
const space = (0, import_echo.getSpace)(collection);
|
|
@@ -2533,7 +2576,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2533
2576
|
}
|
|
2534
2577
|
},
|
|
2535
2578
|
{
|
|
2536
|
-
inputType:
|
|
2579
|
+
inputType: import_chunk_HTAM5LQD.CollectionType.typename,
|
|
2537
2580
|
outputType: DIRECTORY_TYPE,
|
|
2538
2581
|
serialize: (node) => ({
|
|
2539
2582
|
name: node.data.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed collection label"],
|
|
@@ -2542,7 +2585,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2542
2585
|
}),
|
|
2543
2586
|
deserialize: async (data, ancestors) => {
|
|
2544
2587
|
const space = ancestors.find(import_echo.isSpace);
|
|
2545
|
-
const collection = ancestors.findLast((ancestor) => ancestor instanceof
|
|
2588
|
+
const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_HTAM5LQD.CollectionType) ?? space?.properties[import_chunk_HTAM5LQD.CollectionType.typename];
|
|
2546
2589
|
if (!space || !collection) {
|
|
2547
2590
|
return;
|
|
2548
2591
|
}
|
|
@@ -2551,7 +2594,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2551
2594
|
action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
|
|
2552
2595
|
data: {
|
|
2553
2596
|
target: collection,
|
|
2554
|
-
object: (0, import_echo.create)(
|
|
2597
|
+
object: (0, import_echo.create)(import_chunk_HTAM5LQD.CollectionType, {
|
|
2555
2598
|
name: data.name,
|
|
2556
2599
|
objects: [],
|
|
2557
2600
|
views: {}
|
|
@@ -2581,11 +2624,11 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2581
2624
|
}
|
|
2582
2625
|
const space = await client.spaces.create(intent.data);
|
|
2583
2626
|
await space.waitUntilReady();
|
|
2584
|
-
const collection = (0, import_echo.create)(
|
|
2627
|
+
const collection = (0, import_echo.create)(import_chunk_HTAM5LQD.CollectionType, {
|
|
2585
2628
|
objects: [],
|
|
2586
2629
|
views: {}
|
|
2587
2630
|
});
|
|
2588
|
-
space.properties[
|
|
2631
|
+
space.properties[import_chunk_HTAM5LQD.CollectionType.typename] = collection;
|
|
2589
2632
|
if (import_migrations.Migrations.versionProperty) {
|
|
2590
2633
|
space.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
|
|
2591
2634
|
}
|
|
@@ -2877,20 +2920,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2877
2920
|
]
|
|
2878
2921
|
};
|
|
2879
2922
|
}
|
|
2880
|
-
if (intent.data?.target instanceof
|
|
2923
|
+
if (intent.data?.target instanceof import_chunk_HTAM5LQD.CollectionType) {
|
|
2881
2924
|
intent.data?.target.objects.push(object);
|
|
2882
2925
|
} else if ((0, import_echo.isSpace)(intent.data?.target)) {
|
|
2883
|
-
const collection = space.properties[
|
|
2884
|
-
if (collection instanceof
|
|
2926
|
+
const collection = space.properties[import_chunk_HTAM5LQD.CollectionType.typename];
|
|
2927
|
+
if (collection instanceof import_chunk_HTAM5LQD.CollectionType) {
|
|
2885
2928
|
collection.objects.push(object);
|
|
2886
2929
|
} else {
|
|
2887
|
-
const collection2 = (0, import_echo.create)(
|
|
2930
|
+
const collection2 = (0, import_echo.create)(import_chunk_HTAM5LQD.CollectionType, {
|
|
2888
2931
|
objects: [
|
|
2889
2932
|
object
|
|
2890
2933
|
],
|
|
2891
2934
|
views: {}
|
|
2892
2935
|
});
|
|
2893
|
-
space.properties[
|
|
2936
|
+
space.properties[import_chunk_HTAM5LQD.CollectionType.typename] = collection2;
|
|
2894
2937
|
}
|
|
2895
2938
|
}
|
|
2896
2939
|
return {
|
|
@@ -2930,12 +2973,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2930
2973
|
const activeParts = navigationPlugin?.provides.location.active;
|
|
2931
2974
|
const openObjectIds = new Set((0, import_app_framework.openIds)(activeParts ?? {}));
|
|
2932
2975
|
if (!intent.undo && resolve) {
|
|
2933
|
-
const parentCollection = intent.data?.collection ?? space.properties[
|
|
2976
|
+
const parentCollection = intent.data?.collection ?? space.properties[import_chunk_HTAM5LQD.CollectionType.typename];
|
|
2934
2977
|
const nestedObjects = await getNestedObjects(object, resolve);
|
|
2935
2978
|
const deletionData = {
|
|
2936
2979
|
object,
|
|
2937
2980
|
parentCollection,
|
|
2938
|
-
index: parentCollection instanceof
|
|
2981
|
+
index: parentCollection instanceof import_chunk_HTAM5LQD.CollectionType ? parentCollection.objects.indexOf(object) : -1,
|
|
2939
2982
|
nestedObjects,
|
|
2940
2983
|
wasActive: [
|
|
2941
2984
|
object,
|
|
@@ -2953,7 +2996,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2953
2996
|
}
|
|
2954
2997
|
});
|
|
2955
2998
|
}
|
|
2956
|
-
if (parentCollection instanceof
|
|
2999
|
+
if (parentCollection instanceof import_chunk_HTAM5LQD.CollectionType) {
|
|
2957
3000
|
const index = parentCollection.objects.indexOf(object);
|
|
2958
3001
|
if (index !== -1) {
|
|
2959
3002
|
parentCollection.objects.splice(index, 1);
|
|
@@ -2963,7 +3006,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2963
3006
|
space.db.remove(obj);
|
|
2964
3007
|
});
|
|
2965
3008
|
space.db.remove(object);
|
|
2966
|
-
const undoMessageKey = object instanceof
|
|
3009
|
+
const undoMessageKey = object instanceof import_chunk_HTAM5LQD.CollectionType ? "collection deleted label" : "object deleted label";
|
|
2967
3010
|
return {
|
|
2968
3011
|
data: true,
|
|
2969
3012
|
undoable: {
|
|
@@ -2974,7 +3017,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2974
3017
|
};
|
|
2975
3018
|
} else {
|
|
2976
3019
|
const undoData = intent.data;
|
|
2977
|
-
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof
|
|
3020
|
+
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_HTAM5LQD.CollectionType) {
|
|
2978
3021
|
const restoredObject = space.db.add(undoData.object);
|
|
2979
3022
|
undoData.nestedObjects.forEach((obj) => {
|
|
2980
3023
|
space.db.add(obj);
|
|
@@ -3073,7 +3116,6 @@ var src_default = SpacePlugin;
|
|
|
3073
3116
|
MenuFooter,
|
|
3074
3117
|
MessageState,
|
|
3075
3118
|
MessageType,
|
|
3076
|
-
MissingObject,
|
|
3077
3119
|
PersistenceStatus,
|
|
3078
3120
|
PopoverRenameObject,
|
|
3079
3121
|
PopoverRenameSpace,
|
|
@@ -3083,7 +3125,6 @@ var src_default = SpacePlugin;
|
|
|
3083
3125
|
SPACE_PLUGIN,
|
|
3084
3126
|
SPACE_PLUGIN_SHORT_ID,
|
|
3085
3127
|
SPACE_TYPE,
|
|
3086
|
-
SaveStatus,
|
|
3087
3128
|
ShareSpaceButton,
|
|
3088
3129
|
ShareSpaceButtonImpl,
|
|
3089
3130
|
SmallPresence,
|