Skip to content
Snippets Groups Projects
preview.js 1.67 KiB
Newer Older
import { configure, addDecorator } from '@storybook/react'
import React from 'react'
import { createStore } from 'redux'
import { Provider } from 'react-redux'
import { Router } from 'react-router-dom'
import { createBrowserHistory } from 'history'
import intl from 'react-intl-universal'
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles'
import deepPurple from '@material-ui/core/colors/deepPurple'
import localeEN from '../src/client/translations/sampo/localeEN'
import localeFI from '../src/client/translations/sampo/localeFI'
import localeSV from '../src/client/translations/sampo/localeSV'
import reducer from '../src/client/reducers'
import '../src/client/index.css'

const loaderFn = () => {
  const allExports = [require('./welcome.stories.js')];
  const req = require.context('../src/client/components', true, /\.stories\.js$/);
  req.keys().forEach(fname => allExports.push(req(fname)));
  return allExports;
};

configure(loaderFn, module);

const store = createStore(reducer)

intl.init({
  currentLocale: 'en',
  locales: {
    en: localeEN,
    fi: localeFI,
    sv: localeSV
  }
})

const theme = createMuiTheme({
  palette: {
    primary: deepPurple
  },
  overrides: {
    MuiTooltip: {
      tooltip: {
        fontSize: '1 rem'
      }
    },
    MuiExpansionPanel: {
      root: {
        '&$expanded': {
          marginTop: 8,
          marginBottom: 8
        }
      }
    },
    MuiButton: {
      endIcon: {
        marginLeft: 0
      }
    }
  }
})

addDecorator(Story => (
  <Provider store={store}>
    <Router history={createBrowserHistory()}>
      <MuiThemeProvider theme={theme}>
        <Story />
      </MuiThemeProvider>
    </Router>
  </Provider>
))