diff --git a/Views/Feed.js b/Views/Feed.js index 2ea2967..388d981 100644 --- a/Views/Feed.js +++ b/Views/Feed.js @@ -69,6 +69,9 @@ let Feed = ({ navigation, route }) => { onRefresh={() => { API.getPosts().then(setPosts); }} + initialNumToRender={3} + maxToRenderPerBatch={3} + removeClippedSubviews={true} /> diff --git a/Views/Profile.js b/Views/Profile.js index f76c320..550e512 100644 --- a/Views/Profile.js +++ b/Views/Profile.js @@ -72,7 +72,9 @@ let Profile = ({ navigation, route }) => { keyExtractor={item => item._id || item.createdAt} ListHeaderComponent={header} refreshing={Posts.length === 0} - initialNumToRender={2} + initialNumToRender={3} + maxToRenderPerBatch={3} + removeClippedSubviews={true} onRefresh={() => { API.getPosts(route.params.profileid).then(setPosts); }} diff --git a/components/Media.js b/components/Media.js index de48bc0..4aef258 100644 --- a/components/Media.js +++ b/components/Media.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { Text, View, ScrollView, Image, StyleSheet } from 'react-native'; +import { Text, View, TouchableHighlight, Image, StyleSheet } from 'react-native'; import API from './../API.js'; import VideoPlayer from './VideoPlayer.js'; import VimeoPlayer from './VimeoPlayer.js'; @@ -41,17 +41,25 @@ let Media = (props) => { const imageStyle = imagesTag.length == 1 ? styles.image : styles.multipleImage; const videosId = videoIdF(props.content); const iframeSrc = iframeTagF(props.content) || []; - let [videosFiles, setVideosFiles] = useState([]); - let [poster, setPoster] = useState(''); + const [videosFiles, setVideosFiles] = useState([]); + const [poster, setPoster] = useState(''); + const [loaded, setLoaded] = useState(false); useEffect(async () => { if (!videosId[1]) return 0; let videoObj = await API.getVideo(videosId[1]); if(videoObj && videoObj.files){ setVideosFiles(videoObj.files); - setPoster(videoObj.pictures.sizes[videoObj.pictures.sizes.length - 1].link); + setPoster(videoObj.pictures.sizes[4].link); } }, [props.content]) - const video = videosFiles.length ? : + const video = videosFiles.length ? ( + loaded ? : + ( + setLoaded(true)}> + + + ) + ) : (videosId.length ? : <>); const iframe = iframeSrc.length ? { const onLoad = ()=>{ if(!viewer.data[videoId]) return 0; + console.log(videoId + " loaded") video.current.setPositionAsync(viewer.data[videoId].time*1000); }; @@ -25,16 +26,11 @@ const VideoPlayer = ({ videosFiles, videoId, poster }) => { ref={video} style={styles.video} source={{ - uri: chosenVideo[0].link, + uri: chosenVideo[chosenVideo.length-1].link, }} - usePoster={true} - posterSource={poster ? { - uri: poster - } : ''} useNativeControls + shouldPlay={true} resizeMode="contain" - isLooping - shouldPlay={false} onPlaybackStatusUpdate={status => setStatus(() => status)} onLoad={onLoad} />