Files
life-echo/app-ios/app/_layout.tsx

69 lines
2.1 KiB
TypeScript
Raw Normal View History

2026-01-31 21:20:50 +01:00
import { GluestackUIProvider } from '@gluestack-ui/themed';
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
import { Stack } from 'expo-router';
import { StatusBar } from 'expo-status-bar';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import 'react-native-reanimated';
import { useColorScheme } from '@/hooks/use-color-scheme';
import { gluestackConfig, AppColors } from '@/constants/theme';
// Custom light theme with our colors
const CustomLightTheme = {
...DefaultTheme,
colors: {
...DefaultTheme.colors,
primary: AppColors.mediumPurple,
background: AppColors.cream,
card: AppColors.white,
text: AppColors.deepPurple,
border: AppColors.lavender,
notification: AppColors.mediumPurple,
},
};
// Custom dark theme with our colors
const CustomDarkTheme = {
...DarkTheme,
colors: {
...DarkTheme.colors,
primary: AppColors.lavender,
background: AppColors.deepPurple,
card: '#2D0036',
text: AppColors.white,
border: AppColors.slatePurple,
notification: AppColors.mediumPurple,
},
};
export const unstable_settings = {
anchor: '(tabs)',
};
export default function RootLayout() {
const colorScheme = useColorScheme();
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<GluestackUIProvider config={gluestackConfig}>
<ThemeProvider value={colorScheme === 'dark' ? CustomDarkTheme : CustomLightTheme}>
<Stack>
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
<Stack.Screen
name="chat/[id]"
options={{
headerShown: false,
animation: 'slide_from_right',
gestureEnabled: true,
gestureDirection: 'horizontal',
}}
/>
<Stack.Screen name="modal" options={{ presentation: 'modal', title: 'Modal' }} />
</Stack>
<StatusBar style={colorScheme === 'dark' ? 'light' : 'dark'} />
</ThemeProvider>
</GluestackUIProvider>
</GestureHandlerRootView>
);
}