import React, { FormEventHandler } from "react"; interface Props { onImageSubmit: (image: Uint8ClampedArray) => void; } function ImageInput({ onImageSubmit }: Props) { let fileReader: FileReader; const fileInputRef = React.useRef(null); const handleSubmit: FormEventHandler = (e) => { e.preventDefault(); if ( !fileInputRef.current || !fileInputRef.current.files || fileInputRef.current.files.length === 0 ) { return; } fileReader = new FileReader(); fileReader.onloadend = handleFileRead; fileReader.readAsArrayBuffer(fileInputRef.current.files[0]); }; const handleFileRead: EventListener = (e) => { if (fileReader.result) { const image = new Uint8ClampedArray(fileReader.result as ArrayBuffer); onImageSubmit(image); } }; return (
{/* */}
); } export default ImageInput;