diff --git a/components/ImageUploader.tsx b/components/ImageUploader.tsx index 7dccb69ed1..aa6d89ad5f 100644 --- a/components/ImageUploader.tsx +++ b/components/ImageUploader.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useState } from "react"; +import { FormEvent, useCallback, useEffect, useState } from "react"; import Cropper from "react-easy-crop"; import { Area, getCroppedImg } from "@lib/cropImage"; @@ -17,6 +17,10 @@ type ImageUploaderProps = { target: string; }; +interface FileEvent extends FormEvent { + target: EventTarget & T; +} + // This is separate to prevent loading the component until file upload function CropContainer({ onCropComplete, @@ -29,13 +33,13 @@ function CropContainer({ const [crop, setCrop] = useState({ x: 0, y: 0 }); const [zoom, setZoom] = useState(1); - const handleZoomSliderChange = ([value]) => { + const handleZoomSliderChange = (value: number) => { value < 1 ? setZoom(1) : setZoom(value); }; return ( -
-
+
+
{ + const onInputFile = (e: FileEvent) => { + if (!e.target.files?.length) { + return; + } setFile(e.target.files[0]); }; @@ -110,33 +117,33 @@ export default function ImageUploader({
-
+
-
-
+
{!result && ( -
+
{!imageSrc && ( -

+

{t("no_target", { target })}

)} - {imageSrc && {target}} + {imageSrc && {target}}
)} - {result && } -