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 (
);
});
export default withJsonFormsControlProps(PopUp);