import _ from "lodash"; import { Button, Spinner, Text as NBText, View } from "native-base"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { FlatList, Image, 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, selectUploadInProgress, } from "../../redux/photos/photos.selectors"; import MediaCacheOverlay from "../media-cache-overlay/media-cache-overlay.component"; const mapStateToProps = createStructuredSelector({ photos: selectPhotos, uploadInProgress: selectUploadInProgress, }); const mapDispatchToProps = (dispatch) => ({ removeAllPhotos: () => dispatch(removeAllPhotos()), uploadAllphotos: () => dispatch(uploadAllPhotos()), }); export function ScreenMediaCache({ photos, removeAllPhotos, uploadAllphotos, uploadInProgress, }) { const { t } = useTranslation(); const [previewVisible, setPreviewVisible] = useState(false); const [imgIndex, setImgIndex] = useState(0); const groupedPhotos = _.groupBy(photos, "jobId"); const RenderJobPictures = ({ jobId, jobPhotos }) => ( {jobId} item.id} numColumns={4} renderItem={(object) => object.item.video ? ( Video ) : ( { setImgIndex(object.index); setPreviewVisible(true); }} > ) } /> ); return ( item} renderItem={(object) => ( )} /> {`${photos.length} Photos`} ); } const styles = StyleSheet.create({ container: { flex: 1, }, actions: { display: "flex", flexDirection: "row", justifyContent: "space-evenly", }, listContentContainer: { //flex: 1, justifyContent: "flex-start", //flexDirection: "row", }, }); export default connect(mapStateToProps, mapDispatchToProps)(ScreenMediaCache); // item.id} // renderItem={(object) => {object.item}} // />;