This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate components to TypeScript #18100
Labels
enhancement:request
Enhancement request submitted by anyone from the community
good first issue
Good first issues for new contributors
Comments
ad-m
added a commit
to ad-m/superset
that referenced
this issue
Jan 20, 2022
This was referenced Jan 20, 2022
ad-m
added a commit
to ad-m/superset
that referenced
this issue
Jan 20, 2022
kgabryje
pushed a commit
that referenced
this issue
Jan 20, 2022
|
Working on following components:
|
9 tasks
|
@kgabryje @michael-s-molina Can I ask for "good first issue" label? |
9 tasks
9 tasks
jayakrishnankk
pushed a commit
to jayakrishnankk/superset
that referenced
this issue
Jan 21, 2022
jayakrishnankk
pushed a commit
to jayakrishnankk/superset
that referenced
this issue
Jan 21, 2022
jayakrishnankk
pushed a commit
to jayakrishnankk/superset
that referenced
this issue
Jan 21, 2022
9 tasks
9 tasks
This was referenced Jan 23, 2022
Is your feature request related to a problem? Please describe.
Since SIP-9 in 2018, TypeScript has been a part of the Superset repo. Since SIP-36 in 2020 all new frontend code should be written in TypeScript. When modifying old functions/components, migrating to TypeScript is appreciated, but not required.
We have still a bit non-TypeScript components on frontend:
Describe the solution you'd like
We should rewrite frontend components to use JSX. I listed all of them to track progress.
superset-frontend/src/visualizations/TimeTable/TimeTable.jsxsuperset-frontend/src/visualizations/FilterBox/controlPanel.jsxsuperset-frontend/src/visualizations/FilterBox/FilterBox.test.jsxsuperset-frontend/src/visualizations/FilterBox/FilterBox.jsxsuperset-frontend/src/modules/utils.test.jsxsuperset-frontend/src/explore/exploreUtils/exploreUtils.test.jsxsuperset-frontend/src/explore/index.jsxsuperset-frontend/src/explore/store.test.jsxsuperset-frontend/src/explore/controls.jsxsuperset-frontend/src/explore/App.jsxsuperset-frontend/src/explore/components/ExploreAdditionalActionsMenu/index.jsxsuperset-frontend/src/explore/components/ExploreAdditionalActionsMenu/ExploreAdditionalActionsMenu.test.jsxsuperset-frontend/src/explore/components/ExploreActionButtons.test.jsxsuperset-frontend/src/explore/components/ExploreViewContainer.test.jsxsuperset-frontend/src/explore/components/ExploreViewContainer.jsxsuperset-frontend/src/explore/components/ExploreChartPanel.test.jsxsuperset-frontend/src/explore/components/QueryAndSaveBtns.test.jsxsuperset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsxsuperset-frontend/src/explore/components/controls/SliderControl.jsxsuperset-frontend/src/explore/components/controls/SelectControl.test.jsxsuperset-frontend/src/explore/components/controls/SelectControl.jsxsuperset-frontend/src/explore/components/controls/FixedOrMetricControl/index.jsxsuperset-frontend/src/explore/components/controls/BoundsControl.jsxsuperset-frontend/src/explore/components/controls/TextAreaControl.jsxsuperset-frontend/src/explore/components/controls/MetricControl/MetricsControl.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/FilterDefinitionOption.jsxsuperset-frontend/src/explore/components/controls/MetricControl/FilterDefinitionOption.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopoverTitle.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/MetricDefinitionValue.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AdhocMetricOption.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AdhocMetricOption.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopoverTitle.jsxsuperset-frontend/src/explore/components/controls/MetricControl/MetricDefinitionOption.jsxsuperset-frontend/src/explore/components/controls/MetricControl/MetricDefinitionValue.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/AggregateOption.jsxsuperset-frontend/src/explore/components/controls/MetricControl/MetricDefinitionOption.test.jsxsuperset-frontend/src/explore/components/controls/MetricControl/MetricsControl.jsxsuperset-frontend/src/explore/components/controls/SpatialControl.jsxsuperset-frontend/src/explore/components/controls/VizTypeControl/VizTypeControl.test.jsxsuperset-frontend/src/explore/components/controls/ColorPickerControl.jsxsuperset-frontend/src/explore/components/controls/ViewportControl.test.jsxsuperset-frontend/src/explore/components/controls/ViewportControl.jsxsuperset-frontend/src/explore/components/controls/DatasourceControl/index.jsxsuperset-frontend/src/explore/components/controls/DatasourceControl/DatasourceControl.test.jsxsuperset-frontend/src/explore/components/controls/FilterBoxItemControl/FilterBoxItemControl.test.jsxsuperset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/AdhocFilterEditPopover.test.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/AdhocFilterControl.test.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterOption/index.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.jsxsuperset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/AdhocFilterEditPopoverSqlTabContent.test.jsxsuperset-frontend/src/explore/components/controls/BoundsControl.test.jsxsuperset-frontend/src/explore/components/controls/CollectionControl/index.jsxsuperset-frontend/src/explore/components/controls/TextAreaControl.test.jsxsuperset-frontend/src/explore/components/controls/ColorSchemeControl/index.jsxsuperset-frontend/src/explore/components/controls/ColorSchemeControl/ColorScheme.test.jsxsuperset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelectPopoverTitle.jsxsuperset-frontend/src/explore/components/controls/CheckboxControl.jsxsuperset-frontend/src/explore/components/controls/AnnotationLayerControl/index.jsxsuperset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsxsuperset-frontend/src/explore/components/EmbedCodeButton.jsxsuperset-frontend/src/explore/components/RowCountLabel.test.jsxsuperset-frontend/src/explore/components/ExploreChartPanel.jsxsuperset-frontend/src/explore/components/RowCountLabel.jsxsuperset-frontend/src/explore/components/QueryAndSaveBtns.jsxsuperset-frontend/src/explore/components/ExploreChartHeader/index.jsxsuperset-frontend/src/explore/components/ControlHeader.jsxsuperset-frontend/src/explore/components/SaveModal.test.jsxsuperset-frontend/src/explore/components/EmbedCodeButton.test.jsxsuperset-frontend/src/CRUD/CollectionTable.test.jsxsuperset-frontend/src/views/CRUD/annotationlayers/AnnotationLayerModal.test.jsxsuperset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.test.jsxsuperset-frontend/src/views/CRUD/alert/ExecutionLog.test.jsxsuperset-frontend/src/views/CRUD/alert/AlertList.test.jsxsuperset-frontend/src/views/CRUD/alert/AlertReportModal.test.jsxsuperset-frontend/src/views/CRUD/data/dataset/DatasetList.test.jsxsuperset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.test.jsxsuperset-frontend/src/views/CRUD/data/savedquery/SavedQueryPreviewModal.test.jsxsuperset-frontend/src/views/CRUD/data/database/DatabaseModal/index.test.jsxsuperset-frontend/src/views/CRUD/data/database/DatabaseList.test.jsxsuperset-frontend/src/views/CRUD/chart/ChartList.test.jsxsuperset-frontend/src/views/CRUD/dashboard/DashboardList.test.jsxsuperset-frontend/src/views/CRUD/annotation/AnnotationList.test.jsxsuperset-frontend/src/views/CRUD/annotation/AnnotationModal.test.jsxsuperset-frontend/src/views/CRUD/csstemplates/CssTemplatesList.test.jsxsuperset-frontend/src/views/CRUD/csstemplates/CssTemplateModal.test.jsxsuperset-frontend/src/chart/ChartRenderer.jsxsuperset-frontend/src/chart/ChartRenderer.test.jsxsuperset-frontend/src/chart/Chart.jsxsuperset-frontend/src/chart/ChartContainer.jsxsuperset-frontend/src/utils/common.test.jsxsuperset-frontend/src/dashboard/containers/DashboardComponent.jsxsuperset-frontend/src/dashboard/containers/FilterScope.jsxsuperset-frontend/src/dashboard/containers/SliceAdder.jsxsuperset-frontend/src/dashboard/containers/Chart.jsxsuperset-frontend/src/dashboard/containers/DashboardHeader.jsxsuperset-frontend/src/dashboard/containers/DashboardGrid.jsxsuperset-frontend/src/dashboard/util/propShapes.jsxsuperset-frontend/src/dashboard/components/ColorSchemeControlWrapper.jsxsuperset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsxsuperset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsxsuperset-frontend/src/dashboard/components/filterscope/renderFilterFieldTreeNodes.jsxsuperset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsxsuperset-frontend/src/dashboard/components/filterscope/FilterFieldItem.jsxsuperset-frontend/src/dashboard/components/filterscope/treeIcons.jsxsuperset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsxsuperset-frontend/src/dashboard/components/gridComponents/Row.jsxsuperset-frontend/src/dashboard/components/gridComponents/Markdown.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Tab.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/ChartHolder.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Tabs.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewColumn.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewColumn.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewMarkdown.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewTabs.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewHeader.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewRow.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewTabs.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewRow.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewHeader.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewDivider.jsxsuperset-frontend/src/dashboard/components/gridComponents/new/NewDivider.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Markdown.jsxsuperset-frontend/src/dashboard/components/gridComponents/Column.jsxsuperset-frontend/src/dashboard/components/gridComponents/Tabs.jsxsuperset-frontend/src/dashboard/components/gridComponents/Chart.jsxsuperset-frontend/src/dashboard/components/gridComponents/Row.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Tab.jsxsuperset-frontend/src/dashboard/components/gridComponents/Column.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Divider.jsxsuperset-frontend/src/dashboard/components/gridComponents/Header.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Header.jsxsuperset-frontend/src/dashboard/components/gridComponents/Divider.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/Chart.test.jsxsuperset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsxsuperset-frontend/src/dashboard/components/AddSliceCard.jsxsuperset-frontend/src/dashboard/components/DeleteComponentButton.jsxsuperset-frontend/src/dashboard/components/UndoRedoKeyListeners/index.jsxsuperset-frontend/src/dashboard/components/Header/index.jsxsuperset-frontend/src/dashboard/components/Header/HeaderActionsDropdown/index.jsxsuperset-frontend/src/dashboard/components/SliceAdder.jsxsuperset-frontend/src/dashboard/components/CssEditor/index.jsxsuperset-frontend/src/dashboard/components/SliceAdder.test.jsxsuperset-frontend/src/dashboard/components/DashboardGrid.test.jsxsuperset-frontend/src/dashboard/components/resizable/ResizableContainer.jsxsuperset-frontend/src/dashboard/components/resizable/ResizableHandle.jsxsuperset-frontend/src/dashboard/components/PublishedStatus/index.jsxsuperset-frontend/src/dashboard/components/dnd/DragDroppable.jsxsuperset-frontend/src/dashboard/components/dnd/DragDroppable.test.jsxsuperset-frontend/src/dashboard/components/dnd/AddSliceDragPreview.jsxsuperset-frontend/src/dashboard/components/menu/WithPopoverMenu.test.jsxsuperset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.test.jsxsuperset-frontend/src/dashboard/components/Dashboard.jsxsuperset-frontend/src/dashboard/components/Dashboard.test.jsxsuperset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.test.jsxsuperset-frontend/src/dashboard/components/DashboardGrid.jsxsuperset-frontend/src/dashboard/components/MissingChart.jsxsuperset-frontend/src/showSavedQuery/utils.test.jsxsuperset-frontend/src/showSavedQuery/index.jsxsuperset-frontend/src/components/URLShortLinkButton/index.jsxsuperset-frontend/src/components/Select/OnPasteSelect.test.jsxsuperset-frontend/src/components/Select/OnPasteSelect.jsxsuperset-frontend/src/components/IconButton/IconButton.test.jsxsuperset-frontend/src/components/ModalTrigger/index.jsxsuperset-frontend/src/components/Form/LabeledErrorBoundInput.test.jsxsuperset-frontend/src/components/AnchorLink/AnchorLink.test.jsxsuperset-frontend/src/components/AnchorLink/index.jsxsuperset-frontend/src/components/MessageToasts/ToastContainer.jsxsuperset-frontend/src/components/MessageToasts/ToastPresenter.test.jsxsuperset-frontend/src/components/MessageToasts/Toast.test.jsxsuperset-frontend/src/components/FormRow/index.jsxsuperset-frontend/src/components/FormRow/FormRow.test.jsxsuperset-frontend/src/components/AlteredSliceTag/index.jsxsuperset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsxsuperset-frontend/src/components/ConfirmStatusChange/ConfirmStatusChange.test.jsxsuperset-frontend/src/components/AsyncSelect/AsyncSelect.test.jsxsuperset-frontend/src/components/AsyncSelect/index.jsxsuperset-frontend/src/components/ListViewCard/ImageLoader.test.jsxsuperset-frontend/src/components/ListViewCard/ListViewCard.test.jsxsuperset-frontend/src/components/ListView/ListView.test.jsxsuperset-frontend/src/components/CopyToClipboard/index.jsxsuperset-frontend/src/components/IconTooltip/IconTooltip.test.jsxsuperset-frontend/src/components/ErrorBoundary/index.jsxsuperset-frontend/src/components/Datasource/ChangeDatasourceModal.test.jsxsuperset-frontend/src/components/Datasource/DatasourceEditor.jsxsuperset-frontend/src/components/Datasource/DatasourceEditor.test.jsxsuperset-frontend/src/components/Datasource/DatasourceModal.test.jsxsuperset-frontend/src/SqlLab/App.jsxsuperset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsxsuperset-frontend/src/SqlLab/components/ExploreResultsButton/ExploreResultsButton.test.jsxsuperset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.jsxsuperset-frontend/src/SqlLab/components/ResultSet/ResultSet.test.jsxsuperset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.jsxsuperset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.jsxsuperset-frontend/src/SqlLab/components/QuerySearch/QuerySearch.test.jsxsuperset-frontend/src/SqlLab/components/QueryTable/QueryTable.test.jsxsuperset-frontend/src/SqlLab/components/QueryTable/index.jsxsuperset-frontend/src/SqlLab/components/SqlEditor/index.jsxsuperset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsxsuperset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsxsuperset-frontend/src/SqlLab/components/SqlEditorLeftBar/SqlEditorLeftBar.test.jsxsuperset-frontend/src/SqlLab/components/QueryStateLabel/QueryStateLabel.test.jsxsuperset-frontend/src/SqlLab/components/HighlightedSql/HighlightedSql.test.jsxsuperset-frontend/src/SqlLab/components/App/index.jsxsuperset-frontend/src/SqlLab/components/App/App.test.jsxsuperset-frontend/src/SqlLab/components/TableElement/TableElement.test.jsxsuperset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsxsuperset-frontend/src/SqlLab/components/QueryAutoRefresh/index.jsxsuperset-frontend/src/SqlLab/components/QueryAutoRefresh/QueryAutoRefresh.test.jsxsuperset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsxsuperset-frontend/src/SqlLab/components/TabbedSqlEditors/TabbedSqlEditors.test.jsxsuperset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.jsxsuperset-frontend/src/SqlLab/components/RunQueryActionButton/RunQueryActionButton.test.jsxsuperset-frontend/.storybook/preview.jsxsuperset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/TableRenderers.jsxsuperset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/PivotTable.jsxsuperset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-style/ThemeStories.jsxsuperset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-time-format/TimeFormatStories.jsxsuperset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-color/RenderPalettes.jsxsuperset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-color/ColorPallettesStories.jsxsuperset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-number-format/BigNumberStories.jsxDescribe alternatives you've considered
We can still migrate the component when we touch it. However, there is no guarantee of an endless time that the full benefits of TypeScript and code consistency will be achieved.
We will also lose potential new contributors who start there and then move on to more complex issues.
Additional context
At Slack @nytai commented about migration components without functional changes:
The text was updated successfully, but these errors were encountered: