Files
callstack__agent-device/examples/test-app/app/_layout.tsx
Michał Pierzchała 7f3e355426 fix(ios): preserve regular snapshot depth through structural wrappers (#1947)
* fix(ios): complete regular snapshot depth frontier

* fix(ios): align depth frontier with visibility fold

* fix(ios): exercise regular depth frontier in CI

* fix(ios): cover visible-depth frontier through public snapshot

* fix(ios): tolerate absent deep-link confirmation

* test(ios): expose visible-depth fixture hierarchy

* test(ios): wait for visible-depth fixture subtree

* fix(ios): keep visible-depth fixture minimal

* fix(ios): update snapshot hint fixtures

* test(ios): avoid fixture label aggregation

* test(ios): match fixture raw hierarchy

* test(ios): prove visible-depth raw ancestry

* test(ios): align depth smoke with AX hierarchy
2026-08-22 13:53:39 +02:00

55 lines
1.7 KiB
TypeScript

import { Stack } from 'expo-router';
import { ThemeProvider } from 'expo-router/react-navigation';
import { StatusBar } from 'expo-status-bar';
import { StyleSheet } from 'react-native';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { ToastViewport } from '../src/components';
import { LabStateProvider, useLabState } from '../src/lab-state';
import { getNavigationTheme, useAppColors } from '../src/theme';
function RootLayoutContent() {
const colors = useAppColors();
const { toastMessage } = useLabState();
return (
<ThemeProvider value={getNavigationTheme(colors)}>
<StatusBar style={colors.mode === 'light' ? 'dark' : 'light'} />
<Stack
screenOptions={{
contentStyle: { backgroundColor: colors.surface },
headerShown: false,
}}
>
<Stack.Screen name="(tabs)" />
<Stack.Screen name="accessory-setup" />
<Stack.Screen name="automation" options={{ headerShown: true, title: 'Automation' }} />
<Stack.Screen name="inert" options={{ presentation: 'fullScreenModal' }} />
<Stack.Screen name="snapshot-depth" />
<Stack.Screen name="product/[productId]" />
<Stack.Screen name="webview" />
</Stack>
{toastMessage ? <ToastViewport message={toastMessage} /> : null}
</ThemeProvider>
);
}
export default function RootLayout() {
return (
<GestureHandlerRootView style={styles.root}>
<SafeAreaProvider>
<LabStateProvider>
<RootLayoutContent />
</LabStateProvider>
</SafeAreaProvider>
</GestureHandlerRootView>
);
}
const styles = StyleSheet.create({
root: {
flex: 1,
},
});