@industry-theme/xterm-terminal-panel 0.5.29 → 0.5.30
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/index.js
CHANGED
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
// package.json
|
|
36
36
|
var package_default = {
|
|
37
37
|
name: "@industry-theme/xterm-terminal-panel",
|
|
38
|
-
version: "0.5.
|
|
38
|
+
version: "0.5.30",
|
|
39
39
|
description: "Industry-themed xterm.js terminal components with panel framework integration",
|
|
40
40
|
type: "module",
|
|
41
41
|
main: "dist/index.js",
|
|
@@ -2646,34 +2646,51 @@ var TabbedTerminalPanelInner = ({
|
|
|
2646
2646
|
sessions = await actions.listTerminalSessions();
|
|
2647
2647
|
}
|
|
2648
2648
|
const ownedSessions = sessions.filter((session) => session.context?.startsWith(terminalContext));
|
|
2649
|
-
if (ownedSessions.length
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2649
|
+
if (ownedSessions.length === 0)
|
|
2650
|
+
return;
|
|
2651
|
+
const knownSessionIds = new Set(sessionIds.values());
|
|
2652
|
+
const newSessions = ownedSessions.filter((s) => !knownSessionIds.has(s.id));
|
|
2653
|
+
if (newSessions.length === 0)
|
|
2654
|
+
return;
|
|
2655
|
+
const newRestoredTabs = newSessions.map((session) => {
|
|
2656
|
+
const sessionCwd = session.cwd || directory;
|
|
2657
|
+
return {
|
|
2658
|
+
id: `tab-restored-${session.id}`,
|
|
2659
|
+
label: sessionCwd.split("/").pop() || sessionCwd,
|
|
2660
|
+
contentType: "terminal",
|
|
2661
|
+
directory: sessionCwd,
|
|
2662
|
+
closable: true
|
|
2663
|
+
};
|
|
2664
|
+
});
|
|
2665
|
+
setSessionIds((prev) => {
|
|
2666
|
+
const next = new Map(prev);
|
|
2667
|
+
newSessions.forEach((s, i) => {
|
|
2668
|
+
next.set(newRestoredTabs[i].id, s.id);
|
|
2664
2669
|
});
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2670
|
+
return next;
|
|
2671
|
+
});
|
|
2672
|
+
let appendedTabs = [];
|
|
2673
|
+
setOwnedTabs((prevTabs) => {
|
|
2674
|
+
const existingIds = new Set(prevTabs.map((t) => t.id));
|
|
2675
|
+
const tabsToAdd = newRestoredTabs.filter((t) => !existingIds.has(t.id));
|
|
2676
|
+
if (tabsToAdd.length === 0)
|
|
2677
|
+
return prevTabs;
|
|
2678
|
+
const terminalTabs = prevTabs.filter((t) => t.contentType === "terminal");
|
|
2679
|
+
const customTabs = prevTabs.filter((t) => t.contentType !== "terminal");
|
|
2680
|
+
const merged = [...terminalTabs, ...tabsToAdd, ...customTabs];
|
|
2681
|
+
appendedTabs = merged;
|
|
2682
|
+
return merged;
|
|
2683
|
+
});
|
|
2684
|
+
if (appendedTabs.length > 0) {
|
|
2685
|
+
onTabsChange?.(appendedTabs);
|
|
2686
|
+
}
|
|
2687
|
+
if (!activeTabId && newRestoredTabs[0]) {
|
|
2688
|
+
setActiveTabId(newRestoredTabs[0].id);
|
|
2672
2689
|
}
|
|
2673
2690
|
} catch (err) {
|
|
2674
2691
|
console.error("[TabbedTerminalPanel] Failed to restore owned sessions:", err);
|
|
2675
2692
|
}
|
|
2676
|
-
}, [terminalContext,
|
|
2693
|
+
}, [terminalContext, sessionIds, activeTabId, onTabsChange, actions, directory, setActiveTabId]);
|
|
2677
2694
|
const fetchForeignSessions = useCallback5(async () => {
|
|
2678
2695
|
try {
|
|
2679
2696
|
if (!actions.listTerminalSessions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA4oDD,eAAO,MAAM,mBAAmB,EAAkC,CAAC,IAAI,SAAS,OAAO,cAAc,EAAE,OAAO,GAAG,WAAW,EAC1H,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,KAClC,KAAK,CAAC,YAAY,CAAC"}
|
package/package.json
CHANGED