From 1cfd276fd075c053025749b52415b948e3359047 Mon Sep 17 00:00:00 2001 From: Eugen Neufeld Date: Fri, 3 Jun 2022 15:14:58 +0200 Subject: [PATCH] Pass all props in MaterialArrayLayoutRenderer Currently the MaterialArrayLayoutRenderer only hands over a selected list of props to the MaterialArrayLayout component it wraps. This is now refactored to hand over all incoming props. This fixes the issue that the 'config' prop was previously not handed over. Contributed on behalf of STMicroelectronics --- .../layouts/MaterialArrayLayoutRenderer.tsx | 28 ++-------------- .../renderers/MaterialArrayLayout.test.tsx | 33 ++++++++++++++++++- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/packages/material/src/layouts/MaterialArrayLayoutRenderer.tsx b/packages/material/src/layouts/MaterialArrayLayoutRenderer.tsx index ccb63388b..70f4e2e41 100644 --- a/packages/material/src/layouts/MaterialArrayLayoutRenderer.tsx +++ b/packages/material/src/layouts/MaterialArrayLayoutRenderer.tsx @@ -36,19 +36,8 @@ import { withJsonFormsArrayLayoutProps } from '@jsonforms/react'; export const MaterialArrayLayoutRenderer = ({ visible, - enabled, - id, - uischema, - schema, - label, - rootSchema, - renderers, - cells, - data, - path, - errors, - uischemas, - addItem + addItem, + ...props }: ArrayLayoutProps) => { const addItemCb = useCallback((p: string, value: any) => addItem(p, value), [ addItem @@ -56,20 +45,9 @@ export const MaterialArrayLayoutRenderer = ({ return ( ); diff --git a/packages/material/test/renderers/MaterialArrayLayout.test.tsx b/packages/material/test/renderers/MaterialArrayLayout.test.tsx index 35958da3a..362e1f2b7 100644 --- a/packages/material/test/renderers/MaterialArrayLayout.test.tsx +++ b/packages/material/test/renderers/MaterialArrayLayout.test.tsx @@ -333,6 +333,36 @@ describe('Material array layout', () => { .find({ 'aria-label': 'Move down' }).length ).toBe(1); }); + it('should render sort buttons if showSortButtons is true in config', () => { + wrapper = mount( + + ); + + expect(wrapper.find(MaterialArrayLayout).length).toBeTruthy(); + + // up button + expect( + wrapper + .find('Memo(ExpandPanelRendererComponent)') + .at(0) + .find('button') + .find({ 'aria-label': 'Move up' }).length + ).toBe(1); + // down button + expect( + wrapper + .find('Memo(ExpandPanelRendererComponent)') + .at(0) + .find('button') + .find({ 'aria-label': 'Move down' }).length + ).toBe(1); + }); it('should move item up if up button is presses', (done) => { const onChangeData: any = { data: undefined @@ -341,7 +371,8 @@ describe('Material array layout', () => { { onChangeData.data = data;