aboutsummaryrefslogtreecommitdiffstats
path: root/.storybook/overrides/docs-container.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-05-22 17:39:39 +0200
committerArmand Philippot <git@armandphilippot.com>2022-05-22 17:39:39 +0200
commit3ed7f185e82c0cc87c63b75dc8cddfecc5c608ce (patch)
treeb1b314cec900ebb3f671269f6fc9560242e90a0a /.storybook/overrides/docs-container.js
parent321dae4a47594af83269fa560b375965d7f35763 (diff)
chore(storybook): use custom themes and add dark mode support
Diffstat (limited to '.storybook/overrides/docs-container.js')
-rw-r--r--.storybook/overrides/docs-container.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/.storybook/overrides/docs-container.js b/.storybook/overrides/docs-container.js
new file mode 100644
index 0000000..f539986
--- /dev/null
+++ b/.storybook/overrides/docs-container.js
@@ -0,0 +1,36 @@
+import { DocsContainer as BaseContainer } from '@storybook/addon-docs/blocks';
+import { useDarkMode } from 'storybook-dark-mode';
+import dark from '../themes/dark';
+import light from '../themes/light';
+
+/**
+ * Custom Docs Container to support dark theme.
+ *
+ * @see https://github.com/hipstersmoothie/storybook-dark-mode/issues/127#issuecomment-1070524402
+ */
+export const DocsContainer = ({ children, context }) => {
+ const isDark = useDarkMode();
+
+ return (
+ <BaseContainer
+ context={{
+ ...context,
+ storyById: (id) => {
+ const storyContext = context.storyById(id);
+ return {
+ ...storyContext,
+ parameters: {
+ ...storyContext?.parameters,
+ docs: {
+ ...storyContext?.parameters?.docs,
+ theme: isDark ? dark : light,
+ },
+ },
+ };
+ },
+ }}
+ >
+ {children}
+ </BaseContainer>
+ );
+};