fix(app): keep Explorer resize handles stretched through the dock

The shared frame moved the divider into an absolute column, leaving its horizontal handle without height. Restore the row so pointer drags reach it, preserving the existing resize and performance contract.
This commit is contained in:
Mohamed Boudra
2026-10-19 17:02:01 +02:00
parent a264f41d4a
commit efcc9bb940
4 changed files with 5 additions and 5 deletions
+3 -1
View File
@@ -157,7 +157,9 @@ a small `withUnistyles` boundary without subscribing the route tree itself to
every Unistyles runtime update.
Navigators keep their identity across appearance changes. `ThemedStack` remounts
each screen's content below the native stack when appearance tokens change; a
each ordinary screen's content below the native stack when appearance tokens change.
Workspace screens own retained panel lifetimes and update appearance at their
leaves through `screenOwnedAppearance` ([Explorer](explorer-sidebar.md)). A
keyed wrapper above a stack remounts the stack itself, and Android crashes when
that happens while a FragmentManager transaction is running, which settings
hydration at startup makes likely. A screen that mounts a nested navigator (the
@@ -55,7 +55,6 @@ import {
} from "@/stores/workspace-layout-store";
import type { WorkspaceTab } from "@/workspace-tabs/model";
import { recordRenderProfileReasons, RenderProfile } from "@/utils/render-profiler";
import { inlineUnistylesStyle } from "@/styles/unistyles-inline-style";
import { isNative } from "@/constants/platform";
interface SplitContainerProps {
@@ -53,5 +53,5 @@ export function useExplorerGeometry({
};
}
const styles = StyleSheet.create({
resize: { position: "absolute", left: 0, top: 0, bottom: 0, zIndex: 2 },
resize: { position: "absolute", left: 0, top: 0, bottom: 0, zIndex: 2, flexDirection: "row" },
});
@@ -37,10 +37,9 @@ beforeEach(() => {
});
describe("Explorer sidebar", () => {
it("selects the Explorer shell from layout and split capabilities", () => {
it("selects the Explorer shell from the form factor", () => {
expect(resolveExplorerSidebarPresentation({ isCompact: true })).toBe("overlay");
expect(resolveExplorerSidebarPresentation({ isCompact: false })).toBe("dock");
expect(resolveExplorerSidebarPresentation({ isCompact: false })).toBe("dock");
});
it("uses the same Explorer pane inside the compact overlay", () => {