import * as FileSystem from "expo-file-system"; import { Button, Text as NBText, Thumbnail, View } from "native-base"; import React, { useEffect, useState } from "react"; import { FlatList, SafeAreaView, StyleSheet, Text, TouchableOpacity, } from "react-native"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { removeAllPhotos, uploadAllPhotos, } from "../../redux/photos/photos.actions"; import { selectPhotos } from "../../redux/photos/photos.selectors"; import MediaCacheOverlay from "../media-cache-overlay/media-cache-overlay.component"; const mapStateToProps = createStructuredSelector({ photos: selectPhotos, }); const mapDispatchToProps = (dispatch) => ({ removeAllPhotos: () => dispatch(removeAllPhotos()), uploadAllphotos: () => dispatch(uploadAllPhotos()), }); export function ScreenMediaCache({ photos, removeAllPhotos, uploadAllphotos }) { const [previewVisible, setPreviewVisible] = useState(false); const [imgIndex, setImgIndex] = useState(0); const [imagesInDir, setImagesInDir] = useState([]); useEffect(() => { const check = async () => { setImagesInDir( await FileSystem.readDirectoryAsync( FileSystem.documentDirectory + "photos" ) ); }; photos.length; check(); }, [photos]); return ( item.id} numColumns={5} renderItem={(object) => object.item.video ? ( Video ) : ( { setImgIndex(object.index); setPreviewVisible(true); }} > ) } /> item.id} renderItem={(object) => {object.item}} /> {`${photos.length} Photos`} ); } const styles = StyleSheet.create({ container: { flex: 1, }, actions: { display: "flex", flexDirection: "row", justifyContent: "space-evenly", }, listContentContainer: { flex: 1, }, thumbnail: { width: 10, height: 10, backgroundColor: "tomato", }, }); export default connect(mapStateToProps, mapDispatchToProps)(ScreenMediaCache);