import React, { memo, useState } from 'react'; import Button from '@mui/material/Button'; import { useContext } from 'react'; import { DataContext } from '../context/Context'; import { ButtonIcon } from '../common/ButtonIcon'; import { useJsonForms } from '@jsonforms/react'; import { Box, CircularProgress, Dialog, DialogContent, DialogContentText, Stack, Tooltip, } from '@mui/material'; import ComponentWrapper from '../common/ComponentWrapper'; import { getFieldName } from '../permissions/getFieldName'; import { green } from '@mui/material/colors'; import { inputProps } from '../interface/inputfieldProps'; import LoaderInfo from '../common/LoaderInfo'; import { getComponentProps } from '../common/getComponentProps'; import _ from 'lodash'; export const ImpaktAppsButton = memo(function ({ uischema, path, data, schema, rootSchema, }: inputProps) { const uischemaData = uischema?.config?.main; const { serviceProvider, pageName, permissions, theme, additionalIcons, loading, setLoading, } = useContext(DataContext); const ctx = useJsonForms(); const dynamicStyle = React.useMemo(() => { return serviceProvider( ctx, { onClick: uischema.config?.main?.styleFunction || 'getStyle', }, { event: { _reactName: 'onClick' }, path, ...uischemaData.additionalData, }, ); }, [data, path]); const componentStyle = { ...uischema.config?.style, ...dynamicStyle }; const fieldName = getFieldName(path); const callServiceProvider = (event: any) => { serviceProvider(ctx, uischemaData, { event, path, ...uischemaData.additionalData, setLoading, }); }; return ( <> ); });