From 567a131a910e0bc2584cc031235b8987d91d815a Mon Sep 17 00:00:00 2001 From: Long Ho Date: Mon, 16 Aug 2021 09:56:39 -0400 Subject: [PATCH] fix(react-intl): fix children type of FormattedMessage, fix #3117 --- packages/react-intl/src/components/message.tsx | 8 ++------ packages/react-intl/tests/unit/testUtils.tsx | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/react-intl/src/components/message.tsx b/packages/react-intl/src/components/message.tsx index c147c28dec..201993561d 100644 --- a/packages/react-intl/src/components/message.tsx +++ b/packages/react-intl/src/components/message.tsx @@ -16,7 +16,7 @@ export interface Props< > extends MessageDescriptor { values?: V tagName?: React.ElementType - children?(...nodes: React.ReactNodeArray): React.ReactElement | null + children?(nodes: React.ReactNodeArray): React.ReactElement | null ignoreTag?: IntlMessageFormatOptions['ignoreTag'] } @@ -47,12 +47,8 @@ function FormattedMessage(props: Props) { ignoreTag, }) - if (!Array.isArray(nodes)) { - nodes = [nodes] - } - if (typeof children === 'function') { - return children(nodes) + return children(Array.isArray(nodes) ? nodes : [nodes]) } if (Component) { diff --git a/packages/react-intl/tests/unit/testUtils.tsx b/packages/react-intl/tests/unit/testUtils.tsx index 64fd93f68a..4368a8c0ec 100644 --- a/packages/react-intl/tests/unit/testUtils.tsx +++ b/packages/react-intl/tests/unit/testUtils.tsx @@ -6,7 +6,7 @@ export function mountFormattedComponentWithProvider

( Comp: React.ComponentType

) { return ( - props: P & {children?(...nodes: React.ReactNodeArray): React.ReactNode}, + props: P & {children?(nodes: React.ReactNodeArray): React.ReactNode}, providerProps: IntlConfig = {locale: 'en'} ) => { const result = render( @@ -22,7 +22,7 @@ export function mountFormattedComponentWithProvider

( const {rerender} = result const rerenderProps = ( newProps: P & { - children?(...nodes: React.ReactNodeArray): React.ReactNode + children?(nodes: React.ReactNodeArray): React.ReactNode } = props, newProviderProps: IntlConfig = providerProps ) =>