2023-03-20 05:14:25 +01:00
|
|
|
import type { DeepPartial } from "keycloakify/tools/DeepPartial";
|
|
|
|
import type { ExtendKcContext } from "./getKcContextFromWindow";
|
2023-04-16 02:09:26 +02:00
|
|
|
import { createGetKcContext } from "./createGetKcContext";
|
2023-03-20 05:14:25 +01:00
|
|
|
|
2023-04-17 01:41:30 +02:00
|
|
|
/** NOTE: We now recommend using createGetKcContext instead of this function to make storybook integration easier
|
|
|
|
* See: https://github.com/keycloakify/keycloakify-starter/blob/main/src/keycloak-theme/account/kcContext.ts
|
|
|
|
*/
|
2024-05-20 15:48:51 +02:00
|
|
|
export function getKcContext<
|
|
|
|
KcContextExtension extends { pageId: string } = never
|
|
|
|
>(params?: {
|
2023-03-20 05:14:25 +01:00
|
|
|
mockPageId?: ExtendKcContext<KcContextExtension>["pageId"];
|
|
|
|
mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
|
|
|
|
}): { kcContext: ExtendKcContext<KcContextExtension> | undefined } {
|
|
|
|
const { mockPageId, mockData } = params ?? {};
|
|
|
|
|
2023-04-16 02:09:26 +02:00
|
|
|
const { getKcContext } = createGetKcContext({
|
|
|
|
mockData
|
|
|
|
});
|
2023-03-20 05:14:25 +01:00
|
|
|
|
2023-04-16 02:09:26 +02:00
|
|
|
const { kcContext } = getKcContext({ mockPageId });
|
2023-03-20 05:14:25 +01:00
|
|
|
|
2023-04-16 02:09:26 +02:00
|
|
|
return { kcContext };
|
2023-03-20 05:14:25 +01:00
|
|
|
}
|