import { useContext, useGlobal } from "reactn"; import { ScrollView, Text, View, Image, Pressable } from "react-native"; import firebase, { arrayRemove } from "../config/firebase"; import { getFileNameFromURL } from "../helpers"; import { Fonts, Palette, Style, gutters } from "../styles"; import { icons } from "../assets"; import { WebViewContext } from "../providers/WebViewProvider"; import alert from "./Alert"; export default ({ files = [], setFiles = null, documentID = null, collectionRef = null, containerStyle = {}, }) => { const [, setIsLoading] = useGlobal("_isLoading"); const [, setTooltip] = useGlobal("_tooltip"); const { setWebViewUrl } = useContext(WebViewContext); const onDeleteFile = async (url) => { alert( "Êtes-vous sûr ?", "Cette action est irréversible.", [ { text: "Annuler", style: "cancel", }, { text: "Confirmer", onPress: async () => { try { setIsLoading(true); setFiles( files.filter((file) => file !== url && file.uri !== url) ); await firebase.storage().refFromURL(url).delete(); if (documentID) { await collectionRef.doc(documentID).update({ files: arrayRemove(url), }); } setTooltip({ type: "success", text: "Fichier supprimé avec succès !", }); } catch (error) { console.log(error); } finally { setIsLoading(false); } }, style: "confirm", }, ], { cancelable: false } ); }; if (files.length === 0) { return null; } return ( {files.map((file, index) => { const uri = file.uri || file; return ( 1 ? 250 : 400, }, ]} > 1 ? 100 : 200, marginRight: 10, }, })} > {getFileNameFromURL({ url: uri })} {setFiles && ( onDeleteFile(uri)}> )} setWebViewUrl(uri)}> ); })} ); };