@industry-theme/xterm-terminal-panel 0.5.2 → 0.5.3
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
|
@@ -1791,7 +1791,7 @@ import React2, {
|
|
|
1791
1791
|
} from "react";
|
|
1792
1792
|
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1793
1793
|
function TerminalTabContentInner(props, ref) {
|
|
1794
|
-
const { tab, sessionId, isActive, isVisible, actions, events, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false, defaultScrollLocked, activityDetection = true, activityTimeout = 500, autoShowBlinds = false } = props;
|
|
1794
|
+
const { tab, sessionId, isActive, isVisible, actions, events, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false, defaultScrollLocked, activityDetection = true, activityTimeout = 500, autoShowBlinds = false, onActivityStateChange } = props;
|
|
1795
1795
|
console.log("[TerminalTabContent] RENDER", { tabId: tab.id, isActive, sessionId });
|
|
1796
1796
|
const terminalRef = useRef3(null);
|
|
1797
1797
|
const [localSessionId, setLocalSessionId] = useState4(sessionId);
|
|
@@ -1988,6 +1988,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1988
1988
|
}, [localSessionId, events]);
|
|
1989
1989
|
const handleActivityChange = useCallback3((state) => {
|
|
1990
1990
|
if (localSessionId) {
|
|
1991
|
+
onActivityStateChange?.(localSessionId, state.isActive);
|
|
1991
1992
|
events.emit({
|
|
1992
1993
|
type: "terminal:activity-changed",
|
|
1993
1994
|
source: "TabbedTerminalPanel",
|
|
@@ -1999,7 +2000,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1999
2000
|
}
|
|
2000
2001
|
});
|
|
2001
2002
|
}
|
|
2002
|
-
}, [localSessionId, events]);
|
|
2003
|
+
}, [localSessionId, events, onActivityStateChange]);
|
|
2003
2004
|
const handleScrollToBottom = useCallback3(() => {
|
|
2004
2005
|
terminalRef.current?.scrollToBottom();
|
|
2005
2006
|
}, []);
|
|
@@ -2146,6 +2147,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2146
2147
|
}, [isControlled, onActiveTabChange]);
|
|
2147
2148
|
const [sessionIds, setSessionIds] = useState4(new Map);
|
|
2148
2149
|
const [scrollPositions, setScrollPositions] = useState4(new Map);
|
|
2150
|
+
const [activityStates, setActivityStates] = useState4(new Map);
|
|
2149
2151
|
const customTabsKey = React2.useMemo(() => {
|
|
2150
2152
|
const customTabs = initialTabs.filter((tab) => tab.contentType !== "terminal");
|
|
2151
2153
|
return JSON.stringify(customTabs);
|
|
@@ -2449,6 +2451,17 @@ var TabbedTerminalPanelInner = ({
|
|
|
2449
2451
|
const handleSessionCreated = useCallback3((tabId, sessionId) => {
|
|
2450
2452
|
setSessionIds((prev) => new Map(prev).set(tabId, sessionId));
|
|
2451
2453
|
}, []);
|
|
2454
|
+
const handleActivityStateChange = useCallback3((sessionId, isActive) => {
|
|
2455
|
+
setActivityStates((prev) => {
|
|
2456
|
+
const next = new Map(prev);
|
|
2457
|
+
if (isActive) {
|
|
2458
|
+
next.set(sessionId, true);
|
|
2459
|
+
} else {
|
|
2460
|
+
next.delete(sessionId);
|
|
2461
|
+
}
|
|
2462
|
+
return next;
|
|
2463
|
+
});
|
|
2464
|
+
}, []);
|
|
2452
2465
|
useTabKeyboardShortcuts({
|
|
2453
2466
|
onNewTab: () => {
|
|
2454
2467
|
if (isCreatingTabRef.current)
|
|
@@ -2471,7 +2484,9 @@ var TabbedTerminalPanelInner = ({
|
|
|
2471
2484
|
});
|
|
2472
2485
|
const renderTabAccessory = useCallback3((tab) => {
|
|
2473
2486
|
const tabSessionId = sessionIds.get(tab.id);
|
|
2474
|
-
const
|
|
2487
|
+
const hasExternalWorkingState = tabSessionId ? workingStates?.[tabSessionId]?.isWorking : false;
|
|
2488
|
+
const hasInternalActivity = tabSessionId ? activityStates.get(tabSessionId) : false;
|
|
2489
|
+
const isWorking = hasExternalWorkingState || hasInternalActivity;
|
|
2475
2490
|
const isActive = tab.id === activeTabId;
|
|
2476
2491
|
if (!isActive && !isWorking)
|
|
2477
2492
|
return null;
|
|
@@ -2529,7 +2544,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2529
2544
|
})
|
|
2530
2545
|
]
|
|
2531
2546
|
});
|
|
2532
|
-
}, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme, sessionIds, workingStates]);
|
|
2547
|
+
}, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme, sessionIds, workingStates, activityStates]);
|
|
2533
2548
|
return /* @__PURE__ */ jsxs6("div", {
|
|
2534
2549
|
style: {
|
|
2535
2550
|
display: "flex",
|
|
@@ -2614,7 +2629,8 @@ var TabbedTerminalPanelInner = ({
|
|
|
2614
2629
|
defaultScrollLocked,
|
|
2615
2630
|
activityDetection,
|
|
2616
2631
|
activityTimeout,
|
|
2617
|
-
autoShowBlinds
|
|
2632
|
+
autoShowBlinds,
|
|
2633
|
+
onActivityStateChange: handleActivityStateChange
|
|
2618
2634
|
}, tab.id);
|
|
2619
2635
|
}
|
|
2620
2636
|
return /* @__PURE__ */ jsx7("div", {
|
|
@@ -2643,7 +2659,8 @@ var TabbedTerminalPanelInner = ({
|
|
|
2643
2659
|
defaultScrollLocked,
|
|
2644
2660
|
activityDetection,
|
|
2645
2661
|
activityTimeout,
|
|
2646
|
-
autoShowBlinds
|
|
2662
|
+
autoShowBlinds,
|
|
2663
|
+
onActivityStateChange: handleActivityStateChange
|
|
2647
2664
|
}, tab.id);
|
|
2648
2665
|
}
|
|
2649
2666
|
return /* @__PURE__ */ jsxs6("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAkC3D,OAAO,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAkC3D,OAAO,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAGV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HAunC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAKN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAKZ,MAAM,gBAAgB,CAAC;AAoCxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA6zCD,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