dsh-conversation-navigator 0.1.8 → 0.1.9
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 +87 -56
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -5,7 +5,7 @@ window.__ModuleLoader__.load({
|
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
7
|
const React = require("react");
|
|
8
|
-
const { Button, IconCloseOutline16 } = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
8
|
+
const { Button, Tooltip, IconCloseOutline16 } = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
9
9
|
|
|
10
10
|
/* ---------- custom icons (DSH outline style, unique to this panel) ---------- */
|
|
11
11
|
function ToggleIcon() {
|
|
@@ -444,14 +444,19 @@ window.__ModuleLoader__.load({
|
|
|
444
444
|
setState({ activeKey: null, expanded: {} });
|
|
445
445
|
}
|
|
446
446
|
}, [props.sessionId]);
|
|
447
|
-
return React.createElement(
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
447
|
+
return React.createElement(Tooltip, {
|
|
448
|
+
label: snap.open ? "收起会话导航" : "打开会话导航",
|
|
449
|
+
side: "bottom",
|
|
450
|
+
delayMs: 500,
|
|
451
|
+
},
|
|
452
|
+
React.createElement(Button, {
|
|
453
|
+
variant: snap.open ? "primary" : "ghost",
|
|
454
|
+
size: "sm",
|
|
455
|
+
icon: React.createElement(ToggleIcon),
|
|
456
|
+
"aria-pressed": snap.open,
|
|
457
|
+
onClick: () => setState({ open: !snap.open }),
|
|
458
|
+
}, "导航"),
|
|
459
|
+
);
|
|
455
460
|
}
|
|
456
461
|
|
|
457
462
|
/* ---------- floating navigator panel ---------- */
|
|
@@ -589,34 +594,49 @@ window.__ModuleLoader__.load({
|
|
|
589
594
|
React.createElement("div", { className: "cnvnav-head" },
|
|
590
595
|
React.createElement("span", { className: "cnvnav-title" }, "会话导航"),
|
|
591
596
|
React.createElement("span", { className: "cnvnav-count" }, String(count) + " 条"),
|
|
592
|
-
React.createElement(
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
597
|
+
React.createElement(Tooltip, {
|
|
598
|
+
label: "收起面板",
|
|
599
|
+
side: "bottom",
|
|
600
|
+
delayMs: 500,
|
|
601
|
+
},
|
|
602
|
+
React.createElement(Button, {
|
|
603
|
+
variant: "ghost",
|
|
604
|
+
size: "sm",
|
|
605
|
+
className: "cnvnav-close",
|
|
606
|
+
icon: React.createElement(IconCloseOutline16, { size: 14 }),
|
|
607
|
+
onClick: () => setState({ open: false }),
|
|
608
|
+
}),
|
|
609
|
+
),
|
|
600
610
|
),
|
|
601
611
|
React.createElement("div", { className: "cnvnav-topbar" },
|
|
602
|
-
React.createElement(
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
612
|
+
React.createElement(Tooltip, {
|
|
613
|
+
label: "加载更早的一批轮次",
|
|
614
|
+
side: "bottom",
|
|
615
|
+
delayMs: 500,
|
|
616
|
+
},
|
|
617
|
+
React.createElement(Button, {
|
|
618
|
+
variant: "ghost",
|
|
619
|
+
size: "sm",
|
|
620
|
+
className: "cnvnav-bar-btn",
|
|
621
|
+
icon: React.createElement(LoadEarlierIcon),
|
|
622
|
+
disabled: !snap.hasMore || snap.loadingOlder,
|
|
623
|
+
onClick: () => loadOlderPage(),
|
|
624
|
+
}, "加载更早"),
|
|
625
|
+
),
|
|
626
|
+
React.createElement(Tooltip, {
|
|
627
|
+
label: "加载全部历史轮次",
|
|
628
|
+
side: "bottom",
|
|
629
|
+
delayMs: 500,
|
|
630
|
+
},
|
|
631
|
+
React.createElement(Button, {
|
|
632
|
+
variant: "ghost",
|
|
633
|
+
size: "sm",
|
|
634
|
+
className: "cnvnav-bar-btn",
|
|
635
|
+
icon: React.createElement(LoadAllIcon),
|
|
636
|
+
disabled: !snap.hasMore || snap.loadingOlder || snap.loadingAll,
|
|
637
|
+
onClick: () => loadAllPages(),
|
|
638
|
+
}, "加载全部"),
|
|
639
|
+
),
|
|
620
640
|
),
|
|
621
641
|
React.createElement("div", {
|
|
622
642
|
ref: (el) => { listEl = el; },
|
|
@@ -627,27 +647,38 @@ window.__ModuleLoader__.load({
|
|
|
627
647
|
: groupNodes,
|
|
628
648
|
),
|
|
629
649
|
React.createElement("div", { className: "cnvnav-footer" },
|
|
630
|
-
React.createElement(
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
650
|
+
React.createElement(Tooltip, {
|
|
651
|
+
label: "回到对话最新位置",
|
|
652
|
+
side: "top",
|
|
653
|
+
delayMs: 500,
|
|
654
|
+
},
|
|
655
|
+
React.createElement(Button, {
|
|
656
|
+
variant: "ghost",
|
|
657
|
+
size: "sm",
|
|
658
|
+
className: "cnvnav-bar-btn",
|
|
659
|
+
icon: React.createElement(JumpLatestIcon),
|
|
660
|
+
onClick: () => {
|
|
661
|
+
const gs = snap.outline !== null ? snap.outline.groups : [];
|
|
662
|
+
if (gs.length === 0) return;
|
|
663
|
+
const lastGroup = gs[gs.length - 1];
|
|
664
|
+
const lastItem = lastGroup.items[lastGroup.items.length - 1];
|
|
665
|
+
if (lastItem !== undefined) jumpTo(lastItem.key);
|
|
666
|
+
},
|
|
667
|
+
}, "回到最新"),
|
|
668
|
+
),
|
|
669
|
+
React.createElement(Tooltip, {
|
|
670
|
+
label: "折叠所有已展开的轮次",
|
|
671
|
+
side: "top",
|
|
672
|
+
delayMs: 500,
|
|
673
|
+
},
|
|
674
|
+
React.createElement(Button, {
|
|
675
|
+
variant: "ghost",
|
|
676
|
+
size: "sm",
|
|
677
|
+
className: "cnvnav-bar-btn",
|
|
678
|
+
icon: React.createElement(CollapseAllIcon),
|
|
679
|
+
onClick: () => setState({ expanded: {} }),
|
|
680
|
+
}, "全部折叠"),
|
|
681
|
+
),
|
|
651
682
|
),
|
|
652
683
|
);
|
|
653
684
|
}
|