import { StatusBar } from 'expo-status-bar';
import { ShareIntent, useShareIntent } from 'expo-share-intent';
import React from 'react';
import { ActivityIndicator, SafeAreaView, StyleSheet, Text, View } from 'react-native';
import { AppProvider, useAppContext } from './src/context/AppContext';
import { colors } from './src/components/UI';
import { AuthScreen } from './src/screens/AuthScreen';
import { ConnectionSetupScreen } from './src/screens/ConnectionSetupScreen';
import { WebAppScreen } from './src/screens/WebAppScreen';
interface ShareIntentState {
hasShareIntent: boolean;
shareIntent: ShareIntent;
resetShareIntent: (clearNativeModule?: boolean) => void;
error: string | null;
}
function AppRouter({ shareIntentState }: { shareIntentState: ShareIntentState }) {
const { ready, instanceUrl, token, user, logout } = useAppContext();
if (!ready) {
return (
Loading Trackeep Mobile...
);
}
if (!instanceUrl) {
return ;
}
if (!token) {
return ;
}
if (!user) {
return (
Loading user session...
);
}
return (
);
}
export default function App() {
const { hasShareIntent, shareIntent, resetShareIntent, error } = useShareIntent({
resetOnBackground: false,
});
return (
);
}
const styles = StyleSheet.create({
appRoot: {
flex: 1,
backgroundColor: colors.background,
},
safeArea: {
flex: 1,
},
bootContainer: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: colors.background,
gap: 10,
},
bootText: {
color: colors.muted,
fontSize: 14,
},
});