import React, { useEffect, useState } from 'react' import { Button, Image, Modal, StyleSheet, Pressable, View } from 'react-native' import ImageViewer from 'react-native-image-zoom-viewer' export interface Props { media_attachments: Mastodon.Attachment[] sensitive: boolean width: number } const AttachmentImage: React.FC = ({ media_attachments, sensitive, width }) => { const [mediaSensitive, setMediaSensitive] = useState(sensitive) const [imageModalVisible, setImageModalVisible] = useState(false) const [imageModalIndex, setImageModalIndex] = useState(0) useEffect(() => { if (sensitive && mediaSensitive === false) { setTimeout(() => { setMediaSensitive(true) }, 10000) } }, [mediaSensitive]) let images: { url: string; width: number; height: number }[] = [] const imagesNode = media_attachments.map((m, i) => { images.push({ url: m.url, width: m.meta.original.width, height: m.meta.original.height }) return ( { setImageModalIndex(i) setImageModalVisible(true) }} > ) }) return ( <> {imagesNode} {mediaSensitive && (