Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if(state.snackbar.messages.length > 0) {
// Pop the first message off the front of the queue
const message = state.snackbar.messages.shift()
state = dotProp.set(state, `snackbar.messages`, state.snackbar.messages)
state = dotProp.set(state, `snackbar.active`, message)
return dotProp.set(state, `snackbar.open`, true)
} else {
state = dotProp.set(state, `snackbar.active`, {message: ""})
return dotProp.set(state, `snackbar.open`, false)
}
case RECEIVE_RESET_MAP_POSITION:
case RECEIVE_SET_MAP_POSITION:
case RECEIVE_MAP_MOVE_END:
return dotProp.set(state, `mapPosition`, action.position)
case RECEIVE_TOGGLE_MODAL_STATE:
return dotProp.toggle(state, `dialogs.${action.modalId}`)
case RECEIVE_UPDATE_DATA_INSPECTOR:
return dotProp.set(state, 'dataInspector', [...action.dataRows, ...state.dataInspector])
case RECEIVE_RESET_DATA_INSPECTOR:
return dotProp.set(state, 'dataInspector', [])
case RECEIVE_UPDATE_DATA_DISCOVERY:
return dotProp.set(state, 'dataDiscovery', action.dataColumns)
case RECEIVE_RESET_DATA_DISCOVERY:
return dotProp.set(state, 'dataDiscovery', [])
case RECEIVE_BEGIN_PUBLISH_LAYER:
case RECEIVE_BEGIN_RESTORE_MASTER_LAYER:
return dotProp.set(state, "layerForm.submitting", true)
case RECEIVE_TOGGLE_LAYERFORM_SUBMITTING:
return dotProp.toggle(state, "layerForm.submitting")
case RECEIVE_CHIP_VALUES:
return dotProp.set(state, "layerForm.chipValues", action.chipValues)
case RECEIVE_LAYER_QUERY_SUMMARY:
switch (action.type) {
case RECEIVE_REQUEST_BEGIN_FETCH:
return dotProp.set(state, "requestsInProgress", ++state.requestsInProgress)
case RECEIVE_REQUEST_FINISH_FETCH:
return dotProp.set(state, "requestsInProgress", --state.requestsInProgress)
case REQUEST_USER:
case REQUEST_MAPS:
case REQUEST_DATA_INFO:
case REQUEST_COLOUR_INFO:
return dotProp.set(state, "loading", true)
case RECEIVE_APP_LOADED:
return dotProp.set(state, "loading", false)
case RECEIVE_APP_PREVIOUS_PATH:
return dotProp.set(state, "previousPath", action.previousPath)
case RECEIVE_TOGGLE_SIDEBAR_STATE:
return dotProp.toggle(state, "sidebarOpen")
case RECEIVE_TOGGLE_DEBUG_MODE:
return dotProp.toggle(state, "debug")
case RECEIVE_NEW_SNACKBAR_MESSAGE:
state.snackbar.messages.push(action.message)
return dotProp.set(state, `snackbar.messages`, state.snackbar.messages)
case RECEIVE_START_SNACKBAR_IF_NEEDED:
if(state.snackbar.open === false && state.snackbar.messages.length > 0) {
// Pop the first message off the front of the queue
const message = state.snackbar.messages.shift()
state = dotProp.set(state, `snackbar.messages`, state.snackbar.messages)
state = dotProp.set(state, `snackbar.active`, message)
state = dotProp.set(state, `snackbar.open`, true)
}
return state
case RECEIVE_ITERATE_SNACKBAR:
if(state.snackbar.messages.length > 0) {
return dotProp.set(state, "requestsInProgress", ++state.requestsInProgress)
case RECEIVE_REQUEST_FINISH_FETCH:
return dotProp.set(state, "requestsInProgress", --state.requestsInProgress)
case REQUEST_USER:
case REQUEST_MAPS:
case REQUEST_DATA_INFO:
case REQUEST_COLOUR_INFO:
return dotProp.set(state, "loading", true)
case RECEIVE_APP_LOADED:
return dotProp.set(state, "loading", false)
case RECEIVE_APP_PREVIOUS_PATH:
return dotProp.set(state, "previousPath", action.previousPath)
case RECEIVE_TOGGLE_SIDEBAR_STATE:
return dotProp.toggle(state, "sidebarOpen")
case RECEIVE_TOGGLE_DEBUG_MODE:
return dotProp.toggle(state, "debug")
case RECEIVE_NEW_SNACKBAR_MESSAGE:
state.snackbar.messages.push(action.message)
return dotProp.set(state, `snackbar.messages`, state.snackbar.messages)
case RECEIVE_START_SNACKBAR_IF_NEEDED:
if(state.snackbar.open === false && state.snackbar.messages.length > 0) {
// Pop the first message off the front of the queue
const message = state.snackbar.messages.shift()
state = dotProp.set(state, `snackbar.messages`, state.snackbar.messages)
state = dotProp.set(state, `snackbar.active`, message)
state = dotProp.set(state, `snackbar.open`, true)
}
return state
case RECEIVE_ITERATE_SNACKBAR:
if(state.snackbar.messages.length > 0) {
// Pop the first message off the front of the queue
const message = state.snackbar.messages.shift()
return dotProp.set(state, `mapPosition`, action.position)
case RECEIVE_TOGGLE_MODAL_STATE:
return dotProp.toggle(state, `dialogs.${action.modalId}`)
case RECEIVE_UPDATE_DATA_INSPECTOR:
return dotProp.set(state, 'dataInspector', [...action.dataRows, ...state.dataInspector])
case RECEIVE_RESET_DATA_INSPECTOR:
return dotProp.set(state, 'dataInspector', [])
case RECEIVE_UPDATE_DATA_DISCOVERY:
return dotProp.set(state, 'dataDiscovery', action.dataColumns)
case RECEIVE_RESET_DATA_DISCOVERY:
return dotProp.set(state, 'dataDiscovery', [])
case RECEIVE_BEGIN_PUBLISH_LAYER:
case RECEIVE_BEGIN_RESTORE_MASTER_LAYER:
return dotProp.set(state, "layerForm.submitting", true)
case RECEIVE_TOGGLE_LAYERFORM_SUBMITTING:
return dotProp.toggle(state, "layerForm.submitting")
case RECEIVE_CHIP_VALUES:
return dotProp.set(state, "layerForm.chipValues", action.chipValues)
case RECEIVE_LAYER_QUERY_SUMMARY:
return dotProp.set(state, `layerForm.layerQuerySummary.${action.layerHash}`, action.stats)
case RECEIVE_LEGENDPEEK_LABEL:
return dotProp.set(state, `layerUINav.legendpeek.${action.mapId + "-" + action.layerId}`, action.labelText)
case RECEIVE_SET_USER_MENU_STATE:
return dotProp.set(state, 'userMenuState', action.open)
default:
return state;
}
}
...state,
[action.map.id]: action.map
}
case DELETE_MAP:
let { [action.mapId]: deletedItem, ...rest } = state
return rest
case RECEIVE_UPDATED_LAYER:
return dotProp.set(state, `${action.mapId}.json.layers.${action.layerId}`, action.layer)
case RECEIVE_DELETE_MAP_LAYER:
return dotProp.delete(state, `${action.mapId}.json.layers.${action.layerId}`)
case RECEIVE_CLONE_MAP_LAYER:
let layerCopy = JSON.parse(JSON.stringify(state[action.mapId].json.layers[action.layerId]))
layerCopy.name += " Copy"
return dotProp.set(state, `${action.mapId}.json.layers`, [...state[action.mapId].json.layers, layerCopy])
case CHANGE_LAYER_VISIBILITY:
return dotProp.toggle(state, `${action.mapId}.json.layers.${action.layerId}.visible`)
case CHANGE_LAYER_PROPERTY:
return dotProp.set(state, `${action.mapId}.json.layers.${action.layerId}.${action.layerPropertyPath}`, action.layerPropertyValue)
case MERGE_LAYER_PROPERTIES:
const newLayer = merge(dotProp.get(state, `${action.mapId}.json.layers.${action.layerId}`), action.layer)
return dotProp.set(state, `${action.mapId}.json.layers.${action.layerId}`, newLayer)
case RECEIVE_SET_MAP_ORIGIN:
return dotProp.set(state, `${action.mapId}.json.map_defaults`, {
lat: action.position.center.lat,
lon: action.position.center.lon,
zoom: action.position.zoom,
})
case COMPILED_LAYER_STYLE:
return dotProp.set(state, `${action.mapId}.json.layers.${action.layerId}.olStyle`, action.olStyle)
case CHANGE_MAP_SHARING:
return dotProp.set(state, `${action.mapId}.shared`, action.shared)
default:
export default function reducer(state = initialState, action: IAction) {
let requestsInProgress = dotProp.get(state, "requestsInProgress")
switch (action.type) {
case LOADING:
return dotProp.set(state, "loading", true)
case LOADED:
return dotProp.set(state, "loading", false)
case BEGIN_FETCH:
return dotProp.set(state, "requestsInProgress", ++requestsInProgress)
case FINISH_FETCH:
return dotProp.set(state, "requestsInProgress", --requestsInProgress)
case SET_LAST_PAGE:
return dotProp.set(state, "previousPath", action.previousPath)
case TOGGLE_SIDEBAR:
return dotProp.toggle(state, "sidebarOpen")
case TOGGLE_MODAL:
const modals = dotProp.get(state, "modals")
modals.set(action.modalId, !modals.get(action.modalId))
return dotProp.set(state, "modals", modals)
case TOGGLE_USER_MENU:
return dotProp.set(state, "userMenuState", action.open)
case SET_ACTIVE_COMPONENT:
return dotProp.set(state, "activeContentComponent", action.contentComponent)
default:
return state
}
}
zoom: action.position!.zoom,
})
case SET_SHARING:
return dotProp.set(state, `${action.mapId}.shared`, action.shared)
case DELETE_MAP:
let { [action.mapId!]: deletedItem, ...rest } = state
return rest
case UPDATE_LAYER:
case ADD_LAYER:
return dotProp.set(state, `${action.mapId}.json.layers.${action.layerId}`, action.layer)
case CLONE_MAP_LAYER:
let layerCopy = JSON.parse(JSON.stringify(state[action.mapId!].json.layers[action.layerId!]))
layerCopy.name += " Copy"
return dotProp.set(state, `${action.mapId}.json.layers`, [...state[action.mapId!].json.layers, layerCopy])
case SET_LAYER_VISIBILITY:
return dotProp.toggle(state, `${action.mapId}.json.layers.${action.layerId}.visible`)
case DELETE_LAYER:
return dotProp.delete(state, `${action.mapId}.json.layers.${action.layerId}`)
case CHANGE_LAYER_PROPERTY:
return dotProp.set(
state,
`${action.mapId}.json.layers.${action.layerId}.${action.layerPropertyPath}`,
action.layerPropertyValue
)
case ADD_COLUMN_TO_SELECTION:
const selectedColumns: Array =
dotProp.get(state, `${action.mapId}.json.layers.${action.layerId}.selectedColumns`) || []
if (action.selectedColumn && selectedColumns.includes(action.selectedColumn) === false) {
return dotProp.set(state, `${action.mapId}.json.layers.${action.layerId}.selectedColumns`, [
...selectedColumns,
action.selectedColumn,
export default function reducer(state = initialState, action: IAction) {
switch (action.type) {
case TOGGLE_DEBUG_MODE:
return dotProp.toggle(state, "debug")
case SAVE_POSITION:
case RESTORE_DEFAULT_POSITION:
return dotProp.set(state, `position`, action.position)
case LOAD_HIGHLIGHTED_FEATURES:
return dotProp.set(state, "highlightedFeatures", action.featurGids)
default:
return state
}
}