From 82e03978b89938219958032efb1448cc76baa181 Mon Sep 17 00:00:00 2001 From: Saumit Date: Sat, 27 Sep 2025 02:14:26 +0530 Subject: Initial snapshot - OpenTelemetry demo 2.1.3 -f --- src/react-native-app/app/_layout.tsx | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/react-native-app/app/_layout.tsx (limited to 'src/react-native-app/app/_layout.tsx') diff --git a/src/react-native-app/app/_layout.tsx b/src/react-native-app/app/_layout.tsx new file mode 100644 index 0000000..d8ac89c --- /dev/null +++ b/src/react-native-app/app/_layout.tsx @@ -0,0 +1,59 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { SplashScreen, Stack } from "expo-router"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { + DarkTheme, + DefaultTheme, + ThemeProvider, +} from "@react-navigation/native"; +import { useColorScheme } from "react-native"; +import { RootSiblingParent } from "react-native-root-siblings"; +import Toast from "react-native-toast-message"; +import { useFonts } from "expo-font"; +import { useEffect, useMemo } from "react"; +import { useTracer } from "@/hooks/useTracer"; +import CartProvider from "@/providers/Cart.provider"; + +const queryClient = new QueryClient(); + +export default function RootLayout() { + const colorScheme = useColorScheme(); + const [fontsLoaded] = useFonts({ + SpaceMono: require("../assets/fonts/SpaceMono-Regular.ttf"), + }); + const { loaded: tracerLoaded } = useTracer(); + + const loaded = useMemo( + () => fontsLoaded && tracerLoaded, + [fontsLoaded, tracerLoaded], + ); + useEffect(() => { + if (loaded) { + SplashScreen.hideAsync(); + } + }, [loaded]); + + if (!loaded) { + return null; + } + + return ( + + + + + {/* + TODO Once https://github.com/open-telemetry/opentelemetry-js-contrib/pull/2359 is available it can + be used here to provide telemetry for navigation between tabs + */} + + + + + + + + + ); +} -- cgit v1.2.3