import * as React from "react"; import Dialog from "@mui/material/Dialog"; import DialogTitle from "@mui/material/DialogTitle"; import { memo, useContext } from "react"; import { inputProps } from "../interface/inputfieldProps"; import _ from "lodash"; import { JsonFormsDispatch, useJsonForms, withJsonFormsControlProps } from "@jsonforms/react"; import { DataContext } from "../context/Context"; import { Box } from "@mui/system"; import { IconButton } from "@mui/material"; import Grid from "@mui/material/Grid2"; import CloseButton from "../assets/PopupCloseButton"; const PopUp = memo(function (props: inputProps) { const { enabled, uischema, path, cells, schema, renderers } = props; const { dialog, updateDialog, theme,serviceProvider } = useContext(DataContext); const ctx = useJsonForms(); const onClose = (e) => { updateDialog(path); serviceProvider(ctx, uischema?.config?.main, { event: { ...e, _reactName: 'onClose' }, uischemaData, ...uischema?.config?.main?.additionalData, path, }); }; const uischemaData = uischema?.config?.main; const getElements = (UiSchemaElem: any, i: number) => { const scopeArray: string[] = UiSchemaElem.scope?.split("/"); const actualElemPath: string = scopeArray ? scopeArray[scopeArray.length - 1] : UiSchemaElem.scope; const widget = _.cloneDeep(UiSchemaElem); widget.config.main.additionalData = { ...widget?.config?.main?.additionalData, tableButtonPath: actualElemPath, }; return ( ); }; const Content = uischema?.elements?.map((e: any, i: number) => { return getElements(e, i); }); return ( onClose(e)} > {uischemaData.title} {/* closeButton()}> */} {Content} ); }); export default withJsonFormsControlProps(PopUp);