Skip to content

Record rehydrating as a map #21

Open
@eamonpenland

Description

@eamonpenland

Hey having trouble to get my immutable records to rehydrate as a Record. Here is my code.

import {AsyncStorage} from 'react-native';
import createSagaMiddleware from 'redux-saga';
import devTools from 'remote-redux-devtools';
import {createStore, applyMiddleware, compose} from 'redux';
import thunk from 'redux-thunk';
import {persistStore, autoRehydrate} from 'redux-persist';
import reducer from './reducers';
import promise from './promise';
import rootSaga from 'Sagas';
import immutableTransform from 'redux-persist-transform-immutable'
import { Record } from 'immutable';

const sagaMiddleware = createSagaMiddleware()

const logger = store => next => action => {
  console.log('dispatching', action)
  let result = next(action)
  console.log('next state', store.getState())
  return result
}

const settings = Record({
    timeZoneAuto: false,
    tzName: '',
    defaultDisplay: '',
}, 'settings');

export default configureStore = (onCompletion) => {
  const enhancer = compose(applyMiddleware(promise, sagaMiddleware, logger), devTools({name: 'Supervisor', realtime: true}));

  const store = createStore(reducer, enhancer, autoRehydrate({log: true}));

  persistStore(
      store,
      {
          storage: AsyncStorage,
          transforms: [immutableTransform({records: [settings]})]
      },
      onCompletion
  );

  store.runSaga = sagaMiddleware.run(rootSaga);

  return store;
}

Any ideas?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions