Skip to content

Commit d29420d

Browse files
author
Hector Arce De Las Heras
committed
Enhance FunctionalitiesModule component with ReactNode optionsContent prop
This commit improves the FunctionalitiesModule component by adding a new prop that accepts a ReactNode, named `optionsContent`. This enhancement allows the component to render more complex content within each option, providing greater flexibility and customization possibilities for the FunctionalitiesModule component.
1 parent e27f903 commit d29420d

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

src/components/functionalitiesModule/__tests__/functionalitiesModule.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const mockProps: IFunctionalitiesModuleUnControlled = {
3333
value: 2,
3434
},
3535
],
36+
optionsContent: <div>Content example</div>,
3637
},
3738
{
3839
tab: { content: 'label2' },

src/components/functionalitiesModule/functionalitiesModuleStandAlone.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ const FunctionalitiesModuleStandAloneComponent = (
5858
>
5959
{props.styles.listOptions?.optionVariant && props.styles.listOptions.variant && (
6060
<ListOptions
61+
content={section.optionsContent}
6162
dataTestId={`${props.dataTestId}ListOptions`}
6263
optionVariant={props.styles.listOptions.optionVariant}
6364
options={section.options}

src/components/functionalitiesModule/stories/functionalitiesModule.stories.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import type { Meta, StoryObj } from '@storybook/react';
2+
import React from 'react';
23

34
import { ICONS } from '@/assets';
5+
import { ReplaceContent } from '@/components/storybook/replaceContent/replaceContent';
6+
import { SummaryDetails } from '@/components/summaryDetails';
47
import { STYLES_NAME } from '@/constants';
58
import { themesObject, variantsObject } from '@/designSystem/themesObject';
69

@@ -58,6 +61,33 @@ export const FunctionalitiesModule: Story = {
5861
},
5962
};
6063

64+
export const FunctionalitiesModuleWithContent: Story = {
65+
args: {
66+
...commonArgs,
67+
sections: [
68+
{
69+
...SECTIONS[0],
70+
optionsTitle: { content: 'Options Title' },
71+
optionsContent: (
72+
<div style={{ backgroundColor: 'red', padding: '3px' }}>
73+
<SummaryDetails
74+
description={{ content: 'description' }}
75+
icon={{ icon: ICONS.ICON_PLACEHOLDER }}
76+
title={{ content: 'Summary Details' }}
77+
variant="SMALL"
78+
>
79+
<ReplaceContent width="100%" />
80+
</SummaryDetails>
81+
</div>
82+
),
83+
},
84+
{
85+
...SECTIONS[1],
86+
},
87+
],
88+
},
89+
};
90+
6191
export const FunctionalitiesModuleWithCtv: Story = {
6292
args: {
6393
...commonArgs,

src/components/functionalitiesModule/types/functionalitiesModule.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export type FunctionalitiesModuleSectionType = {
2323
tab: PrimaryTabTabType;
2424
options: Omit<ListOptionsOptionType, 'highlighted'>[];
2525
optionsTitle?: ListOptionsTitleType;
26+
optionsContent?: ReactNode;
2627
};
2728

2829
export type FunctionalitiesModuleTabsConfig = Omit<

0 commit comments

Comments
 (0)