From d4f2eba556a9c546ce7e6b81a1ea5605497c2e99 Mon Sep 17 00:00:00 2001 From: Brian Leathem Date: Wed, 17 Mar 2021 19:58:09 -0700 Subject: [PATCH] Changed the signature of createComponentExtension to include null Signed-off-by: Brian Leathem --- packages/core-api/src/extensions/extensions.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core-api/src/extensions/extensions.tsx b/packages/core-api/src/extensions/extensions.tsx index e56b6901dd..c486bfd84a 100644 --- a/packages/core-api/src/extensions/extensions.tsx +++ b/packages/core-api/src/extensions/extensions.tsx @@ -60,15 +60,18 @@ export function createRoutableExtension< }); } +// We do not use ComponentType as the return type, since it doesn't let us convey the children prop. +// ComponentType inserts children as an optional prop whether the inner component accepts it or not, +// making it impossible to make the usage of children type safe. export function createComponentExtension< - T extends (props: any) => JSX.Element + T extends (props: any) => JSX.Element | null >(options: { component: ComponentLoader }): Extension { const { component } = options; return createReactExtension({ component }); } export function createReactExtension< - T extends (props: any) => JSX.Element + T extends (props: any) => JSX.Element | null >(options: { component: ComponentLoader; data?: Record;