summaryrefslogtreecommitdiff
path: root/packages/backend/.storybook
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-08-27 11:28:26 -0300
committerSebastian <sebasjm@gmail.com>2021-08-27 11:28:39 -0300
commiteae88828683ec05d438dd4908d86b73e67e9707d (patch)
treebf8e494c40c0f6f03a5a35fdf19c609fe7d75a7a /packages/backend/.storybook
parentf4cbd85008d14a78433b9495cce48903192e2e0d (diff)
downloadmerchant-backoffice-eae88828683ec05d438dd4908d86b73e67e9707d.tar.gz
merchant-backoffice-eae88828683ec05d438dd4908d86b73e67e9707d.tar.bz2
merchant-backoffice-eae88828683ec05d438dd4908d86b73e67e9707d.zip
merchant backend pages
Diffstat (limited to 'packages/backend/.storybook')
-rw-r--r--packages/backend/.storybook/.babelrc25
-rw-r--r--packages/backend/.storybook/main.js82
-rw-r--r--packages/backend/.storybook/preview.js73
3 files changed, 180 insertions, 0 deletions
diff --git a/packages/backend/.storybook/.babelrc b/packages/backend/.storybook/.babelrc
new file mode 100644
index 0000000..610b6f3
--- /dev/null
+++ b/packages/backend/.storybook/.babelrc
@@ -0,0 +1,25 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+ /**
+ *
+ * @author Sebastian Javier Marchano (sebasjm)
+ */
+{
+ "presets": [
+ "preact-cli/babel"
+ ]
+} \ No newline at end of file
diff --git a/packages/backend/.storybook/main.js b/packages/backend/.storybook/main.js
new file mode 100644
index 0000000..5497a65
--- /dev/null
+++ b/packages/backend/.storybook/main.js
@@ -0,0 +1,82 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+*
+* @author Sebastian Javier Marchano (sebasjm)
+*/
+
+
+module.exports = {
+ "stories": [
+ "../src/**/*.stories.mdx",
+ "../src/**/*.stories.@(js|jsx|ts|tsx)"
+ ],
+ "addons": [
+ "@storybook/preset-scss",
+ "@storybook/addon-a11y",
+ "@storybook/addon-essentials" //docs, control, actions, viewpot, toolbar, background
+ ],
+ // sb does not yet support new jsx transform by default
+ // https://github.com/storybookjs/storybook/issues/12881
+ // https://github.com/storybookjs/storybook/issues/12952
+ babel: async (options) => ({
+ ...options,
+ presets: [
+ ...options.presets,
+ [
+ '@babel/preset-react', {
+ runtime: 'automatic',
+ },
+ 'preset-react-jsx-transform'
+ ],
+ "@linaria",
+ ],
+ }),
+ webpackFinal: (config) => {
+ // should be removed after storybook 6.3
+ // https://github.com/storybookjs/storybook/issues/12853#issuecomment-821576113
+ config.resolve.alias = {
+ react: "preact/compat",
+ "react-dom": "preact/compat",
+ };
+
+ // we need to add @linaria loader AFTER the babel-loader
+ // https://github.com/callstack/linaria/blob/master/docs/BUNDLERS_INTEGRATION.md#webpack
+ config.module.rules[0] = {
+ ...(config.module.rules[0]),
+ loader: undefined, // Disable the predefined babel-loader on the rule
+ use: [
+ {
+ ...(config.module.rules[0].use[0]),
+ loader: 'babel-loader',
+ },
+ {
+ loader: '@linaria/webpack-loader',
+ options: {
+ sourceMap: true, //always true since this is dev
+ babelOptions: {
+ presets: config.module.rules[0].use[0].options.presets,
+ }
+ // Pass the current babel options to linaria's babel instance
+ }
+ }
+ ]
+ };
+
+ return config;
+ },
+} \ No newline at end of file
diff --git a/packages/backend/.storybook/preview.js b/packages/backend/.storybook/preview.js
new file mode 100644
index 0000000..a9cc4c3
--- /dev/null
+++ b/packages/backend/.storybook/preview.js
@@ -0,0 +1,73 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+import { ConfigContextProvider } from '../src/context/config'
+import { InstanceContextProvider } from '../src/context/instance'
+import { TranslationProvider } from '../src/context/translation'
+import { BackendContextProvider } from '../src/context/backend'
+import { h } from 'preact';
+
+const mockConfig = {
+ backendURL: 'http://demo.taler.net',
+ currency: 'TESTKUDOS'
+}
+
+const mockInstance = {
+ id: 'instance-id',
+ token: 'instance-token',
+ admin: false,
+}
+
+const mockBackend = {
+ url: 'http://merchant.url',
+ token: 'default-token',
+ triedToLog: false,
+}
+
+export const parameters = {
+ controls: { expanded: true },
+ // actions: { argTypesRegex: "^on.*" },
+}
+
+export const globalTypes = {
+ locale: {
+ name: 'Locale',
+ description: 'Internationalization locale',
+ defaultValue: 'en',
+ toolbar: {
+ icon: 'globe',
+ items: [
+ { value: 'en', right: 'πŸ‡ΊπŸ‡Έ', title: 'English' },
+ { value: 'es', right: 'πŸ‡ͺπŸ‡Έ', title: 'Spanish' },
+ ],
+ },
+ },
+};
+
+export const decorators = [
+ (Story, { globals }) => <TranslationProvider initial='en' forceLang={globals.locale}>
+ <Story />
+ </TranslationProvider>,
+ (Story) => <ConfigContextProvider value={mockConfig}>
+ <Story />
+ </ConfigContextProvider>,
+ (Story) => <InstanceContextProvider value={mockInstance}>
+ <Story />
+ </InstanceContextProvider>,
+ (Story) => <BackendContextProvider defaultUrl={mockBackend.url}>
+ <Story />
+ </BackendContextProvider>,
+];