import React, { FormEvent } from "react" import { useRecoilState, useRecoilValue } from "recoil" import emitter, { DREAM_BUTTON_MOUSE_ENTER, DREAM_BUTTON_MOUSE_LEAVE, EVENT_PROMPT, } from "@/lib/event" import { appState, isInpaintingState, propmtState } from "@/lib/store" import { Button } from "./ui/button" import { Input } from "./ui/input" const PromptInput = () => { const app = useRecoilValue(appState) const [prompt, setPrompt] = useRecoilState(propmtState) const isInpainting = useRecoilValue(isInpaintingState) const handleOnInput = (evt: FormEvent) => { evt.preventDefault() evt.stopPropagation() const target = evt.target as HTMLInputElement setPrompt(target.value) } const handleRepaintClick = () => { if (prompt.length !== 0 && !app.isInpainting) { emitter.emit(EVENT_PROMPT) } } const onKeyUp = (e: React.KeyboardEvent) => { if (e.key === "Enter" && !isInpainting) { handleRepaintClick() } } const onMouseEnter = () => { emitter.emit(DREAM_BUTTON_MOUSE_ENTER) } const onMouseLeave = () => { emitter.emit(DREAM_BUTTON_MOUSE_LEAVE) } return (
) } export default PromptInput