Skip to content

Commit

Permalink
[Bug] Correctly copy over field.filterProps when merging multiple fil…
Browse files Browse the repository at this point in the history
…ters (#884)

Signed-off-by: Shan He <heshan0131@gmail.com>
  • Loading branch information
heshan0131 committed Jan 3, 2020
1 parent 858e546 commit bf8b6f3
Show file tree
Hide file tree
Showing 9 changed files with 752 additions and 201 deletions.
7 changes: 4 additions & 3 deletions src/reducers/vis-state-merger.js
Expand Up @@ -61,8 +61,9 @@ export function mergeFilters(state, filtersToMerge) {

// all datasetIds in filter must be present the state datasets
const {filter: validatedFilter, applyToDatasets, augmentedDatasets} = datasetIds.reduce((acc, datasetId) => {
const dataset = datasets[datasetId];
const {filter: updatedFilter, dataset: updatedDataset} = validateFilterWithData(dataset, filter);
const dataset = updatedDatasets[datasetId];
const {filter: updatedFilter, dataset: updatedDataset} =
validateFilterWithData(acc.augmentedDatasets[datasetId] || dataset, filter);

if (updatedFilter) {
return {
Expand All @@ -80,7 +81,7 @@ export function mergeFilters(state, filtersToMerge) {

augmentedDatasets: {
...acc.augmentedDatasets,
[datasetId]: updatedDataset || dataset
[datasetId]: updatedDataset
}
};
}
Expand Down
36 changes: 27 additions & 9 deletions src/schemas/schema-manager.js
Expand Up @@ -26,6 +26,7 @@ import mapStyleSchema from './map-style-schema';
import mapStateSchema from './map-state-schema';

import {CURRENT_VERSION, VERSIONS} from './versions';
import {isPlainObject} from 'utils/utils';

const REDUCER_SCHEMAS = {
visState: visStateSchema,
Expand Down Expand Up @@ -81,10 +82,29 @@ class KeplerGLSchema {
};
}

/**
* Load saved map, argument can be (datasets, config) or ({datasets, config})
* @param {Object|Array<Object>} savedDatasets
* @param {Object} savedConfig
*/
load(savedDatasets, savedConfig) {
// if pass dataset and config in as a single object
if (
arguments.length === 1 &&
isPlainObject(arguments[0]) &&
(Array.isArray(arguments[0].datasets) ||
isPlainObject(arguments[0].config))
) {
return this.load(arguments[0].datasets, arguments[0].config);
}

return {
datasets: this.parseSavedData(savedDatasets),
config: savedConfig ? this.parseSavedConfig(savedConfig) : undefined
...(Array.isArray(savedDatasets)
? {datasets: this.parseSavedData(savedDatasets)}
: {}),
...(savedConfig
? {config: this.parseSavedConfig(savedConfig)}
: {})
};
}

Expand Down Expand Up @@ -164,13 +184,11 @@ class KeplerGLSchema {

return Object.keys(config).reduce(
(accu, key) => ({
...accu,
...(key in this._reducerSchemas
? this._reducerSchemas[key][validVersion].load(
config[key]
)
: {})
}),
...accu,
...(key in this._reducerSchemas
? this._reducerSchemas[key][validVersion].load(config[key])
: {})
}),
{}
);
}
Expand Down
1 change: 0 additions & 1 deletion src/utils/filter-utils.js
Expand Up @@ -798,7 +798,6 @@ export function mergeFilterDomainStep(filter, filterProps) {
return {
...newFilter,
step
// step: Math.min(filter.step, filterProps.step)
};
case ALL_FIELD_TYPES.real:
case ALL_FIELD_TYPES.integer:
Expand Down

0 comments on commit bf8b6f3

Please sign in to comment.