refactor(standardized form data): refine interface and improve code smells (#20518)

This commit is contained in:
Yongjie Zhao
2022-06-28 21:09:42 +08:00
committed by GitHub
parent 23e62d3782
commit c348a095b9
34 changed files with 580 additions and 224 deletions

View File

@@ -21,6 +21,7 @@ import {
ControlPanelConfig,
D3_FORMAT_DOCS,
D3_TIME_FORMAT_OPTIONS,
getStandardizedControls,
sections,
} from '@superset-ui/chart-controls';
import { headerFontSize, subheaderFontSize } from '../sharedControls';
@@ -96,12 +97,8 @@ export default {
label: t('Number format'),
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().shiftMetric(),
}),
} as ControlPanelConfig;

View File

@@ -22,6 +22,7 @@ import {
D3_FORMAT_DOCS,
D3_TIME_FORMAT_OPTIONS,
formatSelectOptions,
getStandardizedControls,
sections,
} from '@superset-ui/chart-controls';
import React from 'react';
@@ -270,13 +271,9 @@ const config: ControlPanelConfig = {
label: t('Number format'),
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().shiftMetric(),
}),
};

View File

@@ -25,6 +25,7 @@ import {
sections,
emitFilterControl,
ControlPanelConfig,
getStandardizedControls,
} from '@superset-ui/chart-controls';
const config: ControlPanelConfig = {
@@ -136,14 +137,18 @@ const config: ControlPanelConfig = {
),
},
},
denormalizeFormData: formData => {
const groupby =
formData.standardizedFormData.standardizedState.columns.filter(
col => !ensureIsArray(formData.columns).includes(col),
formDataOverrides: formData => {
const groupby = getStandardizedControls().controls.columns.filter(
col => !ensureIsArray(formData.columns).includes(col),
);
getStandardizedControls().controls.columns =
getStandardizedControls().controls.columns.filter(
col => !groupby.includes(col),
);
return {
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
metrics: getStandardizedControls().popAllMetrics(),
groupby,
};
},

View File

@@ -25,6 +25,7 @@ import {
sharedControls,
ControlStateMapping,
emitFilterControl,
getStandardizedControls,
} from '@superset-ui/chart-controls';
import { DEFAULT_FORM_DATA, EchartsFunnelLabelTypeType } from './types';
import { legendSection } from '../controls';
@@ -143,14 +144,10 @@ const config: ControlPanelConfig = {
},
};
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
groupby: formData.standardizedFormData.standardizedState.columns,
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().shiftMetric(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -24,6 +24,7 @@ import {
D3_FORMAT_OPTIONS,
sections,
emitFilterControl,
getStandardizedControls,
} from '@superset-ui/chart-controls';
import { DEFAULT_FORM_DATA } from './types';
@@ -308,14 +309,10 @@ const config: ControlPanelConfig = {
],
},
],
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
groupby: formData.standardizedFormData.standardizedState.columns,
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().shiftMetric(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -20,6 +20,7 @@ import React from 'react';
import { t } from '@superset-ui/core';
import {
ControlPanelConfig,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -320,13 +321,9 @@ const controlPanel: ControlPanelConfig = {
],
},
],
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().popAllMetrics(),
}),
};

View File

@@ -30,6 +30,7 @@ import {
ControlSetRow,
CustomControlItem,
emitFilterControl,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -449,15 +450,23 @@ const config: ControlPanelConfig = {
],
},
],
denormalizeFormData: formData => {
const groupby =
formData.standardizedFormData.standardizedState.columns.filter(
col => !ensureIsArray(formData.groupby_b).includes(col),
formDataOverrides: formData => {
const groupby = getStandardizedControls().controls.columns.filter(
col => !ensureIsArray(formData.groupby_b).includes(col),
);
getStandardizedControls().controls.columns =
getStandardizedControls().controls.columns.filter(
col => !groupby.includes(col),
);
const metrics =
formData.standardizedFormData.standardizedState.metrics.filter(
metric => !ensureIsArray(formData.metrics_b).includes(metric),
const metrics = getStandardizedControls().controls.metrics.filter(
metric => !ensureIsArray(formData.metrics_b).includes(metric),
);
getStandardizedControls().controls.metrics =
getStandardizedControls().controls.metrics.filter(
col => !metrics.includes(col),
);
return {
...formData,
metrics,

View File

@@ -26,6 +26,7 @@ import {
D3_TIME_FORMAT_OPTIONS,
sections,
emitFilterControl,
getStandardizedControls,
} from '@superset-ui/chart-controls';
import { DEFAULT_FORM_DATA } from './types';
import { legendSection } from '../controls';
@@ -253,17 +254,13 @@ const config: ControlPanelConfig = {
default: 100,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
groupby: formData.standardizedFormData.standardizedState.columns,
metric: getStandardizedControls().shiftMetric(),
groupby: getStandardizedControls().popAllColumns(),
row_limit:
ensureIsInt(formData.row_limit, 100) >= 100 ? 100 : formData.row_limit,
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
}),
};
export default config;

View File

@@ -33,6 +33,7 @@ import {
sharedControls,
emitFilterControl,
ControlFormItemSpec,
getStandardizedControls,
} from '@superset-ui/chart-controls';
import { DEFAULT_FORM_DATA } from './types';
import { LABEL_POSITION } from '../constants';
@@ -210,10 +211,10 @@ const config: ControlPanelConfig = {
],
},
],
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_TIME_FORMAT_DOCS,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -276,10 +277,10 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -25,6 +25,7 @@ import {
ControlStateMapping,
D3_TIME_FORMAT_DOCS,
formatSelectOptions,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -328,10 +329,10 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_TIME_FORMAT_DOCS,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -263,10 +264,10 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_TIME_FORMAT_DOCS,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -207,10 +208,10 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_TIME_FORMAT_DOCS,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -207,10 +208,10 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_TIME_FORMAT_DOCS,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -260,10 +261,10 @@ const config: ControlPanelConfig = {
default: rowLimit,
},
},
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metrics: formData.standardizedFormData.standardizedState.metrics,
groupby: formData.standardizedFormData.standardizedState.columns,
metrics: getStandardizedControls().popAllMetrics(),
groupby: getStandardizedControls().popAllColumns(),
}),
};

View File

@@ -20,6 +20,7 @@ import React from 'react';
import { FeatureFlag, isFeatureEnabled, t } from '@superset-ui/core';
import {
ControlPanelConfig,
getStandardizedControls,
sections,
sharedControls,
} from '@superset-ui/chart-controls';
@@ -285,13 +286,9 @@ const controlPanel: ControlPanelConfig = {
],
},
],
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().shiftMetric(),
}),
};

View File

@@ -25,6 +25,7 @@ import {
D3_TIME_FORMAT_OPTIONS,
sections,
emitFilterControl,
getStandardizedControls,
} from '@superset-ui/chart-controls';
import { DEFAULT_FORM_DATA } from './types';
@@ -137,14 +138,10 @@ const config: ControlPanelConfig = {
],
},
],
denormalizeFormData: formData => ({
formDataOverrides: formData => ({
...formData,
metric: formData.standardizedFormData.standardizedState.metrics[0],
groupby: formData.standardizedFormData.standardizedState.columns,
}),
updateStandardizedState: (prevState, currState) => ({
...currState,
metrics: [currState.metrics[0], ...prevState.metrics.slice(1)],
metric: getStandardizedControls().shiftMetric(),
groupby: getStandardizedControls().popAllColumns(),
}),
};