// app/_layout.tsx
import { Stack } from 'expo-router';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { useEffect, useState } from 'react';
import { View, ActivityIndicator } from 'react-native';
import { useUserStore } from '@/store/useUserStore';
import { getDatabase } from '@/lib/database';
import '../global.css';
export default function RootLayout() {
const [loading, setLoading] = useState(true);
const setUser = useUserStore((s) => s.setUser);
useEffect(() => {
async function bootstrap() {
try {
const db = await getDatabase();
const user = await db.getFirstAsync<{ id: string; display_name: string; share_id: string }>(
'SELECT id, display_name, share_id FROM users WHERE is_self = 1 LIMIT 1'
);
if (user) {
setUser({ id: user.id, displayName: user.display_name, shareId: user.share_id });
}
} catch (e) {
console.error('Bootstrap error:', e);
} finally {
setLoading(false);
}
}
bootstrap();
}, []);
if (loading) {
return (
);
}
return (
);
}