08b7c9769a
* feat(#473): add positions metrics data provider * feat(#473) add positions stats * feat(#473) add positions stats * feat(#473): add positions stats * feat(#473): add positions stats * feat(#473): position metrics, test and refactoring * feat(#473): add unit tests to positions table * feat(#473): fix spelling, order positions by updated at desc * feat(#473): protect from division by 0 * feat(#473): fix trading positions e2e tests * feat(#473): fix e2e data mocks * feat(#473): post code review clean up
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
import './styles.scss';
|
|
import { ThemeContext } from '@vegaprotocol/react-helpers';
|
|
import { useEffect, useState } from 'react';
|
|
export const parameters = {
|
|
actions: { argTypesRegex: '^on[A-Z].*' },
|
|
backgrounds: { disable: true },
|
|
themes: {
|
|
default: 'dark',
|
|
list: [
|
|
{ name: 'dark', class: ['dark', 'bg-black'], color: '#000' },
|
|
{ name: 'light', class: '', color: '#FFF' },
|
|
],
|
|
},
|
|
};
|
|
|
|
export const decorators = [
|
|
(Story, context) => {
|
|
// storybook-addon-themes doesnt seem to provide the current selected
|
|
// theme in context, we need to provid it in JS as some components
|
|
// rely on it for rendering
|
|
const [theme, setTheme] = useState(context.parameters.themes.default);
|
|
|
|
useEffect(() => {
|
|
const observer = new MutationObserver((mutationList) => {
|
|
if (mutationList.length) {
|
|
const body = mutationList[0].target;
|
|
if (body.classList.contains('dark')) {
|
|
setTheme('dark');
|
|
} else {
|
|
setTheme('light');
|
|
}
|
|
}
|
|
});
|
|
|
|
observer.observe(document.body, { attributes: true });
|
|
|
|
return () => {
|
|
observer.disconnect();
|
|
};
|
|
}, []);
|
|
|
|
return (
|
|
<div style={{ width: '100%', height: 500 }}>
|
|
<ThemeContext.Provider value={theme}>
|
|
<Story />
|
|
</ThemeContext.Provider>
|
|
</div>
|
|
);
|
|
},
|
|
];
|