/* This file is part of the Notesnook project (https://notesnook.com/) * * Copyright (C) 2022 Streetwriters (Private) Limited * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ import React, { useEffect, useState } from "react"; import { View } from "react-native"; import ImageViewer from "react-native-image-zoom-viewer"; import { eSubscribeEvent, eUnSubscribeEvent } from "../../services/event-manager"; import BaseDialog from "../dialog/base-dialog"; import { IconButton } from "../ui/icon-button"; const ImagePreview = () => { const [visible, setVisible] = useState(false); const [image, setImage] = useState(""); useEffect(() => { eSubscribeEvent("ImagePreview", open); return () => { eUnSubscribeEvent("ImagePreview", open); }; }, []); const open = (image) => { setImage(image); setVisible(true); }; const close = () => { setImage(null); setVisible(false); }; return ( visible && ( <>} enableSwipeDown useNativeDriver onSwipeDown={close} saveToLocalByLongPress={false} renderHeader={() => ( { close(); }} /> )} imageUrls={[ { url: image } ]} /> ) ); }; export default ImagePreview;