@sparkelf/dsh-group-chat 0.5.3 → 0.5.5

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/lib/client.js CHANGED
@@ -262,6 +262,16 @@ window.__ModuleLoader__.load({
262
262
  });
263
263
  /** Drops a pending reply that will not be sent. */
264
264
  const clearQuote = (roomId) => call(`/rooms/${encodeURIComponent(roomId)}/quote`, { method: "DELETE" });
265
+ /**
266
+ * Ask the Host to make one room the view: it resolves the room's Session and the workspace that
267
+ * owns it, then hands back the Session id the shell should select.
268
+ *
269
+ * The browser cannot do this itself: the Session belongs to no workspace until the Host creates
270
+ * one at the Session's own directory, and `openSession` only selects a Session a workspace owns.
271
+ * @param roomId - the room to open.
272
+ * @returns the Session to select.
273
+ */
274
+ const openRoom = (roomId) => call(`/rooms/${encodeURIComponent(roomId)}/open`, { method: "POST" });
265
275
  //#endregion
266
276
  //#region src/client/rows.ts
267
277
  /**
@@ -514,8 +524,8 @@ window.__ModuleLoader__.load({
514
524
  }
515
525
  var Avatar_module_css_default = {
516
526
  "md": "Ohch6W_md",
517
- "avatar": "Ohch6W_avatar",
518
527
  "stack": "Ohch6W_stack",
528
+ "avatar": "Ohch6W_avatar",
519
529
  "over": "Ohch6W_over",
520
530
  "sm": "Ohch6W_sm"
521
531
  };
@@ -557,13 +567,13 @@ window.__ModuleLoader__.load({
557
567
  document.head.appendChild(tag);
558
568
  }
559
569
  var Picker_module_css_default = {
570
+ "list": "sKjJ-a_list",
560
571
  "secondary": "sKjJ-a_secondary",
561
572
  "row": "sKjJ-a_row",
562
- "rowActive": "sKjJ-a_rowActive",
563
- "label": "sKjJ-a_label",
564
573
  "box": "sKjJ-a_box",
565
- "list": "sKjJ-a_list",
566
- "note": "sKjJ-a_note"
574
+ "note": "sKjJ-a_note",
575
+ "rowActive": "sKjJ-a_rowActive",
576
+ "label": "sKjJ-a_label"
567
577
  };
568
578
  //#endregion
569
579
  //#region src/client/Picker.tsx
@@ -736,10 +746,10 @@ window.__ModuleLoader__.load({
736
746
  document.head.appendChild(tag);
737
747
  }
738
748
  var PresetSelect_module_css_default = {
739
- "name": "xjnmxG_name",
740
- "trigger": "xjnmxG_trigger",
741
749
  "row": "xjnmxG_row",
742
750
  "triggerLabel": "xjnmxG_triggerLabel",
751
+ "name": "xjnmxG_name",
752
+ "trigger": "xjnmxG_trigger",
743
753
  "description": "xjnmxG_description"
744
754
  };
745
755
  //#endregion
@@ -842,16 +852,12 @@ window.__ModuleLoader__.load({
842
852
  *
843
853
  * @module @sparkelf/dsh-group-chat/client/store
844
854
  */
