import { useCallback, useState } from 'react';
import { ActivityIndicator, StyleSheet, View } from 'react-native';
import { StripeProvider } from '@stripe/stripe-react-native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { colors } from './src/theme';
import { apiFetch } from './src/api';
import { useAuth } from './src/hooks/useAuth';
import LoginScreen from './src/screens/LoginScreen';
import LobbyScreen from './src/screens/LobbyScreen';
import TableScreen from './src/screens/TableScreen';
export default function App() {
const { token, user, loading, login, logout, setUser } = useAuth();
const [selectedTable, setSelectedTable] = useState(null);
const refreshUser = useCallback(async () => {
if (!token) {
return;
}
const data = await apiFetch('/api/me', token);
setUser(data);
}, [token, setUser]);
if (loading) {
return (
);
}
return (
{!token || !user ? (
) : selectedTable ? (
setSelectedTable(null)}
/>
) : (
)}
);
}
const styles = StyleSheet.create({
loading: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: colors.backgroundTop
}
});