Skip to content

Commit dea32f1

Browse files
committed
Create separate root reducer for Storybook etc.
1 parent 32263cd commit dea32f1

File tree

3 files changed

+35
-19
lines changed

3 files changed

+35
-19
lines changed

react-native-expo/.storybook/preview.tsx

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
1+
import { configureStore } from '@reduxjs/toolkit';
12
import { DripsyProvider } from 'dripsy';
23
import dripsyTheme from '../utils/dripsyTheme';
34
import PraxI18nProvider from '../components/PraxI18nProvider';
5+
import rootReducer from '../store/rootReducer';
46
import type { Preview } from '@storybook/react';
57
import React from 'react';
6-
import ReduxProvider from '../components/ReduxProvider';
8+
79
/**
810
* Ideally, we'd use `<FontProvider />` in the root decorator to provide fonts
911
* to Storybook. But that caused weird import issues. So for now, we'll just add
1012
* an `@font-face` CSS file to make our fonts work.
1113
*/
1214
import './fonts.css';
15+
import { Provider } from 'react-redux';
16+
17+
const mockStore = configureStore({ reducer: rootReducer });
1318

1419
const preview: Preview = {
1520
decorators: [
1621
Story => (
17-
<ReduxProvider>
18-
<PraxI18nProvider>
22+
<PraxI18nProvider>
23+
<Provider store={mockStore}>
1924
<DripsyProvider theme={dripsyTheme}>
2025
<Story />
2126
</DripsyProvider>
22-
</PraxI18nProvider>
23-
</ReduxProvider>
27+
</Provider>
28+
</PraxI18nProvider>
2429
),
2530
],
2631
parameters: {

react-native-expo/store/index.ts

+2-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,8 @@
11
import createSecureStore from 'redux-persist-expo-securestore';
22
import { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE, persistReducer } from 'redux-persist';
3-
import { combineReducers, configureStore } from '@reduxjs/toolkit';
3+
import { configureStore } from '@reduxjs/toolkit';
44

5-
import balances from './balances';
6-
import depositFlow from './depositFlow';
7-
import portfolioScreen from './portfolioScreen';
8-
import secureStore from './secureStore';
9-
import transactions from './transactions';
10-
11-
const rootReducer = combineReducers({
12-
balances,
13-
depositFlow,
14-
portfolioScreen,
15-
secureStore,
16-
transactions,
17-
});
5+
import rootReducer from './rootReducer';
186

197
const store = configureStore({
208
reducer: persistReducer(
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { combineReducers } from '@reduxjs/toolkit';
2+
3+
import balances from './balances';
4+
import depositFlow from './depositFlow';
5+
import portfolioScreen from './portfolioScreen';
6+
import secureStore from './secureStore';
7+
import transactions from './transactions';
8+
9+
/**
10+
* The root reducer for our Redux store. Exported as its own constant (rather
11+
* than defining it inline in the store) so that it can be used independently of
12+
* the app store in settings like tests and Storybook, which don't work well
13+
* with e.g., `redux-persist`.
14+
*/
15+
const rootReducer = combineReducers({
16+
balances,
17+
depositFlow,
18+
portfolioScreen,
19+
secureStore,
20+
transactions,
21+
});
22+
23+
export default rootReducer;

0 commit comments

Comments
 (0)