import React, { useState } from 'react'; import { View, Text, FlatList, TouchableOpacity, StyleSheet, Dimensions } from 'react-native'; import { useNavigation } from '@react-navigation/native'; import { Colors } from '../../../theme'; import { WarningModal } from '../../../components'; import { NAVIGATION_PAGES } from 'src/types'; import { storage, StoreType } from '../../../storage'; import FlagsIcon from '../../../../assets/icons/travels-section/flags.svg'; import RegionsIcon from '../../../../assets/icons/travels-section/regions.svg'; import CompassIcon from '../../../../assets/icons/travels-section/compass.svg'; import SeriesIcon from '../../../../assets/icons/travels-section/series.svg'; import EarthIcon from '../../../../assets/icons/travels-section/earth.svg'; import TripIcon from '../../../../assets/icons/travels-section/trip.svg'; import ImagesIcon from '../../../../assets/icons/travels-section/images.svg'; import FixersIcon from '../../../../assets/icons/travels-section/fixers.svg'; import CalendarIcon from 'assets/icons/events/calendar-solid.svg'; import InfoIcon from 'assets/icons/info-solid.svg'; import { getFontSize } from 'src/utils'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; const TravelsScreen = () => { const [isModalVisible, setIsModalVisible] = useState(false); const insets = useSafeAreaInsets(); const token = storage.get('token', StoreType.STRING); const navigation = useNavigation(); const buttons = [ { label: 'Countries', icon: FlagsIcon, page: NAVIGATION_PAGES.COUNTRIES }, { label: 'Regions', icon: RegionsIcon, page: NAVIGATION_PAGES.REGIONS }, { label: 'DARE', icon: CompassIcon, page: NAVIGATION_PAGES.DARE }, { label: 'Series', icon: SeriesIcon, page: NAVIGATION_PAGES.SERIES }, { label: 'Earth', icon: EarthIcon, page: NAVIGATION_PAGES.EARTH }, { label: 'Trips', icon: TripIcon, page: NAVIGATION_PAGES.TRIPS }, { label: 'Photos', icon: ImagesIcon, page: NAVIGATION_PAGES.PHOTOS }, { label: 'Fixers', icon: FixersIcon, page: NAVIGATION_PAGES.FIXERS }, { label: 'Events', icon: CalendarIcon, page: NAVIGATION_PAGES.EVENTS } ]; const handlePress = (page: string) => { if ( !token && (page === NAVIGATION_PAGES.TRIPS || page === NAVIGATION_PAGES.PHOTOS || page === NAVIGATION_PAGES.FIXERS) ) { setIsModalVisible(true); } else { navigation.navigate(page as never); } }; const renderItem = ({ item }: { item: { label: string; icon: any; page: string } }) => ( handlePress(item.page)}> {item.label} ); return ( Travels navigation.navigate(NAVIGATION_PAGES.PLAN_INFO as never)} style={{ width: 30 }} > 'key' + index} numColumns={2} contentContainerStyle={styles.container} style={{ flex: 1 }} columnWrapperStyle={{ justifyContent: 'space-between' }} /> setIsModalVisible(false)} /> ); }; const styles = StyleSheet.create({ container: { justifyContent: 'space-between', paddingHorizontal: Dimensions.get('window').width < 380 ? '5%' : 24, paddingVertical: 8, gap: 32, width: '100%' }, button: { alignItems: 'center', justifyContent: 'center', paddingVertical: 16, paddingHorizontal: 8, backgroundColor: Colors.FILL_LIGHT, borderRadius: 16, gap: 12 }, label: { color: Colors.DARK_BLUE, fontSize: 13, fontWeight: 'bold' }, title: { color: Colors.DARK_BLUE, fontFamily: 'redhat-700', fontSize: getFontSize(14) }, header: { alignItems: 'center', paddingVertical: 16, flexDirection: 'row', justifyContent: 'space-between' } }); export default TravelsScreen;