Skip to content

Commit e86befe

Browse files
authored
fix: add default tagName to HTML message (#1361)
fix: add default tagName to HTML message fix: add revert back to createElement for message fix: make textComponent optional
1 parent 3b9627e commit e86befe

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

src/components/html-message.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ import withIntl from './injectIntl';
99
import {BaseFormattedMessage} from './message';
1010

1111
class FormattedHTMLMessage extends BaseFormattedMessage {
12+
static defaultProps = {
13+
...BaseFormattedMessage.defaultProps,
14+
tagName: 'span' as 'span',
15+
};
1216
render() {
1317
const {formatHTMLMessage, textComponent: Text} = this.props.intl;
1418

@@ -17,7 +21,8 @@ class FormattedHTMLMessage extends BaseFormattedMessage {
1721
description,
1822
defaultMessage,
1923
values: rawValues,
20-
tagName: Component = Text,
24+
// This is bc of TS3.3 doesn't recognize `defaultProps`
25+
tagName: Component = Text || 'span',
2126
children,
2227
} = this.props;
2328

src/components/message.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ export class BaseFormattedMessage extends React.Component<Props> {
153153
if (Component) {
154154
// Needs to use `createElement()` instead of JSX, otherwise React will
155155
// warn about a missing `key` prop with rich-text message formatting.
156-
return <Component>{nodes}</Component>;
156+
return React.createElement(Component, null, ...nodes);
157157
}
158158
return nodes;
159159
}

src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export interface IntlConfig {
1414
locale: string;
1515
timeZone?: string;
1616
formats: CustomFormats;
17-
textComponent: React.ComponentType | keyof React.ReactHTML;
17+
textComponent?: React.ComponentType | keyof React.ReactHTML;
1818
messages: Record<string, string> | Record<string, MessageFormatElement[]>;
1919
defaultLocale: string;
2020
defaultFormats: CustomFormats;

0 commit comments

Comments
 (0)