Skip to content

Commit

Permalink
fix(NA): Fixing error when no query was present.
Browse files Browse the repository at this point in the history
  • Loading branch information
Migsar Navarro committed Aug 5, 2019
1 parent b651b56 commit fbd067b
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 27 deletions.
4 changes: 2 additions & 2 deletions src/modules/map/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as actions from './actions';
import * as reducers from './reducers';
import initialState from './initial-state';
import sagas, { restoreState } from './sagas';
import sagas, { restoreMapState } from './sagas';

import queryState from 'utils/query-state';

Expand All @@ -27,7 +27,7 @@ queryState.add({
selector: state => ({ basemap: state.map.basemap })
},
decode: {
trigger: restoreState
trigger: restoreMapState
}
});

Expand Down
11 changes: 7 additions & 4 deletions src/modules/map/sagas.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,18 @@ function* flyToCurrentLocation() {

// Part of query state, not normal flow.
// View ./index.js queryState.add for more info.
export function * restoreState() {
export function * restoreMapState() {
/**
* A regular selector, it could be on a selectors file with reselect
* or better yet, be created automatically by the package based on registered namespace info.
*/
const basemapSelector = state => state.router.query.map.basemap;
const basemapSelector = state => (state.router.query
&& state.router.query.map
&& state.router.query.map.basemap) || null;
const basemap = yield select(basemapSelector);

yield(put(setBasemap(basemap)));
if (basemap) {
yield(put(setBasemap(basemap)));
}
}

export default function* pages() {
Expand Down
4 changes: 2 additions & 2 deletions src/modules/widgets/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as actions from './actions';
import * as reducers from './reducers';
import sagas, { restoreState } from './sagas';
import sagas, { restoreWidgetsState } from './sagas';
import initialState from './initial-state';

import queryState from 'utils/query-state';
Expand Down Expand Up @@ -48,7 +48,7 @@ queryState.add({
after: [
actions.fetchSucceeded
],
trigger: restoreState
trigger: restoreWidgetsState
}
});

Expand Down
42 changes: 23 additions & 19 deletions src/modules/widgets/sagas.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,36 +30,40 @@ export function* getWidgets() {

// Part of query state, not normal flow.
// View ./index.js queryState.add for more info.
export function * restoreState() {
export function * restoreWidgetsState() {
/**
* A regular selector, it could be on a selectors file with reselect
* or better yet, be created automatically by the package based on registered namespace info.
*/
function * handler () {
const widgetsSelector = state => ({
urlWidgets: state.router.query.widgets,
urlWidgets: (state.router.query && state.router.query.widgets) || null,
stateWidgets: state.widgets.list
});
const {urlWidgets, stateWidgets} = yield select(widgetsSelector);
const updatedWidgets = stateWidgets.map(widget => {
const updatedWidget = Object.assign({}, widget);

if (urlWidgets[widget.slug]) {
const update = urlWidgets[widget.slug];

if (update.isActive) {
updatedWidget.isActive = true;
}
const {urlWidgets, stateWidgets} = yield select(widgetsSelector);

if (update.isCollapsed) {
updatedWidget.isCollapsed = true;
if(urlWidgets) {
const updatedWidgets = stateWidgets.map(widget => {
const updatedWidget = Object.assign({}, widget);

if (urlWidgets[widget.slug]) {
const update = urlWidgets[widget.slug];

if (update.isActive) {
updatedWidget.isActive = true;
}

if (update.isCollapsed) {
updatedWidget.isCollapsed = true;
}
}
}

return updatedWidget;
});

yield put(fetchSucceeded(updatedWidgets));

return updatedWidget;
});

yield put(fetchSucceeded(updatedWidgets));
}
}

yield takeLeading(fetchSucceeded().type, handler);
Expand Down

0 comments on commit fbd067b

Please # to comment.