845
- /**
846
- * Create the shared store.
847
- * @returns a store whose `getState` returns a stable reference between changes, which is
848
- * what `useSyncExternalStore` requires to avoid a render loop.
849
- */
850
- function createRoomStore() {
855
+ function createRoomStore(deps = {}) {
851
856
  let state = {
852
857
  rooms: void 0,
853
858
  activeRoomId: void 0,
854
859
  failure: void 0,
860
+ openFailure: void 0,
855
861
  searchQuery: "",
856
862
  selfId: void 0,
857
863
  administrator: false,
@@ -918,6 +924,7 @@ window.__ModuleLoader__.load({
918
924
  open: (roomId) => {
919
925
  set({
920
926
  activeRoomId: roomId,
927
+ openFailure: void 0,
921
928
  ...state.rooms === void 0 ? {} : { rooms: state.rooms.map((room) => room.id === roomId ? {
922
929
  ...room,
923
930
  unreadCount: 0,
@@ -925,6 +932,10 @@ window.__ModuleLoader__.load({
925
932
  } : room) }
926
933
  });
927
934
  loadMembersInto(roomId);
935
+ Promise.resolve().then(() => deps.openSession?.(roomId)).catch((error) => {
936
+ console.error("[group-chat] opening the room failed", roomId, error);
937
+ set({ openFailure: "roomOpenFailed" });
938
+ });
928
939
  },
929
940
  discover: async (query) => {
930
941
  try {
@@ -1005,23 +1016,23 @@ window.__ModuleLoader__.load({
1005
1016
  document.head.appendChild(tag);
1006
1017
  }
1007
1018
  var CreateRoomDialog_module_css_default = {
1008
- "warn": "Z3w8WW_warn",
1019
+ "error": "Z3w8WW_error",
1020
+ "pillActive": "Z3w8WW_pillActive",
1021
+ "memberList": "Z3w8WW_memberList",
1022
+ "policyRow": "Z3w8WW_policyRow",
1023
+ "label": "Z3w8WW_label",
1009
1024
  "body": "Z3w8WW_body",
1010
- "pill": "Z3w8WW_pill",
1011
1025
  "hint": "Z3w8WW_hint",
1026
+ "field": "Z3w8WW_field",
1012
1027
  "memberRow": "Z3w8WW_memberRow",
1013
- "label": "Z3w8WW_label",
1014
1028
  "notice": "Z3w8WW_notice",
1015
- "memberBadge": "Z3w8WW_memberBadge",
1016
- "memberList": "Z3w8WW_memberList",
1017
- "field": "Z3w8WW_field",
1018
- "error": "Z3w8WW_error",
1019
- "pillActive": "Z3w8WW_pillActive",
1020
- "footer": "Z3w8WW_footer",
1029
+ "triggerExtra": "Z3w8WW_triggerExtra",
1030
+ "pill": "Z3w8WW_pill",
1021
1031
  "memberName": "Z3w8WW_memberName",
1032
+ "warn": "Z3w8WW_warn",
1022
1033
  "switches": "Z3w8WW_switches",
1023
- "triggerExtra": "Z3w8WW_triggerExtra",
1024
- "policyRow": "Z3w8WW_policyRow"
1034
+ "footer": "Z3w8WW_footer",
1035
+ "memberBadge": "Z3w8WW_memberBadge"
1025
1036
  };
1026
1037
  //#endregion
1027
1038
  //#region src/client/CreateRoomDialog.tsx
@@ -1288,28 +1299,28 @@ window.__ModuleLoader__.load({
1288
1299
  document.head.appendChild(tag);
1289
1300
  }
1290
1301
  var InviteDialog_module_css_default = {
1291
- "rowHandle": "r4uCba_rowHandle",
1292
- "content": "r4uCba_content",
1293
- "note": "r4uCba_note",
1294
- "errorRow": "r4uCba_errorRow",
1295
- "error": "r4uCba_error",
1296
- "checkHidden": "r4uCba_checkHidden",
1297
- "chipName": "r4uCba_chipName",
1298
- "chipRemove": "r4uCba_chipRemove",
1299
- "list": "r4uCba_list",
1300
1302
  "searchRow": "r4uCba_searchRow",
1301
- "dialog": "r4uCba_dialog",
1303
+ "chip": "r4uCba_chip",
1304
+ "rowSelected": "r4uCba_rowSelected",
1302
1305
  "visuallyHidden": "r4uCba_visuallyHidden",
1303
- "inviteSpin": "r4uCba_inviteSpin",
1304
- "field": "r4uCba_field",
1305
1306
  "rowName": "r4uCba_rowName",
1307
+ "search": "r4uCba_search",
1308
+ "chipName": "r4uCba_chipName",
1309
+ "errorRow": "r4uCba_errorRow",
1310
+ "dialog": "r4uCba_dialog",
1311
+ "spinner": "r4uCba_spinner",
1312
+ "field": "r4uCba_field",
1313
+ "chipRemove": "r4uCba_chipRemove",
1306
1314
  "check": "r4uCba_check",
1315
+ "checkHidden": "r4uCba_checkHidden",
1316
+ "inviteSpin": "r4uCba_inviteSpin",
1317
+ "note": "r4uCba_note",
1307
1318
  "row": "r4uCba_row",
1308
- "rowSelected": "r4uCba_rowSelected",
1309
- "chip": "r4uCba_chip",
1310
- "spinner": "r4uCba_spinner",
1311
- "search": "r4uCba_search",
1312
- "chips": "r4uCba_chips"
1319
+ "chips": "r4uCba_chips",
1320
+ "content": "r4uCba_content",
1321
+ "list": "r4uCba_list",
1322
+ "error": "r4uCba_error",
1323
+ "rowHandle": "r4uCba_rowHandle"
1313
1324
  };
1314
1325
  //#endregion
1315
1326
  //#region src/client/RoomDialogs.tsx
@@ -1926,67 +1937,67 @@ window.__ModuleLoader__.load({
1926
1937
  document.head.appendChild(tag);
1927
1938
  }
1928
1939
  var SidebarRooms_module_css_default = {
1929
- "hitHead": "s0QgKq_hitHead",
1930
- "sectionHeader": "s0QgKq_sectionHeader",
1931
- "rowWrap": "s0QgKq_rowWrap",
1932
- "searchSlotExpanded": "s0QgKq_searchSlotExpanded",
1933
- "clearButton": "s0QgKq_clearButton",
1934
- "searchButton": "s0QgKq_searchButton",
1935
- "visuallyHidden": "s0QgKq_visuallyHidden",
1936
1940
  "unreadMentioned": "s0QgKq_unreadMentioned",
1937
- "searchSlot": "s0QgKq_searchSlot",
1938
- "fade": "s0QgKq_fade",
1941
+ "sessionRowSelected": "s0QgKq_sessionRowSelected",
1942
+ "hitHead": "s0QgKq_hitHead",
1939
1943
  "leaveBody": "s0QgKq_leaveBody",
1940
- "time": "s0QgKq_time",
1941
- "root": "s0QgKq_root",
1942
- "leaveConfirmDanger": "s0QgKq_leaveConfirmDanger",
1943
- "hit": "s0QgKq_hit",
1944
+ "leaveRoomName": "s0QgKq_leaveRoomName",
1945
+ "hitList": "s0QgKq_hitList",
1946
+ "menuCancel": "s0QgKq_menuCancel",
1947
+ "clearButton": "s0QgKq_clearButton",
1944
1948
  "hitText": "s0QgKq_hitText",
1945
- "menu": "s0QgKq_menu",
1946
- "leaveCopy": "s0QgKq_leaveCopy",
1947
- "hitAuthor": "s0QgKq_hitAuthor",
1948
- "discoverSection": "s0QgKq_discoverSection",
1949
- "searchInput": "s0QgKq_searchInput",
1950
- "sessionRow": "s0QgKq_sessionRow",
1951
- "leaveError": "s0QgKq_leaveError",
1952
- "unread": "s0QgKq_unread",
1953
- "search": "s0QgKq_search",
1949
+ "railButton": "s0QgKq_railButton",
1950
+ "menuItem": "s0QgKq_menuItem",
1954
1951
  "sectionLabel": "s0QgKq_sectionLabel",
1955
- "menuHeading": "s0QgKq_menuHeading",
1956
- "hitRoom": "s0QgKq_hitRoom",
1952
+ "empty": "s0QgKq_empty",
1953
+ "footer": "s0QgKq_footer",
1954
+ "title": "s0QgKq_title",
1955
+ "headerActions": "s0QgKq_headerActions",
1956
+ "sessionRow": "s0QgKq_sessionRow",
1957
1957
  "discoverRow": "s0QgKq_discoverRow",
1958
- "menuInline": "s0QgKq_menuInline",
1959
- "hitHint": "s0QgKq_hitHint",
1958
+ "iconButton": "s0QgKq_iconButton",
1959
+ "discoverHeading": "s0QgKq_discoverHeading",
1960
+ "time": "s0QgKq_time",
1961
+ "menu": "s0QgKq_menu",
1962
+ "flatList": "s0QgKq_flatList",
1963
+ "mark": "s0QgKq_mark",
1964
+ "menuLayer": "s0QgKq_menuLayer",
1960
1965
  "searchExpanded": "s0QgKq_searchExpanded",
1961
- "menuItem": "s0QgKq_menuItem",
1962
- "emptyState": "s0QgKq_emptyState",
1963
- "resizer": "s0QgKq_resizer",
1964
- "check": "s0QgKq_check",
1965
- "menuCancel": "s0QgKq_menuCancel",
1966
+ "list": "s0QgKq_list",
1967
+ "searchSlotExpanded": "s0QgKq_searchSlotExpanded",
1968
+ "listArea": "s0QgKq_listArea",
1966
1969
  "menuInput": "s0QgKq_menuInput",
1970
+ "leaveConfirmDanger": "s0QgKq_leaveConfirmDanger",
1971
+ "hit": "s0QgKq_hit",
1972
+ "searchInput": "s0QgKq_searchInput",
1967
1973
  "menuRename": "s0QgKq_menuRename",
1968
- "hitList": "s0QgKq_hitList",
1969
- "viewWrap": "s0QgKq_viewWrap",
1970
- "title": "s0QgKq_title",
1971
- "listArea": "s0QgKq_listArea",
1972
- "sessionRowSelected": "s0QgKq_sessionRowSelected",
1973
- "menuActions": "s0QgKq_menuActions",
1974
- "menuLayer": "s0QgKq_menuLayer",
1975
- "iconButton": "s0QgKq_iconButton",
1976
- "headerActions": "s0QgKq_headerActions",
1977
- "leaveRoomName": "s0QgKq_leaveRoomName",
1978
- "list": "s0QgKq_list",
1974
+ "rowIcon": "s0QgKq_rowIcon",
1975
+ "root": "s0QgKq_root",
1976
+ "menuInline": "s0QgKq_menuInline",
1977
+ "searchButton": "s0QgKq_searchButton",
1979
1978
  "menuConfirm": "s0QgKq_menuConfirm",
1979
+ "sectionHeader": "s0QgKq_sectionHeader",
1980
+ "menuHeading": "s0QgKq_menuHeading",
1981
+ "rowWrap": "s0QgKq_rowWrap",
1982
+ "leaveCopy": "s0QgKq_leaveCopy",
1983
+ "emptyState": "s0QgKq_emptyState",
1980
1984
  "discoverName": "s0QgKq_discoverName",
1981
- "mark": "s0QgKq_mark",
1982
- "railButton": "s0QgKq_railButton",
1983
- "footer": "s0QgKq_footer",
1984
- "discoverMeta": "s0QgKq_discoverMeta",
1985
1985
  "joinButton": "s0QgKq_joinButton",
1986
- "flatList": "s0QgKq_flatList",
1987
- "rowIcon": "s0QgKq_rowIcon",
1988
- "discoverHeading": "s0QgKq_discoverHeading",
1989
- "empty": "s0QgKq_empty"
1986
+ "hitRoom": "s0QgKq_hitRoom",
1987
+ "menuActions": "s0QgKq_menuActions",
1988
+ "hitAuthor": "s0QgKq_hitAuthor",
1989
+ "leaveError": "s0QgKq_leaveError",
1990
+ "discoverMeta": "s0QgKq_discoverMeta",
1991
+ "viewWrap": "s0QgKq_viewWrap",
1992
+ "check": "s0QgKq_check",
1993
+ "visuallyHidden": "s0QgKq_visuallyHidden",
1994
+ "fade": "s0QgKq_fade",
1995
+ "discoverSection": "s0QgKq_discoverSection",
1996
+ "searchSlot": "s0QgKq_searchSlot",
1997
+ "search": "s0QgKq_search",
1998
+ "hitHint": "s0QgKq_hitHint",
1999
+ "resizer": "s0QgKq_resizer",
2000
+ "unread": "s0QgKq_unread"
1990
2001
  };
1991
2002
  //#endregion
1992
2003
  //#region src/client/SidebarRooms.tsx
@@ -2086,7 +2097,7 @@ window.__ModuleLoader__.load({
2086
2097
  }
2087
2098
  });
2088
2099
  }
2089
- const { rooms, activeRoomId, failure, searchQuery, discoverable } = (0, react.useSyncExternalStore)(store.subscribe, store.getState, store.getState);
2100
+ const { rooms, activeRoomId, failure, openFailure, searchQuery, discoverable } = (0, react.useSyncExternalStore)(store.subscribe, store.getState, store.getState);
2090
2101
  const [searchExpanded, setSearchExpanded] = (0, react.useState)(false);
2091
2102
  const [viewOpen, setViewOpen] = (0, react.useState)(false);
2092
2103
  const [orderBy, setOrderBy] = (0, react.useState)("updated");
@@ -2426,6 +2437,11 @@ window.__ModuleLoader__.load({
2426
2437
  className: SidebarRooms_module_css_default.empty,
2427
2438
  children: t(failure)
2428
2439
  }),
2440
+ openFailure !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2441
+ className: SidebarRooms_module_css_default.empty,
2442
+ role: "alert",
2443
+ children: t(openFailure)
2444
+ }),
2429
2445
  failure === void 0 && rooms === void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2430
2446
  className: SidebarRooms_module_css_default.empty,
2431
2447
  children: t("loading")
@@ -3079,20 +3095,20 @@ window.__ModuleLoader__.load({
3079
3095
  document.head.appendChild(tag);
3080
3096
  }
3081
3097
  var MessageSide_module_css_default = {
3082
- "selfRow": "KXabfq_selfRow",
3083
- "quoteBar": "KXabfq_quoteBar",
3084
3098
  "selfBody": "KXabfq_selfBody",
3085
- "authorName": "KXabfq_authorName",
3086
- "rowActionsSelf": "KXabfq_rowActionsSelf",
3087
- "quoteBody": "KXabfq_quoteBody",
3088
- "quoteText": "KXabfq_quoteText",
3099
+ "otherRow": "KXabfq_otherRow",
3089
3100
  "rowActions": "KXabfq_rowActions",
3090
- "author": "KXabfq_author",
3091
3101
  "quoteMark": "KXabfq_quoteMark",
3102
+ "quoteText": "KXabfq_quoteText",
3103
+ "selfRow": "KXabfq_selfRow",
3104
+ "quoteAuthor": "KXabfq_quoteAuthor",
3105
+ "quoteBar": "KXabfq_quoteBar",
3106
+ "author": "KXabfq_author",
3107
+ "authorName": "KXabfq_authorName",
3092
3108
  "rowBody": "KXabfq_rowBody",
3093
3109
  "replyButton": "KXabfq_replyButton",
3094
- "quoteAuthor": "KXabfq_quoteAuthor",
3095
- "otherRow": "KXabfq_otherRow"
3110
+ "quoteBody": "KXabfq_quoteBody",
3111
+ "rowActionsSelf": "KXabfq_rowActionsSelf"
3096
3112
  };
3097
3113
  //#endregion
3098
3114
  //#region src/client/MessageSide.tsx
@@ -3383,46 +3399,46 @@ window.__ModuleLoader__.load({
3383
3399
  document.head.appendChild(tag);
3384
3400
  }
3385
3401
  var MembersPanel_module_css_default = {
3386
- "linkButton": "VeQVAa_linkButton",
3387
- "fileIcon": "VeQVAa_fileIcon",
3388
- "name": "VeQVAa_name",
3389
- "hint": "VeQVAa_hint",
3390
- "crumb": "VeQVAa_crumb",
3391
- "crumbSep": "VeQVAa_crumbSep",
3392
- "fileSize": "VeQVAa_fileSize",
3393
- "editorFooter": "VeQVAa_editorFooter",
3394
- "sectionHeader": "VeQVAa_sectionHeader",
3395
- "count": "VeQVAa_count",
3396
- "refresh": "VeQVAa_refresh",
3397
- "section": "VeQVAa_section",
3402
+ "announcementText": "VeQVAa_announcementText",
3403
+ "fileButton": "VeQVAa_fileButton",
3398
3404
  "row": "VeQVAa_row",
3405
+ "searchToggle": "VeQVAa_searchToggle",
3406
+ "name": "VeQVAa_name",
3407
+ "previewHeader": "VeQVAa_previewHeader",
3408
+ "textarea": "VeQVAa_textarea",
3399
3409
  "list": "VeQVAa_list",
3400
- "previewTitle": "VeQVAa_previewTitle",
3401
- "previewClose": "VeQVAa_previewClose",
3402
- "sectionLabel": "VeQVAa_sectionLabel",
3403
- "previewImage": "VeQVAa_previewImage",
3404
- "selfTag": "VeQVAa_selfTag",
3410
+ "crumbGroup": "VeQVAa_crumbGroup",
3411
+ "crumbSep": "VeQVAa_crumbSep",
3412
+ "linkButton": "VeQVAa_linkButton",
3413
+ "sectionToggle": "VeQVAa_sectionToggle",
3405
3414
  "root": "VeQVAa_root",
3406
- "searchToggle": "VeQVAa_searchToggle",
3407
- "editor": "VeQVAa_editor",
3408
3415
  "ownerTag": "VeQVAa_ownerTag",
3416
+ "unavailable": "VeQVAa_unavailable",
3417
+ "error": "VeQVAa_error",
3418
+ "selfTag": "VeQVAa_selfTag",
3419
+ "sectionHeader": "VeQVAa_sectionHeader",
3420
+ "editor": "VeQVAa_editor",
3421
+ "filePicker": "VeQVAa_filePicker",
3422
+ "previewTitle": "VeQVAa_previewTitle",
3423
+ "refresh": "VeQVAa_refresh",
3409
3424
  "search": "VeQVAa_search",
3410
- "announcementText": "VeQVAa_announcementText",
3411
- "fileButton": "VeQVAa_fileButton",
3412
- "sectionBody": "VeQVAa_sectionBody",
3413
- "previewHeader": "VeQVAa_previewHeader",
3414
- "sectionToggle": "VeQVAa_sectionToggle",
3415
- "remove": "VeQVAa_remove",
3425
+ "previewClose": "VeQVAa_previewClose",
3426
+ "preview": "VeQVAa_preview",
3416
3427
  "previewBody": "VeQVAa_previewBody",
3428
+ "crumb": "VeQVAa_crumb",
3417
3429
  "notice": "VeQVAa_notice",
3418
- "crumbGroup": "VeQVAa_crumbGroup",
3419
- "error": "VeQVAa_error",
3420
- "textarea": "VeQVAa_textarea",
3430
+ "sectionLabel": "VeQVAa_sectionLabel",
3431
+ "previewImage": "VeQVAa_previewImage",
3432
+ "crumbs": "VeQVAa_crumbs",
3433
+ "fileSize": "VeQVAa_fileSize",
3434
+ "section": "VeQVAa_section",
3421
3435
  "caret": "VeQVAa_caret",
3422
- "unavailable": "VeQVAa_unavailable",
3423
- "filePicker": "VeQVAa_filePicker",
3424
- "preview": "VeQVAa_preview",
3425
- "crumbs": "VeQVAa_crumbs"
3436
+ "fileIcon": "VeQVAa_fileIcon",
3437
+ "hint": "VeQVAa_hint",
3438
+ "editorFooter": "VeQVAa_editorFooter",
3439
+ "remove": "VeQVAa_remove",
3440
+ "sectionBody": "VeQVAa_sectionBody",
3441
+ "count": "VeQVAa_count"
3426
3442
  };
3427
3443
  //#endregion
3428
3444
  //#region src/client/MembersPanel.tsx
@@ -4045,10 +4061,10 @@ window.__ModuleLoader__.load({
4045
4061
  document.head.appendChild(tag);
4046
4062
  }
4047
4063
  var GuideEntry_module_css_default = {
4064
+ "title": "_0Vnsuq_title",
4065
+ "entry": "_0Vnsuq_entry",
4048
4066
  "icon": "_0Vnsuq_icon",
4049
4067
  "text": "_0Vnsuq_text",
4050
- "entry": "_0Vnsuq_entry",
4051
- "title": "_0Vnsuq_title",
4052
4068
  "description": "_0Vnsuq_description"
4053
4069
  };
4054
4070
  //#endregion
@@ -4116,13 +4132,13 @@ window.__ModuleLoader__.load({
4116
4132
  document.head.appendChild(tag);
4117
4133
  }
4118
4134
  var QuoteComposer_module_css_default = {
4119
- "dismiss": "AK6KxW_dismiss",
4120
- "button": "AK6KxW_button",
4121
4135
  "body": "AK6KxW_body",
4122
4136
  "author": "AK6KxW_author",
4123
- "mark": "AK6KxW_mark",
4137
+ "dismiss": "AK6KxW_dismiss",
4124
4138
  "text": "AK6KxW_text",
4125
- "bar": "AK6KxW_bar"
4139
+ "button": "AK6KxW_button",
4140
+ "bar": "AK6KxW_bar",
4141
+ "mark": "AK6KxW_mark"
4126
4142
  };
4127
4143
  //#endregion
4128
4144
  //#region src/client/QuoteComposer.tsx
@@ -4256,6 +4272,7 @@ window.__ModuleLoader__.load({
4256
4272
  const source = {
4257
4273
  trigger: "@",
4258
4274
  name: SOURCE_NAME$1,
4275
+ label: "消息",
4259
4276
  order: 30,
4260
4277
  showGroupTitle: true,
4261
4278
  async candidates(_session, request) {
@@ -4373,11 +4390,13 @@ window.__ModuleLoader__.load({
4373
4390
  const source = {
4374
4391
  trigger: "@",
4375
4392
  name: SOURCE_NAME,
4393
+ label: "成员",
4376
4394
  order: 20,
4377
4395
  showGroupTitle: true,
4378
- async candidates(_session, request) {
4396
+ async candidates(session, request) {
4379
4397
  const roomId = store.getState().activeRoomId;
4380
4398
  if (roomId === void 0) return [];
4399
+ if (session.sessionId !== void 0 && session.sessionId !== roomSessionId(roomId)) return [];
4381
4400
  const members = await listMembers(roomId);
4382
4401
  const roster = mentionSourceOf(members);
4383
4402
  const owners = new Set(members.filter((member) => member.owner).map((member) => member.userId));
@@ -4434,6 +4453,7 @@ window.__ModuleLoader__.load({
4434
4453
  description: "Rooms this workspace has joined. @ yourself to make the agent answer; every other message is recorded and read, but nothing runs.",
4435
4454
  loading: "Loading rooms…",
4436
4455
  retry: "Retry",
4456
+ roomOpenFailed: "Could not open this room. Please retry.",
4437
4457
  emptyRooms: "No rooms yet",
4438
4458
  createRoom: "New room",
4439
4459
  roomName: "Room name",
@@ -4584,6 +4604,7 @@ window.__ModuleLoader__.load({
4584
4604
  title: "群聊",
4585
4605
  description: "本工作区已加入的群聊。@ 自己会触发 agent 应答;其他消息都会记录并进入上下文,但不执行。",
4586
4606
  loading: "正在加载群聊…",
4607
+ roomOpenFailed: "无法打开该房间,请稍后重试。",
4587
4608
  retry: "重试",
4588
4609
  emptyRooms: "暂无群聊",
4589
4610
  createRoom: "新建群聊",
@@ -4799,7 +4820,9 @@ window.__ModuleLoader__.load({
4799
4820
  "uiWorkspace",
4800
4821
  "workspaces",
4801
4822
  "sidebarRightTabs",
4802
- "sidebarRight"
4823
+ "sidebarRight",
4824
+ "sessions",
4825
+ "layout"
4803
4826
  ];
4804
4827
  /**
4805
4828
  * Register the sidebar region and the room page.
@@ -4833,7 +4856,16 @@ window.__ModuleLoader__.load({
4833
4856
  }), "group-chat: copy");
4834
4857
  const t = ctx.locale.bind(NS);
4835
4858
  const tPreset = ctx.locale.bind(PRESET_LOCALE_NS);
4836
- const base = createRoomStore();
4859
+ const navigation = ctx.get("uiWorkspace");
4860
+ if (navigation?.openSession === void 0) console.warn("[group-chat] uiWorkspace.openSession is unavailable; room selection cannot navigate");
4861
+ const layout = ctx.get("layout");
4862
+ const catalog = ctx.get("sessions");
4863
+ const base = createRoomStore({ openSession: async (roomId) => {
4864
+ const opened = await openRoom(roomId);
4865
+ await catalog?.refresh?.();
4866
+ navigation?.openSession?.(opened.sessionId);
4867
+ layout?.selectPanel?.(null);
4868
+ } });
4837
4869
  const quotes = createQuoteStore();
4838
4870
  /**
4839
4871
  * Drops the pending reply once the composer submits.