diff --git a/src/Components/Modals/InsertImageModal/InsertImageModal.tsx b/src/Components/Modals/InsertImageModal/InsertImageModal.tsx index d3b09d0..4a1205d 100644 --- a/src/Components/Modals/InsertImageModal/InsertImageModal.tsx +++ b/src/Components/Modals/InsertImageModal/InsertImageModal.tsx @@ -1,13 +1,14 @@ -import React, { FormEvent, useState } from 'react' +import React, { FormEvent, useRef, useState } from 'react' import { ModalCard, modalCardVariants } from 'src/Components/Modals/ModalsContainer/ModalsContainer' import { motion } from 'framer-motion' import { IoClose } from 'react-icons/io5' import Button from 'src/Components/Button/Button' -import { useAppDispatch } from 'src/utils/hooks' +import { useAppDispatch, useIsDraggingOnElement } from 'src/utils/hooks' import { PayloadAction } from '@reduxjs/toolkit' import { RotatingLines } from 'react-loader-spinner' import { FaExchangeAlt, FaImage } from 'react-icons/fa' import SingleImageUploadInput, { ImageType } from 'src/Components/Inputs/FilesInputs/SingleImageUploadInput/SingleImageUploadInput' +import { AiOutlineCloudUpload } from 'react-icons/ai' interface Props extends ModalCard { callbackAction: PayloadAction<{ src: string, alt?: string }> @@ -19,6 +20,9 @@ export default function InsertImageModal({ onClose, direction, callbackAction, . const [altInput, setAltInput] = useState("") const dispatch = useAppDispatch(); + const dropAreaRef = useRef(null!) + const isDragging = useIsDraggingOnElement({ ref: dropAreaRef }); + const handleSubmit = (e: FormEvent) => { e.preventDefault() console.log(uploadedImage?.url); @@ -85,7 +89,7 @@ export default function InsertImageModal({ onClose, direction, callbackAction, . value={uploadedImage} onChange={setUploadedImage} wrapperClass='h-full mt-32' - render={({ img, isUploading }) =>
+ render={({ img, isUploading, isDraggingOnWindow }) =>
{img && <> {!isUploading && @@ -113,6 +117,34 @@ export default function InsertImageModal({ onClose, direction, callbackAction, . />
} + {isDraggingOnWindow && +
+ + + +
+ Drop here to upload +
+
+ }
} />