Untitled
unknown
plain_text
20 days ago
3.8 kB
0
Indexable
import { persistStore, persistReducer, createMigrate } from 'redux-persist'; import createSagaMiddleware from 'redux-saga'; import reducers from './reducers'; import rootSaga from './saga'; import { createTransform } from 'redux-persist'; import { TYPE_PRICE_PNL } from 'app/screens/futures_onus/constants/type'; import { TYPE_SORT_ASSETS } from 'app/screens/futures_onus_select_assets/utils'; import { mmkvStoragePersist } from 'app/store/local'; import { configureStore } from '@reduxjs/toolkit'; const sagaMiddleware = createSagaMiddleware(); let persistedReducer = null; const versionMigrations = 44; const migrations = { 0: state => { // migration clear out device state return { ...state, }; }, [versionMigrations]: state => { // migration to keep only device state return { ...state, setting_futures: { ...state.setting_futures, type: 'pro', typeChart: 'original', confirmPosition: false, //xác nhận mở vị thế confirmCloseAll: false, //xác nhận đóng tất cả pushNotiLiquidation: true, //thông báo liquidation isGuideLite: true, typePricePnl: TYPE_PRICE_PNL.BEST_PRICE, showPnlWithFee: false, indexCategory: 0, valueSort: TYPE_SORT_ASSETS.PAIR_VOLUME_UP, showTooltipFutures: false, }, }; }, }; const SetTransform = createTransform( // transform state on its way to being serialized and persisted. (inboundState, key) => { if (key === 'invest') { return { keywordsRecent: inboundState.keywordsRecent, setting: inboundState.setting, watchlist: [], staking: null, creditLine: null, }; } return inboundState; // convert mySet to an Array. }, // transform state being rehydrated (outboundState, key) => { // convert mySet back to a Set. return outboundState; }, // define which reducers this transform gets called for. { whitelist: [ 'auth', 'locale', 'localDevices', 'setting', 'secretKeyByUsers', 'usersRegister', 'config', 'invest', 'setting_chart', 'chart_futures', 'token_futures', 'usersPaymentMethod', 'setting_futures', 'exchange_info', 'symbol_focus', 'user_futures', 'userPaymentSelected', 'bankToBuyVndc', 'dataForVipLevel', 'exchange_info_spot', 'user_spot', 'chart_spot', 'setting_spot', 'showUpRate', 'listDevice', 'pairConfigExchangeAMM', ], }, ); persistedReducer = persistReducer( { key: 'root', storage: mmkvStoragePersist, version: versionMigrations, whitelist: [ 'auth', 'locale', 'theme', 'localDevices', 'setting', 'secretKeyByUsers', 'usersRegister', 'config', 'invest', 'contactsRecent', 'setting_chart', 'chart_futures', 'token_futures', 'usersPaymentMethod', 'setting_futures', 'exchange_info', 'symbol_focus', 'user_futures', 'userPaymentSelected', 'bankToBuyVndc', 'dataForVipLevel', 'exchange_info_spot', 'user_spot', 'chart_spot', 'setting_spot', 'showUpRate', 'listDevice', 'pairConfigExchangeAMM', ], transforms: [SetTransform], blacklist: ['requests'], migrate: createMigrate(migrations), }, reducers, ); export const store = configureStore({ reducer: persistedReducer, middleware: getDefaultMiddleware => getDefaultMiddleware({ serializableCheck: false, // Tắt kiểm tra serializable nếu redux-persist gây lỗi }).concat(sagaMiddleware), }); sagaMiddleware.run(rootSaga); export const persistor = persistStore(store);
Editor is loading...
Leave a Comment