diff --git a/package.json b/package.json index 6d1635f..9efb425 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-contextual", - "version": "5.0.1", + "version": "5.0.2", "description": "store and hoc patterns for react 16s new context model", "main": "dist/react-contextual", "module": "dist/react-contextual.es", diff --git a/src/store.js b/src/store.js index c09517b..1b61f3e 100644 --- a/src/store.js +++ b/src/store.js @@ -9,6 +9,7 @@ import ProviderContext, { export function createStore(state, id = uuid()) { const result = { id, + initialState: { ...state }, state, subscriptions: new Set(), context: createNamedContext(id), @@ -60,7 +61,7 @@ export class Provider extends React.PureComponent { if (!store) this.store.context = id ? createNamedContext(id) : ProviderContext // Overwrite the functions in store.state to update the state of this Provider - const actions = getStateUpdateFunctions(this.store.state) + const actions = getStateUpdateFunctions(this.store.initialState) Object.assign( this.store.state, Object.keys(actions).reduce( diff --git a/tests/__snapshots__/store.js.snap b/tests/__snapshots__/store.js.snap index 2180f6f..70fd001 100644 --- a/tests/__snapshots__/store.js.snap +++ b/tests/__snapshots__/store.js.snap @@ -130,6 +130,12 @@ exports[`external store 1`] = ` "destroy": [Function], "getState": [Function], "id": "externalTest", + "initialState": Object { + "async": [Function], + "count": 0, + "functional": [Function], + "simple": [Function], + }, "state": Object { "async": [Function], "count": 0, @@ -182,6 +188,12 @@ exports[`external store 2`] = ` "destroy": [Function], "getState": [Function], "id": "externalTest", + "initialState": Object { + "async": [Function], + "count": 0, + "functional": [Function], + "simple": [Function], + }, "state": Object { "async": [Function], "count": 2, @@ -234,6 +246,9 @@ exports[`external store, setState 1`] = ` "destroy": [Function], "getState": [Function], "id": "externalTest2", + "initialState": Object { + "count": 0, + }, "state": Object { "count": 0, "setState": [Function], @@ -280,6 +295,9 @@ exports[`external store, setState 2`] = ` "destroy": [Function], "getState": [Function], "id": "externalTest2", + "initialState": Object { + "count": 0, + }, "state": Object { "count": 1, "setState": [Function], diff --git a/tests/__snapshots__/subscribe.js.snap b/tests/__snapshots__/subscribe.js.snap index d50a4df..cd0254c 100644 --- a/tests/__snapshots__/subscribe.js.snap +++ b/tests/__snapshots__/subscribe.js.snap @@ -908,6 +908,9 @@ exports[`subscribe(store) 1`] = ` "destroy": [Function], "getState": [Function], "id": "testStore", + "initialState": Object { + "message": "success!", + }, "state": Object { "message": "success!", "setState": [Function], @@ -946,6 +949,9 @@ exports[`subscribe(store) 1`] = ` "destroy": [Function], "getState": [Function], "id": "testStore", + "initialState": Object { + "message": "success!", + }, "state": Object { "message": "success!", "setState": [Function], @@ -988,6 +994,9 @@ exports[`subscribe(store, "state") 1`] = ` "destroy": [Function], "getState": [Function], "id": "testStore", + "initialState": Object { + "message": "success!", + }, "state": Object { "message": "success!", "setState": [Function], @@ -1030,6 +1039,9 @@ exports[`subscribe(store, "state") 1`] = ` "destroy": [Function], "getState": [Function], "id": "testStore", + "initialState": Object { + "message": "success!", + }, "state": Object { "message": "success!", "setState": [Function], @@ -1076,6 +1088,9 @@ exports[`subscribe(store, context => context) 1`] = ` "destroy": [Function], "getState": [Function], "id": "testStore", + "initialState": Object { + "message": "success!", + }, "state": Object { "message": "success!", "setState": [Function], @@ -1114,6 +1129,9 @@ exports[`subscribe(store, context => context) 1`] = ` "destroy": [Function], "getState": [Function], "id": "testStore", + "initialState": Object { + "message": "success!", + }, "state": Object { "message": "success!", "setState": [Function],