refactor: Update SidepanelForm to handle drag and drop functionality
This commit is contained in:
parent
69ba305453
commit
dc5ccd43ca
@ -7,16 +7,11 @@ import { toBase64 } from "~/libs/to-base64"
|
||||
import { Checkbox, Dropdown, Image, Switch, Tooltip } from "antd"
|
||||
import { useWebUI } from "~/store/webui"
|
||||
import { defaultEmbeddingModelForRag } from "~/services/ollama"
|
||||
import {
|
||||
ImageIcon,
|
||||
MicIcon,
|
||||
StopCircleIcon,
|
||||
X,
|
||||
} from "lucide-react"
|
||||
import { ImageIcon, MicIcon, StopCircleIcon, X } from "lucide-react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { ModelSelect } from "@/components/Common/ModelSelect"
|
||||
import { useSpeechRecognition } from "@/hooks/useSpeechRecognition"
|
||||
import { PiGlobeX, PiGlobe} from "react-icons/pi";
|
||||
import { PiGlobeX, PiGlobe } from "react-icons/pi"
|
||||
|
||||
type Props = {
|
||||
dropedFile: File | undefined
|
||||
@ -152,6 +147,30 @@ export const SidepanelForm = ({ dropedFile }: Props) => {
|
||||
}
|
||||
})
|
||||
|
||||
React.useEffect(() => {
|
||||
const handleDrop = (e: DragEvent) => {
|
||||
e.preventDefault()
|
||||
if (e.dataTransfer?.items) {
|
||||
for (let i = 0; i < e.dataTransfer.items.length; i++) {
|
||||
if (e.dataTransfer.items[i].type === "text/plain") {
|
||||
e.dataTransfer.items[i].getAsString((text) => {
|
||||
form.setFieldValue("message", text)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const handleDragOver = (e: DragEvent) => {
|
||||
e.preventDefault()
|
||||
}
|
||||
textareaRef.current?.addEventListener("drop", handleDrop)
|
||||
textareaRef.current?.addEventListener("dragover", handleDragOver)
|
||||
return () => {
|
||||
textareaRef.current?.removeEventListener("drop", handleDrop)
|
||||
textareaRef.current?.removeEventListener("dragover", handleDragOver)
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className="px-3 pt-3 md:px-6 md:pt-6 bg-gray-50 dark:bg-[#262626] border rounded-t-xl border-black/10 dark:border-gray-600">
|
||||
<div
|
||||
|
Loading…
x
Reference in New Issue
Block a user