+
{tab ? (
-
+ isTerminal ? (
+ // Terminal tabs are portaled in from AppShell to avoid remounting
+
+ ) : (
+
+ )
) : (
)}
@@ -366,6 +381,7 @@ const Row = memo(function Row({
onOpenTab,
onColDivider,
onColDividerTouch,
+ onPaneContentRef,
}: {
rowIdx: number;
paneIndices: number[];
@@ -382,6 +398,7 @@ const Row = memo(function Row({
rowIdx: number,
colIdx: number,
) => void;
+ onPaneContentRef?: (paneIndex: number, el: HTMLDivElement | null) => void;
}) {
const widths = colWidths ?? [];
return (
@@ -402,6 +419,7 @@ const Row = memo(function Row({
isDragging={isDragging}
onOpenSingletonTab={onOpenSingletonTab}
onOpenTab={onOpenTab}
+ onPaneContentRef={onPaneContentRef}
/>
{ci < paneIndices.length - 1 && (
@@ -426,6 +444,7 @@ export const SplitView = memo(function SplitView({
onOpenSingletonTab,
onOpenTab,
onTerminalResize,
+ onPaneContentRef,
}: {
tabs: Tab[];
paneTabIds: (string | null)[];
@@ -433,6 +452,7 @@ export const SplitView = memo(function SplitView({
onOpenSingletonTab: (type: TabType) => void;
onOpenTab: (host: Host, type: TabType) => void;
onTerminalResize?: () => void;
+ onPaneContentRef?: (paneIndex: number, el: HTMLDivElement | null) => void;
}) {
const {
rowSizes,
@@ -485,6 +505,7 @@ export const SplitView = memo(function SplitView({
onOpenTab={onOpenTab}
onColDivider={onColDivider}
onColDividerTouch={onColDividerTouch}
+ onPaneContentRef={onPaneContentRef}
/>
)}
@@ -500,6 +521,7 @@ export const SplitView = memo(function SplitView({
isDragging={isDragging}
onOpenSingletonTab={onOpenSingletonTab}
onOpenTab={onOpenTab}
+ onPaneContentRef={onPaneContentRef}
/>