[Maps] Do not clear non-ordinal fields when modifying field-settings in tooltips or sort-order (#55483) (#55571)

This commit is contained in:
Thomas Neirynck 2020-01-22 11:56:29 -05:00 committed by GitHub
parent f5a19ed790
commit 9153abef4e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 8 additions and 18 deletions

View file

@ -753,9 +753,9 @@ export function clearMissingStyleProperties(layerId) {
return;
}
const ordinalFields = await targetLayer.getOrdinalFields();
const nextFields = await targetLayer.getFields(); //take into account all fields, since labels can be driven by any field (source or join)
const { hasChanges, nextStyleDescriptor } = style.getDescriptorWithMissingStylePropsRemoved(
ordinalFields
nextFields
);
if (hasChanges) {
dispatch(updateLayerStyle(layerId, nextStyleDescriptor));

View file

@ -340,10 +340,6 @@ export class AbstractLayer {
return [];
}
async getOrdinalFields() {
return [];
}
async getCategoricalFields() {
return [];
}

View file

@ -175,7 +175,7 @@ export class VectorStyle extends AbstractStyle {
* This method does not update its descriptor. It just returns a new descriptor that the caller
* can then use to update store state via dispatch.
*/
getDescriptorWithMissingStylePropsRemoved(nextOrdinalFields) {
getDescriptorWithMissingStylePropsRemoved(nextFields) {
const originalProperties = this.getRawProperties();
const updatedProperties = {};
@ -192,7 +192,7 @@ export class VectorStyle extends AbstractStyle {
return;
}
const matchingOrdinalField = nextOrdinalFields.find(ordinalField => {
const matchingOrdinalField = nextFields.find(ordinalField => {
return fieldName === ordinalField.getName();
});

View file

@ -66,21 +66,19 @@ describe('getDescriptorWithMissingStylePropsRemoved', () => {
it('Should return no changes when next oridinal fields contain existing style property fields', () => {
const vectorStyle = new VectorStyle({ properties }, new MockSource());
const nextOridinalFields = [new MockField({ fieldName })];
const { hasChanges } = vectorStyle.getDescriptorWithMissingStylePropsRemoved(
nextOridinalFields
);
const nextFields = [new MockField({ fieldName })];
const { hasChanges } = vectorStyle.getDescriptorWithMissingStylePropsRemoved(nextFields);
expect(hasChanges).toBe(false);
});
it('Should clear missing fields when next oridinal fields do not contain existing style property fields', () => {
const vectorStyle = new VectorStyle({ properties }, new MockSource());
const nextOridinalFields = [];
const nextFields = [];
const {
hasChanges,
nextStyleDescriptor,
} = vectorStyle.getDescriptorWithMissingStylePropsRemoved(nextOridinalFields);
} = vectorStyle.getDescriptorWithMissingStylePropsRemoved(nextFields);
expect(hasChanges).toBe(true);
expect(nextStyleDescriptor.properties).toEqual({
fillColor: {

View file

@ -209,10 +209,6 @@ export class VectorLayer extends AbstractLayer {
return [...numberFieldOptions, ...this._getJoinFields()];
}
async getOrdinalFields() {
return [...(await this.getDateFields()), ...(await this.getNumberFields())];
}
async getCategoricalFields() {
return await this._source.getCategoricalFields();
}