From 519e7a347acb95d74cd525ea78e367f32fe295f2 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Thu, 11 Feb 2021 08:36:47 -0800 Subject: [PATCH] Added file delete after upload. --- babel-translations.babel | 21 ++++++++ .../screen-media-browser.component.jsx | 49 ++++++++++--------- .../upload-progress.component.jsx | 1 + translations/en-US/common.json | 1 + translations/es-MX/common.json | 1 + translations/fr-CA/common.json | 1 + 6 files changed, 52 insertions(+), 22 deletions(-) diff --git a/babel-translations.babel b/babel-translations.babel index 9a19633..f97c667 100644 --- a/babel-translations.babel +++ b/babel-translations.babel @@ -1021,6 +1021,27 @@ actions + + refresh + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + upload false diff --git a/components/screen-media-browser/screen-media-browser.component.jsx b/components/screen-media-browser/screen-media-browser.component.jsx index a451cec..4157633 100644 --- a/components/screen-media-browser/screen-media-browser.component.jsx +++ b/components/screen-media-browser/screen-media-browser.component.jsx @@ -1,7 +1,9 @@ import { Ionicons } from "@expo/vector-icons"; +import { useNavigation } from "@react-navigation/native"; import { AssetsSelector } from "expo-images-picker"; +import * as MediaLibrary from "expo-media-library"; import _ from "lodash"; -import React, { useState } from "react"; +import React, { useCallback, useState } from "react"; import { useTranslation } from "react-i18next"; import { StyleSheet, Text, View } from "react-native"; import { connect } from "react-redux"; @@ -18,7 +20,6 @@ import { handleUpload } from "../../util/document-upload.utility"; import CameraSelectJob from "../camera-select-job/camera-select-job.component"; import UploadDeleteSwitch from "../upload-delete-switch/upload-delete-switch.component"; import UploadProgress from "../upload-progress/upload-progress.component"; -import * as FileSystem from "expo-file-system"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, @@ -35,19 +36,25 @@ export function ImageBrowserScreen({ deleteAfterUpload, }) { const { t } = useTranslation(); + const navigation = useNavigation(); const [uploads, setUploads] = useState({}); - function handleOnProgress(uri, percent) { setUploads((prevUploads) => ({ ...prevUploads, [uri]: { percent } })); } - function handleOnSuccess(uri) { + + const [tick, setTick] = useState(0); + const forceRerender = useCallback(() => { + setTick((tick) => tick + 1); + }, []); + async function handleOnSuccess(uri, id) { console.log("onSucces!", uri); - setTimeout(async function () { - setUploads((prevUploads) => _.omit(prevUploads, uri)); - if (deleteAfterUpload) { - await FileSystem.deleteAsync(uri); - } - }, 1000); + + if (deleteAfterUpload) { + const result = await MediaLibrary.deleteAssetsAsync([id]); + console.log("result :>> ", result); + } + console.log("Omitting", uri); + setUploads((prevUploads) => _.omit(prevUploads, uri)); } const onDone = async (data) => { @@ -61,7 +68,7 @@ export function ImageBrowserScreen({ uri: p.uri, onError: handleOnError, onProgress: ({ percent }) => handleOnProgress(uri, percent), - onSuccess: () => handleOnSuccess(uri), + onSuccess: () => handleOnSuccess(uri, p.id), }, { bodyshop: bodyshop, @@ -72,7 +79,9 @@ export function ImageBrowserScreen({ ) ); }); - Promise.all(actions); + await Promise.all(actions); + forceRerender(); + //navigation.goBack(); }; return ( @@ -81,7 +90,8 @@ export function ImageBrowserScreen({ {selectedCameraJobId && ( { - console.log("Back Function", props); + backFunction: () => { + forceRerender(); }, doneFunction: onDone, }, noAssets: { Component: function NoAsset() { - return ( - - Looks like nothing here - - ); + return {`Looks like there's nothing here...`}; }, }, }} /> )} - ); diff --git a/components/upload-progress/upload-progress.component.jsx b/components/upload-progress/upload-progress.component.jsx index 46be88a..b56853c 100644 --- a/components/upload-progress/upload-progress.component.jsx +++ b/components/upload-progress/upload-progress.component.jsx @@ -3,6 +3,7 @@ import { ScrollView, StyleSheet, Text, View } from "react-native"; import * as Progress from "react-native-progress"; export default function UploadProgress({ uploads }) { + console.log("uploads :>> ", uploads); return ( diff --git a/translations/en-US/common.json b/translations/en-US/common.json index 1b95f6c..36ec278 100644 --- a/translations/en-US/common.json +++ b/translations/en-US/common.json @@ -74,6 +74,7 @@ }, "mediabrowser": { "actions": { + "refresh": "Refresh", "upload": "Upload" }, "labels": { diff --git a/translations/es-MX/common.json b/translations/es-MX/common.json index 459616c..fe7bda2 100644 --- a/translations/es-MX/common.json +++ b/translations/es-MX/common.json @@ -74,6 +74,7 @@ }, "mediabrowser": { "actions": { + "refresh": "", "upload": "" }, "labels": { diff --git a/translations/fr-CA/common.json b/translations/fr-CA/common.json index e67a01e..cc97a60 100644 --- a/translations/fr-CA/common.json +++ b/translations/fr-CA/common.json @@ -74,6 +74,7 @@ }, "mediabrowser": { "actions": { + "refresh": "", "upload": "" }, "labels": {