From e5fef3dbcf50ada571894432b78b1dc4f0c0bca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B8egh?= Date: Fri, 22 Nov 2024 11:47:46 +0100 Subject: [PATCH] feat(Forms): add `variant="filled"` to Iterate.EditContainer and Iterate.ViewContainer --- .../forms/Iterate/Array/Examples.tsx | 134 ++++++++- .../extensions/forms/Iterate/Array/demos.mdx | 7 + .../forms/Iterate/EditContainer/info.mdx | 5 +- .../EditContainer/EditContainerDocs.ts | 2 +- .../__tests__/EditAndViewContainer.test.tsx | 26 +- .../ViewContainer/ViewContainerDocs.ts | 2 +- .../Section/containers/SectionContainer.tsx | 3 +- .../Form/Section/style/dnb-form-section.scss | 19 +- .../themes/dnb-section-theme-sbanken.scss | 7 + .../style/themes/dnb-section-theme-ui.scss | 8 + .../forms/Form/Section/style/themes/ui.js | 6 + .../forms/Iterate/Array/ArrayItemArea.tsx | 13 +- .../Iterate/Array/ArrayItemAreaContext.ts | 3 + .../Array/__tests__/Array.screenshot.test.ts | 30 +- ...rray-have-to-match-edit-container.snap.png | Bin 10809 -> 13396 bytes ...ve-to-match-filled-edit-container.snap.png | Bin 0 -> 24127 bytes ...ve-to-match-filled-view-container.snap.png | Bin 0 -> 11951 bytes .../Iterate/EditContainer/EditContainer.tsx | 11 +- .../EditContainer/EditContainerDocs.ts | 4 +- .../__tests__/EditAndViewContainer.test.tsx | 275 +++++++++++++++--- .../PushContainer/PushContainerDocs.ts | 2 +- .../forms/Iterate/Toolbar/Toolbar.tsx | 11 +- .../Iterate/ViewContainer/RemoveButton.tsx | 8 +- .../Iterate/ViewContainer/ViewContainer.tsx | 10 +- .../ViewContainer/ViewContainerDocs.ts | 4 +- .../extensions/forms/Iterate/hooks/useItem.ts | 15 +- .../theme-sbanken/sbanken-theme-forms.scss | 1 + .../style/themes/theme-ui/ui-theme-forms.scss | 1 + 28 files changed, 527 insertions(+), 80 deletions(-) create mode 100644 packages/dnb-eufemia/src/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss create mode 100644 packages/dnb-eufemia/src/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss create mode 100644 packages/dnb-eufemia/src/extensions/forms/Form/Section/style/themes/ui.js create mode 100644 packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-filled-edit-container.snap.png create mode 100644 packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-filled-view-container.snap.png diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/Examples.tsx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/Examples.tsx index 1c947014598..0af16769b22 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/Examples.tsx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/Examples.tsx @@ -1,5 +1,5 @@ import ComponentBox from '../../../../../../shared/tags/ComponentBox' -import { Flex, Table, Td, Th, Tr } from '@dnb/eufemia/src' +import { Avatar, Flex, Table, Td, Th, Tr } from '@dnb/eufemia/src' import { Iterate, Field, @@ -565,3 +565,135 @@ export const WithArrayValidator = () => { ) } + +export const FilledViewAndEditContainer = () => { + return ( + + {() => { + const MyEditItemForm = () => { + return ( + + + + + ) + } + + const EditItemToolbar = () => { + return ( + + + + + + + + + + ) + } + + const MyEditItem = (props) => { + return ( + } + {...props} + > + + + + ) + } + + const CreateNewEntry = () => { + return ( + + } + showOpenButtonWhen={(list) => list.length > 0} + > + + + ) + } + + const ValueWithAvatar = () => { + const { value } = Iterate.useItem() + const firstName = String(value['firstName'] || '') + return ( + + + {firstName.substring(0, 1).toUpperCase()} + + + + ) + } + + const MyViewItem = () => { + return ( + } + > + + + + + + + + + ) + } + + return ( + console.log('onSubmit', data)} + onSubmitRequest={() => console.log('onSubmitRequest')} + > + + Accounts + + + + + + + + + + + + + ) + }} + + ) +} diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/demos.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/demos.mdx index 7b8e20894be..42d6de4bd4c 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/demos.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/Array/demos.mdx @@ -49,6 +49,13 @@ With an optional `title` and [Iterate.Toolbar](/uilib/extensions/forms/Iterate/T +### Customize the view and edit containers + +- Using `variant="filled"` will render the [ViewContainer](/uilib/extensions/forms/Iterate/ViewContainer) and [EditContainer](/uilib/extensions/forms/Iterate/EditContainer) with a background color. +- Using `toolbarVariant="custom"` will render the [Toolbar](/uilib/extensions/forms/Iterate/Toolbar/) without any spacing so you can customize it to your needs. + + + ### Initially open diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/EditContainer/info.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/EditContainer/info.mdx index 9dc74e1820f..d761fac1342 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/EditContainer/info.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/Iterate/EditContainer/info.mdx @@ -55,8 +55,9 @@ You can get the internal item object by using the `Iterate.useItem` hook. import { Iterate, Field, Value } from '@dnb/eufemia/extensions/forms' const MyItemForm = () => { - const item = Iterate.useItem() - console.log('index:', item.index) + // TypeScript type inference + const item = Iterate.useItem<{ foo: string }>() + console.log('My item:', item.index, item.value.foo) return } diff --git a/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/EditContainerDocs.ts b/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/EditContainerDocs.ts index bb5c00b69d6..b561bae98e9 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/EditContainerDocs.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/EditContainerDocs.ts @@ -7,7 +7,7 @@ export const EditContainerProperties: PropertiesTableProps = { status: 'optional', }, variant: { - doc: 'Defines the variant of the container. Can be `outline` or `basic`. Defaults to `outline`.', + doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.', type: 'string', status: 'optional', }, diff --git a/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/__tests__/EditAndViewContainer.test.tsx b/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/__tests__/EditAndViewContainer.test.tsx index ff239574eb0..16c689f6f39 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/__tests__/EditAndViewContainer.test.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Form/Section/EditContainer/__tests__/EditAndViewContainer.test.tsx @@ -559,7 +559,7 @@ describe('EditContainer and ViewContainer', () => { ) }) - it('should set variant to "basic" when variant is set to "basic"', async () => { + it('should set correct class for variant "basic"', () => { render( @@ -579,6 +579,30 @@ describe('EditContainer and ViewContainer', () => { expect(editBlock).toHaveClass('dnb-forms-section-block--variant-basic') }) + it('should set correct class for variant "filled"', () => { + render( + + + View Content + + + + Edit Content + + + ) + + const [viewBlock, editBlock] = Array.from( + document.querySelectorAll('.dnb-forms-section-block') + ) + expect(viewBlock).toHaveClass( + 'dnb-forms-section-block--variant-filled' + ) + expect(editBlock).toHaveClass( + 'dnb-forms-section-block--variant-filled' + ) + }) + it('should validate on done button click', async () => { render( diff --git a/packages/dnb-eufemia/src/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.ts b/packages/dnb-eufemia/src/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.ts index 94d7f6b53ba..9aed0813273 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.ts @@ -7,7 +7,7 @@ export const ViewContainerProperties: PropertiesTableProps = { status: 'optional', }, variant: { - doc: 'Defines the variant of the container. Can be `outline` or `basic`. Defaults to `outline`.', + doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.', type: 'string', status: 'optional', }, diff --git a/packages/dnb-eufemia/src/extensions/forms/Form/Section/containers/SectionContainer.tsx b/packages/dnb-eufemia/src/extensions/forms/Form/Section/containers/SectionContainer.tsx index b2c52927db5..5c05ab3fabf 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Form/Section/containers/SectionContainer.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Form/Section/containers/SectionContainer.tsx @@ -19,7 +19,7 @@ export type SectionContainerProps = { * Defines the variant of the ViewContainer or EditContainer. Can be `outline`. * Defaults to `outline`. */ - variant?: 'outline' | 'basic' + variant?: 'outline' | 'basic' | 'filled' } export type Props = { @@ -126,6 +126,7 @@ function SectionContainer(props: Props & FlexContainerProps) { + void + variant?: ArrayItemAreaProps['variant'] + toolbarVariant?: ArrayItemAreaProps['toolbarVariant'] } const ArrayItemAreaContext = createContext(null) diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/Array.screenshot.test.ts b/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/Array.screenshot.test.ts index a4583a99dcc..90370890ba3 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/Array.screenshot.test.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/Array.screenshot.test.ts @@ -25,6 +25,30 @@ describe('Iterate.Array', () => { expect(screenshot).toMatchImageSnapshot() }) + it('have to match filled view container', async () => { + const screenshot = await makeScreenshot({ + url, + selector: + '[data-visual-test="filled-view-and-edit-container"] .dnb-forms-section-view-block', + }) + + expect(screenshot).toMatchImageSnapshot() + }) + + it('have to match filled edit container', async () => { + const screenshot = await makeScreenshot({ + url, + selector: '[data-visual-test="filled-view-and-edit-container"]', + screenshotSelector: + '[data-visual-test="filled-view-and-edit-container"] .dnb-forms-section-edit-block', + simulate: 'click', + simulateSelector: + '[data-visual-test="filled-view-and-edit-container"] button', + recalculateHeightAfterSimulate: true, + }) + expect(screenshot).toMatchImageSnapshot() + }) + it('have to match view container', async () => { const screenshot = await makeScreenshot({ url, @@ -38,11 +62,13 @@ describe('Iterate.Array', () => { const screenshot = await makeScreenshot({ url, selector: '[data-visual-test="view-and-edit-container"]', - screenshotSelector: '.dnb-forms-section-edit-block', + screenshotSelector: + '[data-visual-test="view-and-edit-container"] .dnb-forms-section-edit-block', waitAfterSimulate: 100, simulate: 'click', simulateSelector: - '[data-visual-test="view-and-edit-container"] .dnb-forms-iterate-open-button', + '[data-visual-test="view-and-edit-container"] button', + recalculateHeightAfterSimulate: true, }) expect(screenshot).toMatchImageSnapshot() }) diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-edit-container.snap.png b/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-edit-container.snap.png index 673fd378ebcd74e2abf35773e4917186835ca921..9262ce30446d0d65b9a523cc10dc50931c2f409c 100644 GIT binary patch literal 13396 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 literal 10809 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 DXYQ&e diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-filled-edit-container.snap.png b/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-filled-edit-container.snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d778947cab9d5a6bf752ab51df6322bd8535d3c7 GIT binary patch literal 24127 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 literal 0 HcmV?d00001 diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-filled-view-container.snap.png b/packages/dnb-eufemia/src/extensions/forms/Iterate/Array/__tests__/__image_snapshots__/iteratearray-have-to-match-filled-view-container.snap.png new file mode 100644 index 0000000000000000000000000000000000000000..41c66d6bb7d065a84a8601e5a70d1a3c815cf6ca GIT binary patch literal 11951 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 - ) + )) } + toolbarVariant={toolbarVariant} {...rest} > {children} @@ -85,6 +88,7 @@ export function EditContainerWithoutToolbar( title, titleWhenNew, toolbar, + toolbarVariant, ...restProps } = props || {} @@ -103,6 +107,7 @@ export function EditContainerWithoutToolbar( mode="edit" className={classnames('dnb-forms-section-edit-block', className)} ariaLabel={convertJsxToString(itemTitle)} + toolbarVariant={toolbarVariant} {...restProps} > {itemTitle && {itemTitle}} diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/EditContainerDocs.ts b/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/EditContainerDocs.ts index 5e7981dc3f1..a2f05d5e84f 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/EditContainerDocs.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/EditContainerDocs.ts @@ -12,7 +12,7 @@ export const EditContainerProperties: PropertiesTableProps = { status: 'optional', }, variant: { - doc: 'Defines the variant of the container. Can be `outline` or `basic`. Defaults to `outline`.', + doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.', type: 'string', status: 'optional', }, @@ -22,7 +22,7 @@ export const EditContainerProperties: PropertiesTableProps = { status: 'optional', }, toolbarVariant: { - doc: 'Use variants to render the toolbar differently. Currently there is only the `minimumOneItem` variant. See the info section for more info.', + doc: 'Use variants to render the toolbar differently. Currently there are the `minimumOneItem` and `custom` variants. See the info section for more info.', type: 'string', status: 'optional', }, diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/__tests__/EditAndViewContainer.test.tsx b/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/__tests__/EditAndViewContainer.test.tsx index 78d1a364a09..a0b29c5d996 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/__tests__/EditAndViewContainer.test.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/EditContainer/__tests__/EditAndViewContainer.test.tsx @@ -1,8 +1,9 @@ import React from 'react' import { render, fireEvent, waitFor } from '@testing-library/react' +import userEvent from '@testing-library/user-event' +import { Flex } from '../../../../../components' import IterateItemContext from '../../IterateItemContext' import { Field, Form, Iterate, Value } from '../../..' -import userEvent from '@testing-library/user-event' import nbNO from '../../../constants/locales/nb-NO' const tr = { @@ -738,59 +739,211 @@ describe('EditContainer and ViewContainer', () => { } }) - it('should render toolbarVariant="minimumOneItem" with correct buttons', () => { - const { rerender } = render( - - - View Content - - - Edit Content - - - ) + describe('toolbarVariant', () => { + it('should render toolbarVariant="minimumOneItem" with correct buttons', () => { + const { rerender } = render( + + + View Content + + + Edit Content + + + ) - { - const elements = document.querySelectorAll( - '.dnb-forms-iterate__element' + { + const elements = document.querySelectorAll( + '.dnb-forms-iterate__element' + ) + expect(elements).toHaveLength(1) + + const [firstElement] = Array.from(elements) + const [viewBlock, editBlock] = Array.from( + firstElement.querySelectorAll('.dnb-forms-section-block') + ) + expect(editBlock.querySelectorAll('button')).toHaveLength(0) + expect(viewBlock.querySelectorAll('button')).toHaveLength(1) + expect(viewBlock.querySelectorAll('button')[0]).toHaveTextContent( + tr.viewContainer.editButton + ) + } + + rerender( + + + View Content + + + Edit Content + + + ) + + { + const elements = document.querySelectorAll( + '.dnb-forms-iterate__element' + ) + expect(elements).toHaveLength(2) + + const [firstElement] = Array.from(elements) + const [viewBlock, editBlock] = Array.from( + firstElement.querySelectorAll('.dnb-forms-section-block') + ) + expect(editBlock.querySelectorAll('button')).toHaveLength(2) + expect(viewBlock.querySelectorAll('button')).toHaveLength(2) + } + }) + + it('should render toolbarVariant="custom" without a toolbar', () => { + render( + + + View Content + + + Edit Content + + ) - expect(elements).toHaveLength(1) - const [firstElement] = Array.from(elements) const [viewBlock, editBlock] = Array.from( - firstElement.querySelectorAll('.dnb-forms-section-block') + document + .querySelector('.dnb-forms-iterate__element') + .querySelectorAll('.dnb-forms-section-block') ) expect(editBlock.querySelectorAll('button')).toHaveLength(0) + expect(viewBlock.querySelectorAll('button')).toHaveLength(0) + }) + + it('should render toolbarVariant="custom" should default toolbar', () => { + render( + + + View Content + + + Edit Content + + + ) + + const [viewBlock, editBlock] = Array.from( + document + .querySelector('.dnb-forms-iterate__element') + .querySelectorAll('.dnb-forms-section-block') + ) + expect(editBlock.querySelectorAll('button')).toHaveLength(0) + expect(viewBlock.querySelectorAll('button')).toHaveLength(0) + }) + + it('should render toolbarVariant="custom" with correct spacing', () => { + render( + + + View Content + + + + + + + + Edit Content + + + + + + + + ) + + const [viewBlock, editBlock] = Array.from( + document + .querySelector('.dnb-forms-iterate__element') + .querySelectorAll('.dnb-forms-section-block') + ) + + expect(editBlock.querySelectorAll('button')).toHaveLength(1) expect(viewBlock.querySelectorAll('button')).toHaveLength(1) - expect(viewBlock.querySelectorAll('button')[0]).toHaveTextContent( - tr.viewContainer.editButton + + const viewToolbars = viewBlock.querySelectorAll( + '.dnb-forms-iterate-toolbar' + ) + const editToolbars = editBlock.querySelectorAll( + '.dnb-forms-iterate-toolbar' ) - } - rerender( - - - View Content - - - Edit Content - - - ) + expect(viewToolbars).toHaveLength(1) + expect(editToolbars).toHaveLength(1) - { - const elements = document.querySelectorAll( - '.dnb-forms-iterate__element' + const viewToolbar = viewToolbars[0] + expect(viewToolbar).toHaveClass('dnb-space__top--zero') + expect(viewToolbar).toHaveClass('dnb-space__right--small') + expect(viewToolbar).toHaveClass('dnb-space__left--zero') + + const editToolbar = editToolbars[0] + expect(editToolbar).toHaveClass('dnb-space__top--zero') + expect(editToolbar).toHaveClass('dnb-space__right--small') + expect(editToolbar).toHaveClass('dnb-space__left--zero') + + const viewSpace = viewToolbars[0].querySelector('.dnb-space') + expect(viewSpace).toHaveClass('dnb-space__top--zero') + expect(viewSpace).toHaveClass('dnb-flex-container--row-gap-small') + + const editSpace = editToolbars[0].querySelector('.dnb-space') + expect(editSpace).toHaveClass('dnb-space__top--zero') + expect(editSpace).toHaveClass('dnb-flex-container--row-gap-small') + }) + + it('should render toolbarVariant="custom" without a hr', () => { + render( + + + View Content + + + + + + + + Edit Content + + + + + + + ) - expect(elements).toHaveLength(2) - const [firstElement] = Array.from(elements) const [viewBlock, editBlock] = Array.from( - firstElement.querySelectorAll('.dnb-forms-section-block') + document + .querySelector('.dnb-forms-iterate__element') + .querySelectorAll('.dnb-forms-section-block') ) - expect(editBlock.querySelectorAll('button')).toHaveLength(2) - expect(viewBlock.querySelectorAll('button')).toHaveLength(2) - } + + expect(editBlock.querySelectorAll('button')).toHaveLength(1) + expect(viewBlock.querySelectorAll('button')).toHaveLength(1) + + const viewToolbars = viewBlock.querySelectorAll( + '.dnb-forms-iterate-toolbar' + ) + const editToolbars = editBlock.querySelectorAll( + '.dnb-forms-iterate-toolbar' + ) + + expect(viewToolbars).toHaveLength(1) + expect(editToolbars).toHaveLength(1) + + const viewToolbar = viewToolbars[0] + const editToolbar = editToolbars[0] + + expect(viewToolbar.querySelectorAll('hr')).toHaveLength(0) + expect(editToolbar.querySelectorAll('hr')).toHaveLength(0) + }) }) it('should validate on submit', () => { @@ -989,4 +1142,46 @@ describe('EditContainer and ViewContainer', () => { expect(containerMode[0]).toBe('edit') expect(containerMode[1]).toBe('edit') }) + + it('should set correct class for variant "basic"', () => { + render( + + + View Content + + + + + + ) + + const [viewBlock, editBlock] = Array.from( + document.querySelectorAll('.dnb-forms-section-block') + ) + expect(viewBlock).toHaveClass('dnb-forms-section-block--variant-basic') + expect(editBlock).toHaveClass('dnb-forms-section-block--variant-basic') + }) + + it('should set correct class for variant "filled"', () => { + render( + + + View Content + + + + + + ) + + const [viewBlock, editBlock] = Array.from( + document.querySelectorAll('.dnb-forms-section-block') + ) + expect(viewBlock).toHaveClass( + 'dnb-forms-section-block--variant-filled' + ) + expect(editBlock).toHaveClass( + 'dnb-forms-section-block--variant-filled' + ) + }) }) diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/PushContainer/PushContainerDocs.ts b/packages/dnb-eufemia/src/extensions/forms/Iterate/PushContainer/PushContainerDocs.ts index fbdffe54f74..25b51bd566d 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/PushContainer/PushContainerDocs.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/PushContainer/PushContainerDocs.ts @@ -43,7 +43,7 @@ export const PushContainerProperties: PropertiesTableProps = { status: 'optional', }, variant: { - doc: 'Defines the variant of the container. Can be `outline` or `basic`. Defaults to `outline`.', + doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.', type: 'string', status: 'optional', }, diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/Toolbar/Toolbar.tsx b/packages/dnb-eufemia/src/extensions/forms/Iterate/Toolbar/Toolbar.tsx index c41ab227535..8beb409f98f 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/Toolbar/Toolbar.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/Toolbar/Toolbar.tsx @@ -6,6 +6,7 @@ import { SpaceAllProps } from '../../../../components/Space' import IterateItemContext from '../IterateItemContext' import ToolbarContext from './ToolbarContext' import FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext' +import ArrayItemAreaContext from '../Array/ArrayItemAreaContext' import { useTranslation } from '../../hooks' export type ToolbarParams = { @@ -27,6 +28,7 @@ export default function Toolbar({ value, arrayValue: items, } = useContext(IterateItemContext) || {} + const { toolbarVariant } = useContext(ArrayItemAreaContext) || {} const { errorInContainer } = useTranslation().IterateEditContainer const { hasError, hasVisibleError } = useContext(FieldBoundaryContext) || {} @@ -48,14 +50,17 @@ export default function Toolbar({ return ( -
+ {toolbarVariant !== 'custom' &&
} - + {children} diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/RemoveButton.tsx b/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/RemoveButton.tsx index 1f26e3467f2..6dfc5a0fad4 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/RemoveButton.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/RemoveButton.tsx @@ -1,9 +1,11 @@ import React from 'react' -import RemoveButton from '../RemoveButton' +import RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton' import useTranslation from '../../hooks/useTranslation' -export default function ViewContainerRemoveButton() { +export default function ViewContainerRemoveButton( + props: RemoveButtonProps +) { const { removeButton } = useTranslation().IterateViewContainer - return + return } diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx b/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx index cc49e27fa4c..92fdba61dc3 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx @@ -16,14 +16,16 @@ export type Props = { * The title of the ViewContainer. */ title?: React.ReactNode + /** * An alternative toolbar to be shown in the ViewContainer. */ toolbar?: React.ReactNode + /** * The variant of the toolbar. */ - toolbarVariant?: 'minimumOneItem' + toolbarVariant?: ArrayItemAreaProps['toolbarVariant'] } export type AllProps = Props & FlexContainerProps & ArrayItemAreaProps @@ -62,6 +64,7 @@ function ViewContainer(props: AllProps) { mode="view" ariaLabel={convertJsxToString(itemTitle)} className={classnames('dnb-forms-section-view-block', className)} + toolbarVariant={toolbarVariant} {...restProps} > @@ -69,12 +72,13 @@ function ViewContainer(props: AllProps) { {children} {hasToolbar ? null - : toolbarElement ?? ( + : toolbarElement ?? + (toolbarVariant !== 'custom' && ( - )} + ))} ) diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.ts b/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.ts index dc92473f35b..b776d570a0d 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.ts @@ -7,7 +7,7 @@ export const ViewContainerProperties: PropertiesTableProps = { status: 'optional', }, variant: { - doc: 'Defines the variant of the container. Can be `outline` or `basic`. Defaults to `outline`.', + doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.', type: 'string', status: 'optional', }, @@ -17,7 +17,7 @@ export const ViewContainerProperties: PropertiesTableProps = { status: 'optional', }, toolbarVariant: { - doc: 'Use variants to render the toolbar differently. Currently there is only the `minimumOneItem` variant. See the info section for more info.', + doc: 'Use variants to render the toolbar differently. Currently there are the `minimumOneItem` and `custom` variants. See the info section for more info.', type: 'string', status: 'optional', }, diff --git a/packages/dnb-eufemia/src/extensions/forms/Iterate/hooks/useItem.ts b/packages/dnb-eufemia/src/extensions/forms/Iterate/hooks/useItem.ts index a202eac933d..befdceea108 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Iterate/hooks/useItem.ts +++ b/packages/dnb-eufemia/src/extensions/forms/Iterate/hooks/useItem.ts @@ -1,7 +1,16 @@ import { useContext } from 'react' -import IterateItemContext from '../IterateItemContext' +import IterateItemContext, { + IterateItemContextState, +} from '../IterateItemContext' -export default function useItem() { +export type UseItemReturn = Omit< + IterateItemContextState, + 'value' +> & { + value: Value +} + +export default function useItem() { const item = useContext(IterateItemContext) - return item + return item as UseItemReturn } diff --git a/packages/dnb-eufemia/src/style/themes/theme-sbanken/sbanken-theme-forms.scss b/packages/dnb-eufemia/src/style/themes/theme-sbanken/sbanken-theme-forms.scss index e41a420d08e..326e15d8a38 100644 --- a/packages/dnb-eufemia/src/style/themes/theme-sbanken/sbanken-theme-forms.scss +++ b/packages/dnb-eufemia/src/style/themes/theme-sbanken/sbanken-theme-forms.scss @@ -17,3 +17,4 @@ $THEME_FALLBACK: 'ui'; @import '../../../extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss'; @import '../../../extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss'; @import '../../../extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss'; +@import '../../../extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss'; diff --git a/packages/dnb-eufemia/src/style/themes/theme-ui/ui-theme-forms.scss b/packages/dnb-eufemia/src/style/themes/theme-ui/ui-theme-forms.scss index f88b254164d..7215604584f 100644 --- a/packages/dnb-eufemia/src/style/themes/theme-ui/ui-theme-forms.scss +++ b/packages/dnb-eufemia/src/style/themes/theme-ui/ui-theme-forms.scss @@ -17,3 +17,4 @@ $THEME_FALLBACK: 'ui'; @import '../../../extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss'; @import '../../../extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss'; @import '../../../extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss'; +@import '../../../extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss';