@carto/kepler.gl 0.0.32-alpha1 → 0.0.32-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -891,6 +891,8 @@ class Layer {
891
891
  const layerDataset = datasets[this.config.dataId];
892
892
  const {dataContainer} = layerDataset;
893
893
 
894
+ this.updateVisualChannelFields(layerDataset);
895
+
894
896
  const getPosition = this.getPositionAccessor(dataContainer);
895
897
  const dataUpdateTriggers = this.getDataUpdateTriggers(layerDataset);
896
898
  const triggerChanged = this.getChangedTriggers(dataUpdateTriggers);
@@ -911,6 +913,22 @@ class Layer {
911
913
  return {data, triggerChanged};
912
914
  }
913
915
 
916
+ /**
917
+ * Update styled fields to match ones from new dataset.
918
+ *
919
+ * @param {Object} dataset
920
+ */
921
+ updateVisualChannelFields(dataset) {
922
+ Object.values(this.visualChannels).forEach(({field}) => {
923
+ const oldField = this.config[field];
924
+ if (!oldField) {
925
+ return;
926
+ }
927
+ const foundField = dataset.fields.find(fd => fd.name === oldField.name);
928
+ this.updateLayerConfig({[field]: foundField});
929
+ });
930
+ }
931
+
914
932
  /**
915
933
  * helper function to update one layer domain when state.data changed
916
934
  * if state.data change is due ot update filter, newFiler will be passed