mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* chore(grafana-ui): begin migration to storybook7 * refactor(storybook): begin cleanup of storybook and addon configs * chore(storybook): add storybook/blocks to keep yarn berry happy * chore(storybook): rename intro story for storybook 7 * chore(stories): rename internal stories to support SB7 story name mapper * chore(betterer): update glob to support internal story renaming * chore(stories): silence TS errors for subcomponents in SB7 * fix(clickoutsidewrapper): window | document can be undefined not null * chore(storybook): remove patch for 6.5.16 * revert(storybook): put back story globs * docs(storybook): replace removed <Props /> with <ArgsTypes /> in mdx files * docs(storybook): use ArgTypes instead of ArgsTable * chore(storybook): use correct ArgTypes import name in mdx files * chore(storybook): patch blocks to expose Preview component for docs * chore(storybook): rename deprecated ComponentStory and ComponentMeta for v7 * feat(storybook): add STORY env var to customise which stories storybook should load * chore(storybook): bump to 7.0.4 * fix(storybook): set esbuild minify target to fix erroring docs in production builds * fix(toolbarbuttonrow): fix import path to prevent error in storybook doc * docs(storybook): fix up some more stories * chore(storybook): more config updates to match storybook documentation * chore(storybook): bump to 7.0.5 * Apply suggestions from code review Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com> * chore(storybook): fix broken merge causing types issues * chore(storybook): mimic broken alphabetical storySort and docs overview ordering * docs(storybook): fix button docs adding p tags due to mdx2 * chore(storybook): bump to 7.0.10 * chore(storybook): apply patch on yarn install * chore(text): update stories for storybook 7 * fix(storybook): make sure globs don't include internal stories in production --------- Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import { Preview } from '@storybook/react';
|
|
import 'jquery';
|
|
|
|
import '../../../public/vendor/flot/jquery.flot.js';
|
|
import '../../../public/vendor/flot/jquery.flot.selection';
|
|
import '../../../public/vendor/flot/jquery.flot.time';
|
|
import '../../../public/vendor/flot/jquery.flot.stack';
|
|
import '../../../public/vendor/flot/jquery.flot.stackpercent';
|
|
import '../../../public/vendor/flot/jquery.flot.fillbelow';
|
|
import '../../../public/vendor/flot/jquery.flot.crosshair';
|
|
import '../../../public/vendor/flot/jquery.flot.dashes';
|
|
import '../../../public/vendor/flot/jquery.flot.gauge';
|
|
|
|
import { withTheme } from '../src/utils/storybook/withTheme';
|
|
import { ThemedDocsContainer } from '../src/utils/storybook/ThemedDocsContainer';
|
|
|
|
// @ts-ignore
|
|
import lightTheme from './grafana.light.scss';
|
|
// @ts-ignore
|
|
import darkTheme from './grafana.dark.scss';
|
|
import { GrafanaLight, GrafanaDark } from './storybookTheme';
|
|
|
|
const handleThemeChange = (theme: any) => {
|
|
if (theme !== 'light') {
|
|
lightTheme.unuse();
|
|
darkTheme.use();
|
|
} else {
|
|
darkTheme.unuse();
|
|
lightTheme.use();
|
|
}
|
|
};
|
|
|
|
const preview: Preview = {
|
|
decorators: [withTheme(handleThemeChange)],
|
|
parameters: {
|
|
actions: { argTypesRegex: '^on[A-Z].*' },
|
|
darkMode: {
|
|
dark: GrafanaDark,
|
|
light: GrafanaLight,
|
|
},
|
|
docs: {
|
|
container: ThemedDocsContainer,
|
|
},
|
|
knobs: {
|
|
disable: true,
|
|
},
|
|
layout: 'fullscreen',
|
|
options: {
|
|
// Sort stories first by Docs Overview, then alphabetically
|
|
// We should be able to use the builtin alphabetical sort, but is broken in SB 7.0
|
|
// https://github.com/storybookjs/storybook/issues/22470
|
|
storySort: (a, b) => {
|
|
if (a.title.startsWith('Docs Overview')) {
|
|
if (b.title.startsWith('Docs Overview')) {
|
|
return 0;
|
|
}
|
|
return -1;
|
|
} else if (b.title.startsWith('Docs Overview')) {
|
|
return 1;
|
|
}
|
|
return a.id === b.id ? 0 : a.id.localeCompare(b.id, undefined, { numeric: true });
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
export default preview;
|