diff --git a/stories/account/KcApp.tsx b/stories/account/KcApp.tsx new file mode 100644 index 00000000..6c9fc4ab --- /dev/null +++ b/stories/account/KcApp.tsx @@ -0,0 +1,27 @@ +import React, { lazy, Suspense } from "react"; +import Fallback from "../../dist/account"; +import type { KcContext } from "./kcContext"; +import { useI18n } from "./i18n"; + +const DefaultTemplate = lazy(() => import("../../dist/account/Template")); + +export default function KcApp(props: { kcContext: KcContext }) { + const { kcContext } = props; + + const i18n = useI18n({ kcContext }); + + if (i18n === null) { + return null; + } + + return ( + + {(() => { + switch (kcContext.pageId) { + default: + return ; + } + })()} + + ); +} diff --git a/stories/account/createPageStory.tsx b/stories/account/createPageStory.tsx new file mode 100644 index 00000000..d768e803 --- /dev/null +++ b/stories/account/createPageStory.tsx @@ -0,0 +1,19 @@ +import React from "react"; +import { getKcContext, type KcContext } from "./kcContext"; +import KcApp from "./KcApp"; +import type { DeepPartial } from "../../dist/tools/DeepPartial"; + +export function createPageStory(params: { pageId: PageId }) { + const { pageId } = params; + + function PageStory(params: { kcContext?: DeepPartial> }) { + const { kcContext } = getKcContext({ + mockPageId: pageId, + storyPartialKcContext: params.kcContext + }); + + return ; + } + + return { PageStory }; +} diff --git a/stories/account/i18n.ts b/stories/account/i18n.ts new file mode 100644 index 00000000..83ad89de --- /dev/null +++ b/stories/account/i18n.ts @@ -0,0 +1,5 @@ +import { createUseI18n } from "../../dist/account"; + +export const { useI18n } = createUseI18n({}); + +export type I18n = NonNullable>; diff --git a/stories/account/kcContext.ts b/stories/account/kcContext.ts new file mode 100644 index 00000000..392dcd08 --- /dev/null +++ b/stories/account/kcContext.ts @@ -0,0 +1,7 @@ +import { createGetKcContext } from "../../dist/account"; + +export const { getKcContext } = createGetKcContext(); + +const { kcContext } = getKcContext(); + +export type KcContext = NonNullable; diff --git a/stories/account/pages/Account.stories.tsx b/stories/account/pages/Account.stories.tsx new file mode 100644 index 00000000..64f1d8ca --- /dev/null +++ b/stories/account/pages/Account.stories.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import type { ComponentMeta } from "@storybook/react"; +import { createPageStory } from "../createPageStory"; + +const pageId = "account.ftl"; + +const { PageStory } = createPageStory({ pageId }); + +const meta: ComponentMeta = { + title: `account/${pageId}`, + component: PageStory, + parameters: { + viewMode: "story", + previewTabs: { + "storybook/docs/panel": { + hidden: true + } + } + } +}; + +export default meta; + +export const Default = () => ; diff --git a/stories/login/pages/Error.stories.tsx b/stories/login/pages/Error.stories.tsx index 1303196a..e5af2d2a 100644 --- a/stories/login/pages/Error.stories.tsx +++ b/stories/login/pages/Error.stories.tsx @@ -7,13 +7,13 @@ const pageId = "error.ftl"; const { PageStory } = createPageStory({ pageId }); const meta: ComponentMeta = { - "title": `login/${pageId}`, - "component": PageStory, - "parameters": { - "viewMode": "story", - "previewTabs": { + title: `login/${pageId}`, + component: PageStory, + parameters: { + viewMode: "story", + previewTabs: { "storybook/docs/panel": { - "hidden": true + hidden: true } } } @@ -23,4 +23,10 @@ export default meta; export const Default = () => ; -export const WithAnotherMessage = () => ; +export const WithAnotherMessage = () => ( + +); diff --git a/stories/login/pages/Login.stories.tsx b/stories/login/pages/Login.stories.tsx index 4c892a60..9f3d55b6 100644 --- a/stories/login/pages/Login.stories.tsx +++ b/stories/login/pages/Login.stories.tsx @@ -7,11 +7,11 @@ const pageId = "login.ftl"; const { PageStory } = createPageStory({ pageId }); const meta: ComponentMeta = { - "title": `login/${pageId}`, - "component": PageStory, - "parameters": { - "viewMode": "story", - "previewTabs": { + title: `login/${pageId}`, + component: PageStory, + parameters: { + viewMode: "story", + previewTabs: { "storybook/docs/panel": { "hidden": true }