import { memo, useEffect, useState } from "react" import { GetUserInputValueFunction, userInteractionInternals } from "./userInteraction" import { DraggableDialog } from "../ui-utils" import { TextField } from "@mui/material" type UserInputValueInfo2 = { title?: string isPassword?: boolean defualtValue?: string multiline ?:boolean resolve: (data: string | undefined) => void } const UserInputValueDialog = memo(() => { const [userInputValueInfo, setUserInputValueInfo] = useState() const [value, setValue] = useState("") useEffect(() => { const getUserInputValue: GetUserInputValueFunction = info => { return new Promise(resolve => { setUserInputValueInfo({ ...info, resolve }) setValue(info.defaultValue || "") }) } userInteractionInternals.getUserInputValue = getUserInputValue return () => (userInteractionInternals.getUserInputValue = undefined) }, [setUserInputValueInfo, setValue]) if (!userInputValueInfo) return null return ( setUserInputValueInfo(undefined)} onOk={() => { userInputValueInfo.resolve(value) setUserInputValueInfo(undefined) }} > { setValue(e.target.value) }} /> ) }) export default UserInputValueDialog