aboutsummaryrefslogtreecommitdiffstats
path: root/.storybook/main.js
diff options
context:
space:
mode:
Diffstat (limited to '.storybook/main.js')
-rw-r--r--.storybook/main.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/.storybook/main.js b/.storybook/main.js
new file mode 100644
index 0000000..05aa578
--- /dev/null
+++ b/.storybook/main.js
@@ -0,0 +1,42 @@
+const path = require('path');
+
+const storybookConfig = {
+ stories: ['../src/**/*.stories.@(md|mdx|js|jsx|ts|tsx)'],
+ addons: [
+ '@storybook/addon-links',
+ '@storybook/addon-essentials',
+ '@storybook/addon-interactions',
+ 'storybook-addon-next',
+ ],
+ framework: '@storybook/react',
+ core: {
+ builder: 'webpack5',
+ },
+ webpackFinal: async (config) => {
+ // Use SVGR for SVG files. See: https://medium.com/@derek_19900/config-storybook-4-to-use-svgr-webpack-plugin-22cb1152f004
+ const rules = config.module.rules;
+ const fileLoaderRule = rules.find((rule) => rule.test.test('.svg'));
+ fileLoaderRule.exclude = /\.svg$/;
+ rules.push({
+ test: /\.svg$/,
+ use: [{ loader: '@svgr/webpack', options: { dimensions: false } }],
+ });
+
+ // Set modules aliases.
+ config.resolve.alias = {
+ ...config.resolve.alias,
+ '@i18n': path.resolve(__dirname, '../src/i18n'),
+ '@assets': path.resolve(__dirname, '../src/assets'),
+ '@components': path.resolve(__dirname, '../src/components'),
+ '@content': path.resolve(__dirname, '../src/content'),
+ '@pages': path.resolve(__dirname, '../src/pages'),
+ '@services': path.resolve(__dirname, '../src/services'),
+ '@styles': path.resolve(__dirname, '../src/styles'),
+ '@utils': path.resolve(__dirname, '../src/utils'),
+ };
+
+ return config;
+ },
+};
+
+module.exports = storybookConfig;