"use client"; import React from "react"; import { useState, useEffect } from "react"; import { Button, Input, Textarea, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, } from "@nextui-org/react"; import { RunType } from "@/types/run"; type Props = { isOpen: boolean; editingRun: RunType; onCancel: () => void; onSubmit: (name: string, detail: string) => void; }; export default function RunDialog({ isOpen, editingRun, onCancel, onSubmit, }: Props) { const [runName, setRunName] = useState({ text: editingRun ? editingRun.name : "", isValid: false, errorMessage: "", }); const [runDetail, setRunDetail] = useState({ text: editingRun ? editingRun.detail : "", isValid: false, errorMessage: "", }); useEffect(() => { if (editingRun) { setRunName({ ...runName, text: editingRun.name, }); setRunDetail({ ...runDetail, text: editingRun.detail ? editingRun.detail : "", }); } else { setRunName({ ...runName, text: "", }); setRunDetail({ ...runDetail, text: "", }); } }, [editingRun]); const clear = () => { setRunName({ isValid: false, text: "", errorMessage: "", }); setRunDetail({ isValid: false, text: "", errorMessage: "", }); }; const validate = () => { if (!runName.text) { setRunName({ text: "", isValid: false, errorMessage: "Please enter run name", }); return; } onSubmit(runName.text, runDetail.text); clear(); }; return ( { onCancel(); }} > Run { setRunName({ ...runName, text: e.target.value, }); }} />