eletrotupi / tcc/ frontend/app/_layout.tsx80d91bc2ac14c41ba7e7ed6b4640d9d958a3b41f
2.3 KB | 89 lines Raw
1
import {
2
  DarkTheme,
3
  DefaultTheme,
4
  ThemeProvider,
5
} from "@react-navigation/native";
6
import { Stack } from "expo-router";
7
import { useColorScheme } from "react-native";
8
import { QueryClientProvider } from "@tanstack/react-query";
9
import { queryClient } from "@/lib/queryClient";
10
import { useNotificationObserver } from "@/hooks/useNotificationObserver";
11
import { AuthProvider } from "@/context/AuthContext";
12

13
export const unstable_settings = {
14
  initialRouteName: "(tabs)",
15
};
16

17
const AppBootstrap = () => {
18
  useNotificationObserver();
19
  return null;
20
};
21

22
export default function RootLayout() {
23
  const colorScheme = useColorScheme();
24

25
  return (
26
    <QueryClientProvider client={queryClient}>
27
      <ThemeProvider value={DefaultTheme}>
28
        <AuthProvider>
29
          <AppBootstrap />
30
          <Stack>
31
            <Stack.Screen name="index" options={{ headerShown: false }} />
32
            <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
33
            <Stack.Screen
34
              name="auth"
35
              options={{
36
                headerShown: false,
37
                presentation: "modal",
38
              }}
39
            />
40

41
            <Stack.Screen
42
              name="profile"
43
              options={{
44
                title: "Editar perfil",
45
              }}
46
            />
47

48
            <Stack.Screen
49
              name="entry/mood-components"
50
              options={{
51
                presentation: "formSheet",
52
                title: "Editar Componentes",
53
                sheetAllowedDetents: [0.25, 0.5, 1],
54
                sheetInitialDetentIndex: 1,
55
              }}
56
            />
57

58
            <Stack.Screen
59
              name="sleep/new"
60
              options={{
61
                title: "Registrar Sono",
62
              }}
63
            />
64

65
            <Stack.Screen
66
              name="triggers/new"
67
              options={{
68
                title: "Registrar Gatilho",
69
              }}
70
            />
71

72
            <Stack.Screen
73
              name="notifications"
74
              options={{
75
                presentation: "modal",
76
                title: "Notificações",
77
              }}
78
            />
79

80
            <Stack.Screen
81
              name="modal"
82
              options={{ presentation: "modal", title: "Modal" }}
83
            />
84
          </Stack>
85
        </AuthProvider>
86
      </ThemeProvider>
87
    </QueryClientProvider>
88
  );
89
}