From 4384c7995992c7408c04dc0ace4bd2da431f3b2f Mon Sep 17 00:00:00 2001 From: Eugen Neufeld Date: Tue, 4 Jun 2024 22:18:00 +0200 Subject: [PATCH] review comments --- .../MaterialListWithDetailRenderer.tsx | 6 ++-- .../src/complex/MaterialTableControl.tsx | 10 ++++++- .../src/layouts/ExpandPanelRenderer.tsx | 30 ++++++++++++++----- .../src/layouts/MaterialArrayLayout.tsx | 6 ++-- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/packages/material-renderers/src/additional/MaterialListWithDetailRenderer.tsx b/packages/material-renderers/src/additional/MaterialListWithDetailRenderer.tsx index ac5d58faf..ba943d3f7 100644 --- a/packages/material-renderers/src/additional/MaterialListWithDetailRenderer.tsx +++ b/packages/material-renderers/src/additional/MaterialListWithDetailRenderer.tsx @@ -102,6 +102,8 @@ export const MaterialListWithDetailRenderer = ({ [uischemas, schema, uischema.scope, path, uischema, rootSchema] ); const appliedUiSchemaOptions = merge({}, config, uischema.options); + const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd; + const doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove; React.useEffect(() => { setSelectedIndex(undefined); @@ -126,7 +128,7 @@ export const MaterialListWithDetailRenderer = ({ enabled={enabled} addItem={addItem} createDefault={handleCreateDefaultValue} - disableAdd={disableAdd} + disableAdd={doDisableAdd} /> @@ -145,7 +147,7 @@ export const MaterialListWithDetailRenderer = ({ uischema={foundUISchema} childLabelProp={appliedUiSchemaOptions.elementLabelProp} translations={translations} - disableRemove={disableRemove} + disableRemove={doDisableRemove} /> )) ) : ( diff --git a/packages/material-renderers/src/complex/MaterialTableControl.tsx b/packages/material-renderers/src/complex/MaterialTableControl.tsx index 16cfdf3ba..2675bc1f0 100644 --- a/packages/material-renderers/src/complex/MaterialTableControl.tsx +++ b/packages/material-renderers/src/complex/MaterialTableControl.tsx @@ -472,8 +472,15 @@ export class MaterialTableControl extends React.Component< cells, translations, disableAdd, + disableRemove, + config, } = this.props; + const appliedUiSchemaOptions = merge({}, config, uischema.options); + const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd; + const doDisableRemove = + disableRemove || appliedUiSchemaOptions.disableRemove; + const controlElement = uischema as ControlElement; const isObjectSchema = schema.type === 'object'; const headerCells: any = isObjectSchema @@ -499,7 +506,7 @@ export class MaterialTableControl extends React.Component< rootSchema={rootSchema} enabled={enabled} translations={translations} - disableAdd={disableAdd} + disableAdd={doDisableAdd} /> {isObjectSchema && ( @@ -513,6 +520,7 @@ export class MaterialTableControl extends React.Component< openDeleteDialog={openDeleteDialog} translations={translations} {...this.props} + disableRemove={doDisableRemove} /> diff --git a/packages/material-renderers/src/layouts/ExpandPanelRenderer.tsx b/packages/material-renderers/src/layouts/ExpandPanelRenderer.tsx index 4a89db034..41943d3df 100644 --- a/packages/material-renderers/src/layouts/ExpandPanelRenderer.tsx +++ b/packages/material-renderers/src/layouts/ExpandPanelRenderer.tsx @@ -286,10 +286,17 @@ export const ctxDispatchToExpandPanelProps: ( (event: any): void => { event.stopPropagation(); dispatch( - update(path, (array) => { - moveUp(array, toMove); - return array; - }) + update( + path, + (array) => { + moveUp(array, toMove); + return array; + }, + { + type: 'MOVE', + moves: [{ from: toMove, to: toMove - 1 }], + } as UpdateArrayContext + ) ); }, [dispatch] @@ -299,10 +306,17 @@ export const ctxDispatchToExpandPanelProps: ( (event: any): void => { event.stopPropagation(); dispatch( - update(path, (array) => { - moveDown(array, toMove); - return array; - }) + update( + path, + (array) => { + moveDown(array, toMove); + return array; + }, + { + type: 'MOVE', + moves: [{ from: toMove, to: toMove + 1 }], + } as UpdateArrayContext + ) ); }, [dispatch] diff --git a/packages/material-renderers/src/layouts/MaterialArrayLayout.tsx b/packages/material-renderers/src/layouts/MaterialArrayLayout.tsx index 198fc4d59..6cec1d884 100644 --- a/packages/material-renderers/src/layouts/MaterialArrayLayout.tsx +++ b/packages/material-renderers/src/layouts/MaterialArrayLayout.tsx @@ -71,6 +71,8 @@ const MaterialArrayLayoutComponent = (props: ArrayLayoutProps) => { disableRemove, } = props; const appliedUiSchemaOptions = merge({}, config, props.uischema.options); + const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd; + const doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove; return (
@@ -87,7 +89,7 @@ const MaterialArrayLayoutComponent = (props: ArrayLayoutProps) => { enabled={enabled} addItem={addItem} createDefault={innerCreateDefaultValue} - disableAdd={disableAdd} + disableAdd={doDisableAdd} />
{data > 0 ? ( @@ -111,7 +113,7 @@ const MaterialArrayLayoutComponent = (props: ArrayLayoutProps) => { childLabelProp={appliedUiSchemaOptions.elementLabelProp} uischemas={uischemas} translations={translations} - disableRemove={disableRemove} + disableRemove={doDisableRemove} /> ); })