diff --git a/src/middleware/updateURLMiddleware.js b/src/middleware/updateURLMiddleware.js index dce604a7..432b79ce 100644 --- a/src/middleware/updateURLMiddleware.js +++ b/src/middleware/updateURLMiddleware.js @@ -15,8 +15,12 @@ const updateURLMiddleware = (store) => { /************************************************************************ ************************************************************************* - 1. The state just changed. Clear, and then update, the URL. - 1a. We get the whole state tree to construct the url from + 1. Redux app state just changed. Clear URL, and then update it. + 1a. We get the whole state tree to construct the url! + 1b. But (see reducers/url.js) we try to centralize it because... + 1c. ...the back button / initial load case ('url changed' return above) + means that we have to listen for 'url changed' and construct state + from the browser ************************************************************************* ************************************************************************/ diff --git a/src/reducers/url.js b/src/reducers/url.js index 19a76e73..a8264b22 100644 --- a/src/reducers/url.js +++ b/src/reducers/url.js @@ -2,17 +2,21 @@ import uri from "urijs"; /************************************************************************ ************************************************************************* -# This is all of the state that will be stored in the URL query params. -# It is reasonably important it be kept in the same place, +1. This is all of the state that will be stored in the URL query params. +1a. It is reasonably important it be kept in the same place, because if initial load or back button etc, we'll hear about that and manually reconstruct the state from the url, overriding whatever we had. We could of course listen for the "url changed" type in another reducer, if this gets messy. +1b. The data structures used here are constrained as well, as urijs +needs to be able to parse them ************************************************************************* ************************************************************************/ const url = ( - state = {}, + state = { + selectedMetadata: {} + }, action ) => { switch (action.type) { @@ -26,7 +30,7 @@ const url = ( return state; } case "category changed": { - /* TODO catch categories here and store a representation of them */ + return state; } default: