import React, { useRef, useState } from "react"; import { IconButton, Box, Button, Image, Flex, Label, Input } from "theme-ui"; import Modal from "./Modal"; const defaultMapSize = 22; function AddMapButton({ handleMapChange }) { const fileInputRef = useRef(); function openImageDialog() { if (fileInputRef.current) { fileInputRef.current.click(); } } const [isAddModalOpen, setIsAddModalOpen] = useState(false); function openModal() { setIsAddModalOpen(true); } function closeModal() { setIsAddModalOpen(false); } const mapDataRef = useRef(null); const [mapSource, setImageSource] = useState(null); function handleImageUpload(event) { mapDataRef.current = { file: event.target.files[0], rows, columns }; setImageSource(URL.createObjectURL(mapDataRef.current.file)); } function handleDone() { if (mapDataRef.current && mapSource) { handleMapChange(mapDataRef.current, mapSource); } closeModal(); } const [rows, setRows] = useState(defaultMapSize); const [columns, setColumns] = useState(defaultMapSize); return ( <> { e.preventDefault(); handleDone(); }} > setRows(e.target.value)} /> setColumns(e.target.value)} /> {mapSource ? ( ) : ( )} ); } export default AddMapButton;