import { EditorProperties } from "@iplusplus/y-model" import { useState } from "react" import { Button, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material" import { produce } from "immer" import { getPropertyGridValues } from "./types" import React from "react" import { PropertyGrid } from "./PropertyGrid" export const PropertyGridDialog = React.memo(function ({ open, onClose, data, props, title, disableEditFields, }: { open: boolean onClose: (value?: Record) => void data: Record props: EditorProperties disableEditFields?: string[] title?: string }) { const [currentData, setCurrentData] = useState(data) const [disableSubmit, setDisableSubmit] = useState(false) const [isSubmiting, setIsSubmiting] = useState(false) const handleCancel = () => { onClose() } const handleOk = () => { setIsSubmiting(true) onClose({ ...currentData }) // setIsSubmiting(false); } const onEditStateNotify = (isInEdit: boolean) => { setDisableSubmit(isInEdit) } const values = getPropertyGridValues(currentData, props) return ( {title || "编辑清单属性"} { const newData = produce(currentData, draft => { draft[prop.name] = value }) setCurrentData(newData) }} onEditStateNotify={onEditStateNotify} /> ) })