import { ThemedText } from '@/components/themed-text'; import AntDesign from '@expo/vector-icons/AntDesign'; import Feather from '@expo/vector-icons/Feather'; import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons'; import { LinearGradient } from 'expo-linear-gradient'; import { useRouter } from 'expo-router'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Animated, RefreshControl, ScrollView, TouchableOpacity, View } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { styles } from '../styles/welcomeStyle'; import FeatureCard from './FeatureCard'; import WelcomeHeader from './WelcomeHeader'; export default function WelcomePage() { const [menuOpen, setMenuOpen] = useState(false); const fadeAnim = new Animated.Value(0); const router = useRouter(); const slideAnim = new Animated.Value(50); const [refreshing, setRefreshing] = useState(false); const menuHeightAnim = useRef(new Animated.Value(0)).current; const menuOpacityAnim = useRef(new Animated.Value(0)).current; const { t } = useTranslation(); useEffect(() => { Animated.parallel([ Animated.timing(fadeAnim, { toValue: 1, duration: 800, useNativeDriver: true, }), Animated.timing(slideAnim, { toValue: 0, duration: 800, useNativeDriver: true, }), ]).start(); }, []); // Menu animatsiyasi useEffect(() => { if (menuOpen) { Animated.parallel([ Animated.spring(menuHeightAnim, { toValue: 1, tension: 80, friction: 10, useNativeDriver: false, }), Animated.timing(menuOpacityAnim, { toValue: 1, duration: 250, useNativeDriver: true, }), ]).start(); } else { Animated.parallel([ Animated.timing(menuHeightAnim, { toValue: 0, duration: 200, useNativeDriver: false, }), Animated.timing(menuOpacityAnim, { toValue: 0, duration: 150, useNativeDriver: true, }), ]).start(); } }, [menuOpen]); const handleNavigation = (screen: 'announcements' | '(tabs)/login') => { setMenuOpen(false); router.push(`/${screen}`); }; const onRefresh = () => { setRefreshing(true); setTimeout(() => { setRefreshing(false); }, 1500); }; return ( setMenuOpen(!menuOpen)} menuOpen={menuOpen} /> {menuOpen && ( {t('mainPage.sign_in')} {t('mainPage.sign_up')} )} } > {t('mainPage.safe')} {t('mainPage.welcome')} {t('mainPage.welcome_desc')} handleNavigation('announcements')} > {t('common.enrol')} } title={t('mainPage.card1Title')} desc={t('mainPage.card1Desc')} delay={200} /> } title={t('mainPage.card2Title')} desc={t('mainPage.card2Desc')} delay={300} /> } title={t('mainPage.card3Title')} desc={t('mainPage.card3Desc')} delay={400} /> {t('mainPage.enter')} handleNavigation('(tabs)/login')} activeOpacity={0.9}> {t('mainPage.start')} ); }