import { Image } from "expo-image"; import { StyleSheet } from "react-native"; import { useQuestions } from "@/api"; import { useRandomUserTestMutation } from "@/api/userTests"; import { HelloWave } from "@/components/hello-wave"; import ParallaxScrollView from "@/components/parallax-scroll-view"; import useAuthContext from "@/components/providers/auth-provider/hook"; import Question from "@/components/question"; import { ThemedView } from "@/components/themed-view"; import Panel from "@/components/ui/panel"; import RandomTestForm from "@/components/ui/random-test-form"; import { ThemedText } from "@/components/ui/themed-text"; import getErrorAxiosMessage from "@/utils/get-error-axios-message"; import { router } from "expo-router"; import { useToast } from "react-native-toast-notifications"; export default function HomeScreen() { const { data: questions, isLoading: isLoadingQuestions } = useQuestions(); const { user, isAuthorized } = useAuthContext(); const { mutate, isPending } = useRandomUserTestMutation(); const toast = useToast(); const username = isAuthorized ? user!.username : "Guest"; const questionsLoaded = !isLoadingQuestions && questions && questions.meta.total > 0; const handleStartRandomTest = (min: number, max: number, catId: number) => { mutate({ min, max, category_id: catId }, { onSuccess: (data) => { router.push(`/user-tests/doing/${data.id}`); }, onError: (error) => { toast.show(getErrorAxiosMessage(error), { type: "danger" }) } }); } return ( } > Welcome, {username}! Take a random test Questions {questionsLoaded && questions.data.map((question) => ( router.push(`/questions/${question.id}`)} withCategory={true} /> ))} ); } const styles = StyleSheet.create({ titleContainer: { flexDirection: "row", alignItems: "center", gap: 8, }, stepContainer: { gap: 8, marginBottom: 8, }, reactLogo: { height: 178, width: 290, bottom: 0, left: 0, position: "absolute", }, });