keycloak_theme/stories/login/pages/Register.stories.tsx

107 lines
2.7 KiB
TypeScript
Raw Normal View History

2023-04-20 05:41:34 +02:00
import React from "react";
2024-06-03 00:11:19 +02:00
import type { Meta, StoryObj } from "@storybook/react";
2024-06-02 22:37:04 +02:00
import { createPageStory, parameters } from "../createPageStory";
2023-04-20 05:41:34 +02:00
const pageId = "register.ftl";
const { PageStory } = createPageStory({ pageId });
2024-06-03 00:11:19 +02:00
const meta = {
2023-04-20 05:41:34 +02:00
title: `login/${pageId}`,
component: PageStory,
2024-06-02 22:37:04 +02:00
parameters
2024-06-03 00:11:19 +02:00
} satisfies Meta<typeof PageStory>;
2023-04-20 05:41:34 +02:00
export default meta;
2024-06-03 00:11:19 +02:00
type Story = StoryObj<typeof meta>;
export const Default: Story = {
render: () => <PageStory />
};
2024-06-03 00:11:19 +02:00
export const WithFieldError: Story = {
render: () => (
<PageStory
kcContext={{
profile: {
attributes: [
{
name: "email",
value: "max.mustermann@gmail.com"
}
]
},
messagesPerField: {
existsError: (fieldName: string) => fieldName === "email",
exists: (fieldName: string) => fieldName === "email",
get: (fieldName: string) => (fieldName === "email" ? "I don't like your email address" : undefined),
printIfExists: <T,>(fieldName: string, x: T) => (fieldName === "email" ? x : undefined)
}
}}
/>
)
};
2024-06-03 00:11:19 +02:00
export const WithEmailAsUsername: Story = {
render: () => (
<PageStory
kcContext={{
realm: {
registrationEmailAsUsername: true
}
}}
/>
)
};
2024-06-03 00:11:19 +02:00
export const WithoutPassword: Story = {
render: () => (
<PageStory
kcContext={{
passwordRequired: false
}}
/>
)
};
2024-06-03 00:11:19 +02:00
export const WithRecaptcha: Story = {
render: () => (
<PageStory
kcContext={{
recaptchaRequired: true,
recaptchaSiteKey: "foobar"
}}
/>
)
};
2024-06-03 00:11:19 +02:00
export const WithPresets: Story = {
render: () => (
<PageStory
kcContext={{
profile: {
attributes: [
{
name: "firstName",
value: "Max"
},
{
name: "lastName",
value: "Mustermann"
},
{
name: "email",
value: "max.mustermann@gmail.com"
},
{
name: "username",
value: "max.mustermann"
}
]
}
}}
/>
)
};