Skip to content

Commit b73e476

Browse files
committed
fix mapState saving and filter reload
Signed-off-by: Shan He <[email protected]>
1 parent 083a2c4 commit b73e476

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ open tableau workbook (get it from public folder of this repo)
6464
- NOTE: if you want to enable remote debugging, use this command in terminal to open tableau
6565

6666
```sh
67-
open /Applications/Tableau\ Desktop\ 2018\.3.app --args --remote-debugging-port=8696
67+
open /Applications/Tableau\ Desktop\ 2019\.1.app --args --remote-debugging-port=8696
6868
```
6969

7070
A debug session will be available in browser http://localhost:8696

src/components/KeplerGL/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,14 @@ class KeplerGlComponent extends React.Component {
5353
label: selectedSheet
5454
}
5555
};
56+
const config = keplerConfig ? JSON.parse(keplerConfig) : undefined;
57+
const hasMapStateConfig = Boolean(config && config.mapState);
5658

5759
this.props.dispatch(
5860
addDataToMap({
5961
datasets,
60-
options: {readOnly, centerMap: true},
61-
config: keplerConfig ? JSON.parse(keplerConfig) : undefined
62+
options: {readOnly, centerMap: !hasMapStateConfig},
63+
config
6264
})
6365
);
6466
}

src/reducers.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,14 @@ function markerSelectUpdater(state, action) {
7070
const {field, values} = action.payload;
7171
const visState = visStateSelector(state);
7272
let currentFilterIdx = visState.filters.findIndex(f => f.name === field && f.dataId === DATA_ID && f.tableauMarkerFilter);
73-
7473
let nextState = visState;
7574
if (values.length) {
7675
if (currentFilterIdx < 0) {
76+
const filterField = getFilterField(visState, field);
77+
if (!filterField) {
78+
// field not in visState
79+
return state;
80+
}
7781
log('add filter based on marker')
7882
// add filter
7983
nextState = visStateUpdaters.addFilterUpdater(nextState, {dataId: DATA_ID});
@@ -85,7 +89,7 @@ function markerSelectUpdater(state, action) {
8589
nextState = visStateUpdaters.setFilterUpdater(nextState, {idx, prop: 'dataId', value: DATA_ID});
8690

8791
// set filter name and props
88-
const newFilter = getNewFilter(nextState, idx, field);
92+
const newFilter = getNewFilter(nextState, idx, filterField);
8993
nextState = {
9094
...nextState,
9195
filters: nextState.filters.map((f, i) => i === idx ? newFilter : f)
@@ -97,7 +101,7 @@ function markerSelectUpdater(state, action) {
97101
nextState = visStateUpdaters.setFilterUpdater(nextState, {idx: currentFilterIdx, prop: 'value', value: values});
98102
} else if (currentFilterIdx >= 0) {
99103
// remove filter
100-
log('remove gilter based on marker')
104+
log('remove filter based on marker')
101105
nextState = visStateUpdaters.removeFilterUpdater(nextState, {idx: currentFilterIdx});
102106
}
103107

@@ -119,24 +123,24 @@ function updateKeplerGlState(state, newState) {
119123
}
120124

121125
function getNewFilter(state, idx, field) {
122-
const filterField = getFilterField(state, field);
123-
const fieldIdx = filterField.tableFieldIndex - 1;
126+
const fieldIdx = field.tableFieldIndex - 1;
124127
const values = state.datasets[DATA_ID].allData.map(row => row[fieldIdx]);
125128

126129
const filterProp = {
127130
domain: unique(values).sort(),
128-
fieldType: filterField.type,
131+
fieldType: field.type,
129132
type: 'multiSelect',
130133
value: []
131134
};
132135

133136
const newFilter = {
134137
...state.filters[idx],
135138
...filterProp,
136-
name: field,
139+
name: field.name,
137140
// can't edit dataId once name is selected
138141
freeze: true,
139142
fieldIdx,
143+
// add tableau identifier to filter
140144
tableauMarkerFilter: true
141145
};
142146

0 commit comments

Comments
 (0)