95 lines
2.7 KiB
TypeScript
95 lines
2.7 KiB
TypeScript
import React from "react";
|
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
import { useInsertLinkTags } from "../../dist/tools/useInsertLinkTags";
|
|
import { tss } from "../tss";
|
|
// @ts-expect-error
|
|
import screenshotPngUrl from "./screenshot.png";
|
|
|
|
const meta = {
|
|
title: "Account SPA/index.ftl"
|
|
} satisfies Meta<any>;
|
|
|
|
export default meta;
|
|
|
|
type Story = StoryObj<typeof meta>;
|
|
|
|
export const NotInStorybookButSupported: Story = {
|
|
render: () => <AccountSpa />
|
|
};
|
|
|
|
function AccountSpa() {
|
|
console.log(window.location.href);
|
|
|
|
useInsertLinkTags({
|
|
componentOrHookName: "Template",
|
|
hrefs: []
|
|
});
|
|
|
|
const { classes, theme } = useStyles();
|
|
|
|
return (
|
|
<div className={classes.root}>
|
|
<div className={classes.content}>
|
|
<p>
|
|
Keycloakify offers two option for creating an account theme:{" "}
|
|
<a href="https://docs.keycloakify.dev/account-theme#multi-page" target="_blank">
|
|
Multi Page
|
|
</a>{" "}
|
|
or{" "}
|
|
<a href="https://docs.keycloakify.dev/account-theme#single-page" target="_blank">
|
|
Single Page
|
|
</a>
|
|
. Since the account Single Page does not support Storybook, here is a screenshot of it's default look:
|
|
<br />
|
|
<br />
|
|
<img className={classes.screenshot} alt="image" src={screenshotPngUrl} />
|
|
<br />
|
|
<a href="https://docs.keycloakify.dev/account-theme" target="_blank">
|
|
Learn more
|
|
</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
const useStyles = tss.withName({ AccountSpa }).create(({ isDark, theme }) => ({
|
|
root: {
|
|
height: "100vh",
|
|
color: isDark ? "white" : "black",
|
|
backgroundColor: theme.appContentBg,
|
|
fontFamily: "'Work Sans'",
|
|
fontSize: "14px",
|
|
lineHeight: "24px",
|
|
WebkitFontSmoothing: "antialiased",
|
|
"& a": {
|
|
color: theme.colorSecondary,
|
|
textDecoration: "none",
|
|
"&:hover": {
|
|
textDecoration: "underline"
|
|
}
|
|
},
|
|
"& h1": {
|
|
fontSize: "32px",
|
|
marginBottom: 35
|
|
},
|
|
display: "flex",
|
|
justifyContent: "center"
|
|
},
|
|
content: {
|
|
maxWidth: 750,
|
|
textAlign: "center",
|
|
marginTop: 100
|
|
},
|
|
keycloakifyLogoWrapper: {
|
|
display: "flex",
|
|
justifyContent: "center"
|
|
},
|
|
keycloakifyLogo: {
|
|
width: 400
|
|
},
|
|
screenshot: {
|
|
maxWidth: "100%"
|
|
}
|
|
}));
|