diff --git a/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx b/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx index e94a5ea9296e..a8e3b7a451df 100644 --- a/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx +++ b/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx @@ -59,6 +59,7 @@ import { collapsedSplitTransition, nativeWorkspacePopAction, projectWorkspaceStack, + workspaceDetailHidesTabs, partitionStackPresentations, reconcileStackScreens, type CollapsedSplitColumn, @@ -443,9 +444,9 @@ function WorkspaceColumns( function WorkspaceStackView(props: ViewProps & { readonly nativeColumns: boolean }) { const { layout } = useAdaptiveWorkspaceLayout(); const workspace = useWorkspaceTabs()!; - // Native dismiss commits the route pop after the transition. Restore the dock - // when the primary screen starts appearing, including interactive back gestures. - const [primaryVisible, setPrimaryVisible] = useState(false); + // Native Back reveals Home before the router pops. Scope that exception to its + // outgoing route so a new selection hides the dock before native callbacks arrive. + const [returningFrom, setReturningFrom] = useState(null); const metrics = useNativeLayoutMetrics(); const projection = projectWorkspaceStack(props.state, (route) => { const presentation = props.descriptors[route.key]?.options.presentation; @@ -469,8 +470,7 @@ function WorkspaceStackView(props: ViewProps & { readonly nativeColumns: boolean