import * as React from 'react'; import { useEffect, useContext, useState } from 'react'; import { StyleSheet, SafeAreaView, Button, View, Text, ScrollView, RefreshControl, TouchableOpacity, TouchableWithoutFeedback, Modal } from 'react-native'; import {useNetInfo} from "@react-native-community/netinfo"; import NetInfo from "@react-native-community/netinfo"; import CustomHeader from '../../../components/header.js'; import Elements from '../../../components/elements.js'; import Theme from '../../../components/theme.style.js'; import Assets from '../../../components/assets.manager.js'; import DB from '../../../components/storage/'; import REQUEST from '../../../components/api/'; import CustomSafeArea from '../../../components/safeArea.component.js'; export default function Promos(navigation) { const [modalVisible, setModalVisible] = useState(false); const [loading, setloading] = useState(false); const [connected, setconnection] = useState(false); const [infodialog, setinfodialog] = useState(false); const [session, setsession] = useState(null); const [promos, setpromos] = useState([]); const init = async () => { const ss = await DB.session() setloading(true) setconnection(true) await setsession(ss) await REQUEST("promos", "get", {}, {}, {}, async (res) => { if(res.status == 1 && res.data.length > 0){ await setpromos(res.data) }else{ console.log(res.message, res.data) } }, function(error){ console.log(error) }) await setloading(false) } useEffect(() => { NetInfo.fetch().then(state => { console.log("Connection type", state.type); console.log("Is connected?", state.isConnected); if(state.isConnected){ init() }else{ Elements.nointernet2() } }); }, []) const renderPromos = () => { return promos.map((data, index) => { return { navigation.navigation.navigate("PromoDetails", {data: data, onBackPress: () => null}); }} image={{uri: data.image}} /> }) } if(!connected){ return ( { NetInfo.fetch().then(state => { console.log("Connection type", state.type); console.log("Is connected?", state.isConnected); if(state.isConnected){ init() }else{ Elements.nointernet2() } }) }} /> ) } return ( } style={{flex: 1, padding: 10}} showsVerticalScrollIndicator={false} > {renderPromos()} ); }