mirror of
https://github.com/apache/superset.git
synced 2026-04-07 10:31:50 +00:00
feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor (#31590)
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com> Co-authored-by: Diego Pucci <diegopucci.me@gmail.com> Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me> Co-authored-by: Geido <60598000+geido@users.noreply.github.com> Co-authored-by: Alexandru Soare <37236580+alexandrusoare@users.noreply.github.com> Co-authored-by: Damian Pendrak <dpendrak@gmail.com> Co-authored-by: Pius Iniobong <67148161+payose@users.noreply.github.com> Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com> Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
This commit is contained in:
committed by
GitHub
parent
2cc1ef88c8
commit
dd129fa403
@@ -17,31 +17,75 @@
|
||||
* under the License.
|
||||
*/
|
||||
import { withJsx } from '@mihkeleidast/storybook-addon-source';
|
||||
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
|
||||
import { AntdThemeProvider } from '../src/components/AntdThemeProvider';
|
||||
import { themeObject, css, exampleThemes } from '@superset-ui/core';
|
||||
import { combineReducers, createStore, applyMiddleware, compose } from 'redux';
|
||||
import thunk from 'redux-thunk';
|
||||
import { Provider } from 'react-redux';
|
||||
import reducerIndex from 'spec/helpers/reducerIndex';
|
||||
import { GlobalStyles } from '../src/GlobalStyles';
|
||||
import { Global } from '@emotion/react';
|
||||
import { App, Layout, Space, Content } from 'antd';
|
||||
|
||||
import 'src/theme.ts';
|
||||
import './storybook.css';
|
||||
|
||||
export const GlobalStylesOverrides = () => (
|
||||
<Global
|
||||
styles={css`
|
||||
html,
|
||||
body,
|
||||
#storybook-root {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
min-height: 100vh !important;
|
||||
}
|
||||
|
||||
.ant-app {
|
||||
min-height: 100vh !important;
|
||||
}
|
||||
`}
|
||||
/>
|
||||
);
|
||||
|
||||
const store = createStore(
|
||||
combineReducers(reducerIndex),
|
||||
{},
|
||||
compose(applyMiddleware(thunk)),
|
||||
);
|
||||
|
||||
const themeDecorator = Story => (
|
||||
<ThemeProvider theme={supersetTheme}>
|
||||
<AntdThemeProvider>
|
||||
<GlobalStyles />
|
||||
<Story />
|
||||
</AntdThemeProvider>
|
||||
</ThemeProvider>
|
||||
);
|
||||
export const globalTypes = {
|
||||
theme: {
|
||||
name: 'Theme',
|
||||
description: 'Global theme for components',
|
||||
defaultValue: 'superset',
|
||||
toolbar: {
|
||||
icon: 'paintbrush',
|
||||
items: Object.keys(exampleThemes),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const themeDecorator = (Story, context) => {
|
||||
const themeKey = context.globals.theme || 'superset';
|
||||
themeObject.setConfig(exampleThemes[themeKey]);
|
||||
|
||||
return (
|
||||
<themeObject.SupersetThemeProvider>
|
||||
<App>
|
||||
<GlobalStylesOverrides />
|
||||
<Layout
|
||||
style={{
|
||||
minHeight: '100vh',
|
||||
width: '100%',
|
||||
padding: 24,
|
||||
backgroundColor: themeObject.theme.colorBgBase,
|
||||
}}
|
||||
>
|
||||
<Story {...context} />
|
||||
</Layout>
|
||||
</App>
|
||||
</themeObject.SupersetThemeProvider>
|
||||
);
|
||||
};
|
||||
|
||||
const providerDecorator = Story => (
|
||||
<Provider store={store}>
|
||||
@@ -81,5 +125,5 @@ export const parameters = {
|
||||
],
|
||||
},
|
||||
},
|
||||
controls: { expanded: true, sort: 'alpha' },
|
||||
controls: { expanded: true, sort: 'alpha', disableSaveFromUI: true },
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user