diff --git a/docs/expo-router.md b/docs/expo-router.md index 6ff9d14c9c..cc65eb57a7 100644 --- a/docs/expo-router.md +++ b/docs/expo-router.md @@ -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 diff --git a/packages/app/src/components/split-container.tsx b/packages/app/src/components/split-container.tsx index 52a51a2a3a..660b5f4e6b 100644 --- a/packages/app/src/components/split-container.tsx +++ b/packages/app/src/components/split-container.tsx @@ -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 { diff --git a/packages/app/src/screens/workspace/explorer-sidebar/geometry.web.tsx b/packages/app/src/screens/workspace/explorer-sidebar/geometry.web.tsx index 09b6599197..8864cd1e81 100644 --- a/packages/app/src/screens/workspace/explorer-sidebar/geometry.web.tsx +++ b/packages/app/src/screens/workspace/explorer-sidebar/geometry.web.tsx @@ -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" }, }); diff --git a/packages/app/src/workspace-tabs/explorer-sidebar.test.ts b/packages/app/src/workspace-tabs/explorer-sidebar.test.ts index 6d76af4a66..15fd44f649 100644 --- a/packages/app/src/workspace-tabs/explorer-sidebar.test.ts +++ b/packages/app/src/workspace-tabs/explorer-sidebar.test.ts @@ -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", () => {