From 1d4fcb303ba0d22ac9633b97765779d00874f7d0 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Thu, 10 Jun 2021 13:51:59 -0700 Subject: [PATCH] IO-1165 Add video playback support. --- .../job-documents/job-documents.component.jsx | 46 +++++------------- .../media-cache-overlay.component.jsx | 47 +++++++++++++++++-- .../upload-progress.component.jsx | 7 +-- graphql/jobs.queries.js | 1 + 4 files changed, 59 insertions(+), 42 deletions(-) diff --git a/components/job-documents/job-documents.component.jsx b/components/job-documents/job-documents.component.jsx index 9928b7f..e5946c7 100644 --- a/components/job-documents/job-documents.component.jsx +++ b/components/job-documents/job-documents.component.jsx @@ -1,4 +1,3 @@ -import { Video } from "expo-av"; import React, { useMemo, useState } from "react"; import { FlatList, @@ -11,15 +10,8 @@ import { import env from "../../env"; import { DetermineFileType } from "../../util/document-upload.utility"; import MediaCacheOverlay from "../media-cache-overlay/media-cache-overlay.component"; - export default function JobDocumentsComponent({ job, loading, refetch }) { const [previewVisible, setPreviewVisible] = useState(false); - const [videoUri, setVideoUri] = useState(null); - const [status, setStatus] = React.useState({}); - console.log( - "🚀 ~ file: job-documents.component.jsx ~ line 19 ~ status", - status - ); const [imgIndex, setImgIndex] = useState(0); const onRefresh = async () => { @@ -30,9 +22,12 @@ export default function JobDocumentsComponent({ job, loading, refetch }) { () => job.documents.map((doc) => { return { - source: { - uri: GenerateSrcUrl(doc), - }, + videoUrl: + DetermineFileType(doc.type) === "video" && GenerateSrcUrl(doc), + source: + DetermineFileType(doc.type) === "video" + ? { uri: GenerateThumbUrl(doc) } + : { uri: GenerateSrcUrl(doc) }, }; }), [job.documents] @@ -50,16 +45,10 @@ export default function JobDocumentsComponent({ job, loading, refetch }) { keyExtractor={(item) => item.id} renderItem={(object) => ( { - if (DetermineFileType(object.item.type) === "image") { - //If image - setImgIndex(object.index); - setPreviewVisible(true); - } else { - //If Video - setVideoUri(GenerateSrcUrl(object.item)); - } + style={{ flex: 1 / 4, aspectRatio: 1, margin: 4 }} + onPress={async () => { + setImgIndex(object.index); + setPreviewVisible(true); }} > {job.documents.length} -