Skip to content

Commit 20a45b5

Browse files
author
Kubit
committed
Improve title prop to message component
1 parent 4c6000a commit 20a45b5

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

src/components/message/__tests__/message.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ describe('Message component', () => {
7575
});
7676

7777
it('Should render tag and extra action', async () => {
78+
const title = { content: <div>Title React Node</div> };
7879
const { container } = renderProvider(
7980
<Message
8081
{...mockPropsWithTagAndExtraAction}
@@ -84,6 +85,7 @@ describe('Message component', () => {
8485
status: 'NORMAL',
8586
content: 'Tag',
8687
}}
88+
title={title}
8789
/>
8890
);
8991

src/components/message/messageStandAlone.tsx

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,27 @@ const MessageStandAloneComponent = (
8888
);
8989
};
9090

91+
const buildTitle = () => {
92+
return typeof props.title?.content === 'string' ? (
93+
<MessageTextStyled
94+
aria-errormessage={props.ariaMessageId}
95+
extraPaddingGap={!!props.closeIcon}
96+
styles={props.styles.closeIcon}
97+
>
98+
<Text
99+
component={TextComponentType.PARAGRAPH}
100+
customTypography={props.styles.title}
101+
dataTestId={`${props.dataTestId}Title`}
102+
{...props.title}
103+
>
104+
{props.title.content}
105+
</Text>
106+
</MessageTextStyled>
107+
) : (
108+
props.title?.content
109+
);
110+
};
111+
91112
return (
92113
<ParentContainerStyled aria-live={ariaLive} styles={props.styles}>
93114
{props.open && (
@@ -118,22 +139,7 @@ const MessageStandAloneComponent = (
118139
withIcon={!!props.closeIcon}
119140
onClick={props.titleAndContentContainerProps?.onClick}
120141
>
121-
{props.title && (
122-
<MessageTextStyled
123-
aria-errormessage={props.ariaMessageId}
124-
extraPaddingGap={!!props.closeIcon}
125-
styles={props.styles.closeIcon}
126-
>
127-
<Text
128-
component={TextComponentType.PARAGRAPH}
129-
customTypography={props.styles.title}
130-
dataTestId={`${props.dataTestId}Title`}
131-
{...props.title}
132-
>
133-
{props.title.content}
134-
</Text>
135-
</MessageTextStyled>
136-
)}
142+
{props.title && buildTitle()}
137143
{props.tag?.content && buildTag()}
138144
<MessageContentStyled isLargeMessage={isLargeMessage} styles={props.styles}>
139145
{buildContent()}

src/components/message/types/message.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export type MessageContentType = Omit<IText<string>, 'children'> & {
2525
};
2626

2727
export type MessageTitleType = Omit<IText<string>, 'children'> & {
28-
content: string;
28+
content: React.ReactNode;
2929
};
3030

3131
export type MessageTagType = Omit<ITag, 'children'> & {

0 commit comments

Comments
 (0)