Better typing for createGetKcContext

This commit is contained in:
garronej
2023-04-16 02:36:15 +02:00
parent d1c7491704
commit f6e6cf3750
3 changed files with 31 additions and 11 deletions

View File

@ -15,10 +15,14 @@ export function createGetKcContext<KcContextExtension extends { pageId: string }
}) {
const { mockData } = params ?? {};
function getKcContext<PageId extends ExtendKcContext<KcContextExtension>["pageId"] = ExtendKcContext<KcContextExtension>["pageId"]>(params?: {
function getKcContext<PageId extends ExtendKcContext<KcContextExtension>["pageId"]>(params?: {
mockPageId?: PageId;
storyParams?: DeepPartial<Extract<ExtendKcContext<KcContextExtension>, { pageId: PageId }>>;
}): { kcContext: Extract<ExtendKcContext<KcContextExtension>, { pageId: PageId }> | undefined } {
}): {
kcContext: ExtendKcContext<KcContextExtension>["pageId"] extends PageId
? ExtendKcContext<KcContextExtension> | undefined
: Extract<ExtendKcContext<KcContextExtension>, { pageId: PageId }>;
} {
const { mockPageId, storyParams } = params ?? {};
const realKcContext = getKcContextFromWindow<KcContextExtension>();
@ -86,11 +90,11 @@ export function createGetKcContext<KcContextExtension extends { pageId: string }
}
if (realKcContext === undefined) {
return { "kcContext": undefined };
return { "kcContext": undefined as any };
}
if (id<readonly string[]>(accountThemePageIds).indexOf(realKcContext.pageId) < 0 && !("account" in realKcContext)) {
return { "kcContext": undefined };
return { "kcContext": undefined as any };
}
{