Skip to content

Commit aaa7dcc

Browse files
committed
Setup storybook for Mails in Demo-API
1 parent e5427a0 commit aaa7dcc

21 files changed

+264
-3
lines changed

demo/api/.babelrc.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"presets": ["@comet/admin-babel-preset"]
3+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import { type Decorator } from "@storybook/react-webpack5";
2+
import { de, enUS } from "date-fns/locale";
3+
import { IntlProvider } from "react-intl";
4+
5+
enum LocaleOption {
6+
German = "de",
7+
English = "en",
8+
}
9+
10+
function isLocaleOption(value: any): value is LocaleOption {
11+
return value === "de" || value === "en";
12+
}
13+
14+
type DateFnsLocale = typeof de;
15+
const dateFnsLocales: Record<LocaleOption, DateFnsLocale> = {
16+
[LocaleOption.German]: de,
17+
[LocaleOption.English]: enUS,
18+
};
19+
20+
// @TODO: use messages from lang-package
21+
const messages: Record<LocaleOption, Record<string, string>> = {
22+
en: {
23+
"comet.core.deleteMutation.promptDelete": "Delete data?",
24+
"comet.core.deleteMutation.yes": "Yes",
25+
"comet.core.deleteMutation.no": "No",
26+
"comet.core.dirtyHandler.discardChanges": "Discard unsaved changes?",
27+
"comet.core.editDialog.edit": "Edit",
28+
"comet.core.editDialog.add": "Add",
29+
"comet.core.editDialog.cancel": "Cancel",
30+
"comet.core.editDialog.save": "Save",
31+
"comet.core.finalForm.abort": "Cancel",
32+
"comet.core.finalForm.save": "Save",
33+
"comet.core.router.confirmationDialog.confirm": "OK",
34+
"comet.core.router.confirmationDialog.abort": "Cancel",
35+
"comet.core.stack.stack.back": "Back",
36+
"comet.core.table.addButton": "Add",
37+
"comet.core.table.excelExportButton": "Export",
38+
"comet.core.table.deleteButton": "Delete",
39+
"comet.core.table.pagination.pageInfo": "Page {current} of {total}",
40+
"comet.core.table.localChangesToolbar.save": "Save",
41+
"comet.core.table.localChangesToolbar.unsavedItems":
42+
"{count, plural, =0 {no unsaved changes} one {# unsaved change} other {# unsaved changes}}",
43+
"comet.core.table.tableFilterFinalForm.resetButton": "Reset Filter",
44+
"comet.core.table.tableQuery.error": "Error :( {error}",
45+
},
46+
de: {
47+
"comet.core.table.localChangesToolbar.unsavedItems":
48+
"{count, plural, =0 {keine ungespeicherten Änderungen} one {# ungespeicherte Änderung} other {# ungespeicherte Änderungen}}",
49+
"comet.core.table.tableQuery.error": "Fehler :( {error}",
50+
},
51+
};
52+
53+
export const IntlDecorator: Decorator = (fn, context) => {
54+
const { locale: selectedLocale = LocaleOption.English } = context.globals;
55+
const selecteDateFnsLocale = isLocaleOption(selectedLocale) ? dateFnsLocales[selectedLocale] : dateFnsLocales.en;
56+
57+
return (
58+
<IntlProvider
59+
locale={selectedLocale}
60+
messages={isLocaleOption(selectedLocale) ? messages[selectedLocale] : {}}
61+
onError={() => {
62+
// disable error logging
63+
}}
64+
>
65+
{fn()}
66+
</IntlProvider>
67+
);
68+
};

demo/api/.storybook/main.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type { StorybookConfig } from "@storybook/react-webpack5";
2+
3+
const config: StorybookConfig = {
4+
stories: ["../src/**/*.mdx", "../src/**/__stories__/*.stories.@(js|jsx|mjs|ts|tsx)"],
5+
staticDirs: ["./public"],
6+
7+
addons: ["@storybook/addon-docs", "storybook-addon-tag-badges", "@storybook/addon-webpack5-compiler-babel"],
8+
framework: "@storybook/react-webpack5",
9+
};
10+
export default config;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<link rel="shortcut icon" href="/favicon.ico" />
2+
<script type="text/javascript">
3+
document.addEventListener("DOMContentLoaded", function () {
4+
var badge = document.createElement("div");
5+
badge.style.position = "fixed";
6+
badge.style.right = "5px";
7+
badge.style.bottom = "5px";
8+
badge.style.zIndex = "10";
9+
badge.innerHTML =
10+
'<a href="https://www.netlify.com"><img src="https://www.netlify.com/img/global/badges/netlify-color-accent.svg" alt="Deploys by Netlify" /></a>';
11+
12+
document.body.appendChild(badge);
13+
});
14+
</script>

demo/api/.storybook/manager.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { addons } from "storybook/manager-api";
2+
3+
import theme from "./theme";
4+
5+
addons.setConfig({
6+
theme,
7+
});

demo/api/.storybook/middleware.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export default function middleware(router) {
2+
router.use((req, res, next) => {
3+
const origin = req.headers.origin;
4+
5+
if (origin?.startsWith("http://localhost:")) {
6+
res.setHeader("Access-Control-Allow-Origin", origin);
7+
res.setHeader("Access-Control-Allow-Credentials", "true");
8+
}
9+
10+
next();
11+
});
12+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<title>Comet</title>
2+
<style>
3+
body {
4+
font-family: "Lato", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
5+
font-size: 14px;
6+
line-height: 1.4;
7+
-webkit-font-smoothing: antialiased;
8+
}
9+
10+
#root pre:not(.prismjs) {
11+
background-color: #efefef;
12+
font-size: 10px;
13+
padding: 15px;
14+
}
15+
16+
#root code {
17+
font-size: 10px;
18+
}
19+
</style>

demo/api/.storybook/preview.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import type { Preview } from "@storybook/react-webpack5";
2+
3+
import { IntlDecorator } from "./decorators/IntlProvider.decorator";
4+
5+
const preview: Preview = {
6+
tags: ["autodocs"],
7+
decorators: [IntlDecorator],
8+
9+
parameters: {
10+
docs: {
11+
codePanel: true,
12+
},
13+
controls: {
14+
matchers: {
15+
color: /(background|color)$/i,
16+
date: /Date$/i,
17+
},
18+
},
19+
},
20+
};
21+
22+
export default preview;
Lines changed: 11 additions & 0 deletions
Loading
2.13 KB
Binary file not shown.

0 commit comments

Comments
 (0)