- Archive dormant apps (daemon, desktop, native, tui) and superseded packages/server into repos/ for reference - Archive 21 dead web components (chat page shell, work-os cluster, strays) into repos/web/; keep reused message-rendering primitives in components/chat - Merge @code/work-os into @code/primitives; work.ts absorbed via ./work subpath and barrel export; update all four importers - Add docs/futures.md tracking audio/video (blocked at Flue + provider), web layout cleanup, and message rendering quality - Repoint dev:zopu script to @code/agents (the live Flue server) - Note repos/ reference-code convention in AGENTS.md
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import "@/global.css";
|
|
import { NativeAuthProvider } from "@code/auth/native";
|
|
import { useConvexAuth } from "convex/react";
|
|
import { Stack } from "expo-router";
|
|
import { HeroUINativeProvider, Spinner } from "heroui-native";
|
|
import { View } from "react-native";
|
|
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
import { KeyboardProvider } from "react-native-keyboard-controller";
|
|
|
|
import { AppThemeProvider } from "@/contexts/app-theme-context";
|
|
|
|
function RootNavigator() {
|
|
const { isAuthenticated, isLoading } = useConvexAuth();
|
|
|
|
if (isLoading) {
|
|
return (
|
|
<View className="flex-1 items-center justify-center bg-background">
|
|
<Spinner size="lg" />
|
|
</View>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Stack screenOptions={{ headerShown: false }}>
|
|
<Stack.Protected guard={!isAuthenticated}>
|
|
<Stack.Screen name="(auth)" />
|
|
</Stack.Protected>
|
|
<Stack.Protected guard={isAuthenticated}>
|
|
<Stack.Screen name="(drawer)" />
|
|
<Stack.Screen
|
|
name="modal"
|
|
options={{ headerShown: true, presentation: "modal", title: "Modal" }}
|
|
/>
|
|
</Stack.Protected>
|
|
</Stack>
|
|
);
|
|
}
|
|
|
|
export default function Layout() {
|
|
return (
|
|
<NativeAuthProvider>
|
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
<KeyboardProvider>
|
|
<AppThemeProvider>
|
|
<HeroUINativeProvider>
|
|
<RootNavigator />
|
|
</HeroUINativeProvider>
|
|
</AppThemeProvider>
|
|
</KeyboardProvider>
|
|
</GestureHandlerRootView>
|
|
</NativeAuthProvider>
|
|
);
|
|
}
|