mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
refactor(standardized form data): refine interface and improve code smells (#20518)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user