|
1 | | -import { useEffect, useGlobals } from '@storybook/addons'; |
2 | | -import type { AnyFramework, PartialStoryFn as StoryFunction, StoryContext } from '@storybook/csf'; |
| 1 | +import { useEffect, useGlobals } from "@storybook/addons"; |
| 2 | +import type { |
| 3 | + AnyFramework, |
| 4 | + PartialStoryFn as StoryFunction, |
| 5 | + StoryContext, |
| 6 | +} from "@storybook/csf"; |
3 | 7 |
|
4 | | -import { VSCodeTheme } from './theme'; |
| 8 | +import { VSCodeTheme } from "./theme"; |
5 | 9 |
|
6 | 10 | const themeFiles: { [key in VSCodeTheme]: string } = { |
7 | | - // eslint-disable-next-line @typescript-eslint/no-var-requires |
8 | | - [VSCodeTheme.Dark]: require('!file-loader?modules!../../src/stories/vscode-theme-dark.css').default, |
9 | | - // eslint-disable-next-line @typescript-eslint/no-var-requires |
10 | | - [VSCodeTheme.Light]: require('!file-loader?modules!../../src/stories/vscode-theme-light.css').default, |
| 11 | + [VSCodeTheme.Dark]: |
| 12 | + // eslint-disable-next-line @typescript-eslint/no-var-requires |
| 13 | + require("!file-loader?modules!../../src/stories/vscode-theme-dark.css") |
| 14 | + .default, |
| 15 | + [VSCodeTheme.Light]: |
| 16 | + // eslint-disable-next-line @typescript-eslint/no-var-requires |
| 17 | + require("!file-loader?modules!../../src/stories/vscode-theme-light.css") |
| 18 | + .default, |
11 | 19 | }; |
12 | 20 |
|
13 | 21 | export const withTheme = ( |
14 | 22 | StoryFn: StoryFunction<AnyFramework>, |
15 | | - context: StoryContext<AnyFramework> |
| 23 | + context: StoryContext<AnyFramework>, |
16 | 24 | ) => { |
17 | 25 | const [{ vscodeTheme }] = useGlobals(); |
18 | 26 |
|
19 | 27 | useEffect(() => { |
20 | 28 | const styleSelectorId = |
21 | | - context.viewMode === 'docs' |
| 29 | + context.viewMode === "docs" |
22 | 30 | ? `addon-vscode-theme-docs-${context.id}` |
23 | | - : 'addon-vscode-theme-theme'; |
| 31 | + : "addon-vscode-theme-theme"; |
24 | 32 |
|
25 | | - const theme = Object.values(VSCodeTheme).includes(vscodeTheme) ? vscodeTheme as VSCodeTheme : VSCodeTheme.Dark; |
| 33 | + const theme = Object.values(VSCodeTheme).includes(vscodeTheme) |
| 34 | + ? (vscodeTheme as VSCodeTheme) |
| 35 | + : VSCodeTheme.Dark; |
26 | 36 |
|
27 | 37 | document.getElementById(styleSelectorId)?.remove(); |
28 | 38 |
|
29 | | - const link = document.createElement('link'); |
| 39 | + const link = document.createElement("link"); |
30 | 40 | link.id = styleSelectorId; |
31 | 41 | link.href = themeFiles[theme]; |
32 | | - link.rel = 'stylesheet'; |
| 42 | + link.rel = "stylesheet"; |
33 | 43 |
|
34 | 44 | document.head.appendChild(link); |
35 | 45 | }, [vscodeTheme]); |
|
0 commit comments