import "react-native-url-polyfill/auto"; import { ClerkProvider, SignedIn, SignedOut, useAuth } from "@clerk/clerk-expo"; import { tokenCache } from "@clerk/clerk-expo/token-cache"; import { ActivityIndicator, StyleSheet, Text, View } from "react-native"; import { I18nProvider, useI18n } from "./src/i18n/I18nProvider"; import { useAppTheme } from "./src/lib/theme"; import { SignInScreen } from "./src/screens/SignInScreen"; import { StreamerScreen } from "./src/screens/StreamerScreen"; const publishableKey = process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY; function AuthReadyGate() { const theme = useAppTheme(); const { isLoaded } = useAuth(); if (!isLoaded) { return ( ); } return ( <> ); } export default function App() { return ( ); } function AppContent() { const theme = useAppTheme(); const { t } = useI18n(); if (!publishableKey) { return ( {t("missingClerkKey")} ); } return ( ); } const styles = StyleSheet.create({ loadingWrap: { alignItems: "center", flex: 1, justifyContent: "center", }, errorText: { fontSize: 16, paddingHorizontal: 20, textAlign: "center", }, });