69 lines
2.1 KiB
TypeScript
69 lines
2.1 KiB
TypeScript
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>
|
|
);
|
|
}
|