8cdc6b7730
First shot at introducing storybook, with stories for the keycloak theme pages already in the repo.
39 lines
2.3 KiB
TypeScript
39 lines
2.3 KiB
TypeScript
import { KcContextBase, getKcContext } from "keycloakify/lib/getKcContext";
|
|
import type { DeepPartial } from "keycloakify/lib/tools/DeepPartial";
|
|
import type { ExtendsKcContextBase } from "keycloakify/lib/getKcContext/getKcContextFromWindow";
|
|
|
|
type KcContextExt =
|
|
| { pageId: "my-extra-page-1.ftl"; }
|
|
| { pageId: "my-extra-page-2.ftl"; someCustomValue: string; }
|
|
// NOTE: register.ftl is deprecated in favor of register-user-profile.ftl
|
|
// but let's say we use it anyway and have this plugin enabled: https://github.com/micedre/keycloak-mail-whitelisting
|
|
// keycloak-mail-whitelisting define the non standard ftl global authorizedMailDomains, we declare it here.
|
|
| { pageId: "register.ftl"; authorizedMailDomains: string[]; }
|
|
|
|
export const useKcStoryData = (mockData: (
|
|
{ pageId: KcContextBase['pageId'] | KcContextExt['pageId'] } & DeepPartial<ExtendsKcContextBase<KcContextExt>>
|
|
)) => {
|
|
|
|
const { kcContext } = getKcContext<KcContextExt>({
|
|
mockPageId: mockData.pageId,
|
|
mockData: [mockData]
|
|
})
|
|
if (!kcContext) throw new Error("no kcContext")
|
|
return { kcContext }
|
|
}
|
|
|
|
|
|
export const socialProviders = [
|
|
{ loginUrl: 'google', alias: 'google', providerId: 'google', displayName: 'Google' },
|
|
{ loginUrl: 'microsoft', alias: 'microsoft', providerId: 'microsoft', displayName: 'Microsoft' },
|
|
{ loginUrl: 'facebook', alias: 'facebook', providerId: 'facebook', displayName: 'Facebook' },
|
|
{ loginUrl: 'instagram', alias: 'instagram', providerId: 'instagram', displayName: 'Instagram' },
|
|
{ loginUrl: 'twitter', alias: 'twitter', providerId: 'twitter', displayName: 'Twitter' },
|
|
{ loginUrl: 'linkedin', alias: 'linkedin', providerId: 'linkedin', displayName: 'LinkedIn' },
|
|
{ loginUrl: 'stackoverflow', alias: 'stackoverflow', providerId: 'stackoverflow', displayName: 'Stackoverflow' },
|
|
{ loginUrl: 'github', alias: 'github', providerId: 'github', displayName: 'Github' },
|
|
{ loginUrl: 'gitlab', alias: 'gitlab', providerId: 'gitlab', displayName: 'Gitlab' },
|
|
{ loginUrl: 'bitbucket', alias: 'bitbucket', providerId: 'bitbucket', displayName: 'Bitbucket' },
|
|
{ loginUrl: 'paypal', alias: 'paypal', providerId: 'paypal', displayName: 'PayPal' },
|
|
{ loginUrl: 'openshift', alias: 'openshift', providerId: 'openshift', displayName: 'OpenShift' },
|
|
] |