diff options
Diffstat (limited to 'app/javascript/flavours/glitch/actions/store.js')
-rw-r--r-- | app/javascript/flavours/glitch/actions/store.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/actions/store.js b/app/javascript/flavours/glitch/actions/store.js new file mode 100644 index 000000000..2dd94a998 --- /dev/null +++ b/app/javascript/flavours/glitch/actions/store.js @@ -0,0 +1,22 @@ +import { Iterable, fromJS } from 'immutable'; +import { hydrateCompose } from './compose'; + +export const STORE_HYDRATE = 'STORE_HYDRATE'; +export const STORE_HYDRATE_LAZY = 'STORE_HYDRATE_LAZY'; + +const convertState = rawState => + fromJS(rawState, (k, v) => + Iterable.isIndexed(v) ? v.toList() : v.toMap()); + +export function hydrateStore(rawState) { + return dispatch => { + const state = convertState(rawState); + + dispatch({ + type: STORE_HYDRATE, + state, + }); + + dispatch(hydrateCompose()); + }; +}; |