mirror of
https://github.com/apache/superset.git
synced 2026-05-09 18:05:52 +00:00
feat(controls): Migrate all control panels to React component functions
Major refactor to modernize control panel system:
## Changes Made
### Core Infrastructure
- Created InlineControls.tsx with helper functions for all control types
- Added SharedControlComponents for replacing string control references
- Fixed TypeScript types and imports across all control panels
- Added proper exports and type definitions
### Control Panel Migrations
- Converted 20+ control panel files from inline configurations to React components
- Eliminated all string control references (e.g., ['metric'] → MetricControl())
- Updated all legacy-plugin-chart-* plugins
- Updated all legacy-preset-chart-deckgl layers
- Fixed chord diagram control panel (was prematurely using JSON Forms)
### Type Safety Improvements
- Fixed choice array type mismatches (now supports mixed types)
- Resolved import conflicts by renaming inline control helpers
- Added proper TypeScript types for all control configurations
- Reduced TypeScript errors by 57% (44 → 19)
### Pattern Conversion
Before: { name: 'control', config: { type: 'SelectControl', ... } }
After: SelectControl({ name: 'control', ... })
This sets the foundation for the next phase: migrating to JSON Forms format.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,10 +18,15 @@
|
||||
*/
|
||||
import { t } from '@superset-ui/core';
|
||||
import {
|
||||
ColorSchemeControl,
|
||||
ControlPanelConfig,
|
||||
ControlPanelsContainerProps,
|
||||
ControlSubSectionHeader,
|
||||
CurrencyFormatControl,
|
||||
D3_TIME_FORMAT_DOCS,
|
||||
TimeShiftColorControl,
|
||||
YAxisFormatControl,
|
||||
ZoomableControl,
|
||||
getStandardizedControls,
|
||||
sections,
|
||||
sharedControls,
|
||||
@@ -64,8 +69,8 @@ const config: ControlPanelConfig = {
|
||||
expanded: true,
|
||||
controlSetRows: [
|
||||
...seriesOrderSection,
|
||||
['color_scheme'],
|
||||
['time_shift_color'],
|
||||
[ColorSchemeControl()],
|
||||
[TimeShiftColorControl()],
|
||||
...showValueSection,
|
||||
[
|
||||
{
|
||||
@@ -99,7 +104,7 @@ const config: ControlPanelConfig = {
|
||||
},
|
||||
},
|
||||
],
|
||||
['zoomable'],
|
||||
[ZoomableControl()],
|
||||
[minorTicks],
|
||||
...legendSection,
|
||||
[<ControlSubSectionHeader>{t('X Axis')}</ControlSubSectionHeader>],
|
||||
@@ -120,8 +125,8 @@ const config: ControlPanelConfig = {
|
||||
...richTooltipSection,
|
||||
// eslint-disable-next-line react/jsx-key
|
||||
[<ControlSubSectionHeader>{t('Y Axis')}</ControlSubSectionHeader>],
|
||||
['y_axis_format'],
|
||||
['currency_format'],
|
||||
[YAxisFormatControl()],
|
||||
[CurrencyFormatControl()],
|
||||
[
|
||||
{
|
||||
name: 'logAxis',
|
||||
|
||||
Reference in New Issue
Block a user