This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch chore/ts-migration-dashboard
in repository https://gitbox.apache.org/repos/asf/superset.git

commit fce0b2ea96bc61513d7f037e3f18b59f898891c9
Author: Evan Rusackas <[email protected]>
AuthorDate: Tue Feb 3 07:18:17 2026 +0100

    chore(frontend): remove deprecated dependencies and update documentation
    
    - Remove prop-types (unused since TypeScript migration)
    - Remove react-hot-loader, @hot-loader/react-dom (replaced by React Refresh)
    - Remove babel-plugin-typescript-to-proptypes (obsolete with full 
TypeScript)
    - Update use-query-params to ^2.2.2 (required for adapters/react-router-5)
    - Update docs: Enzyme → React Testing Library, MainPreset.js → .ts
    - Clean up webpack vendors chunk and babel.config.js
    
    Note: Run `npm install` in superset-frontend to complete the dependency 
update.
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
---
 docs/developer_portal/contributing/development-setup.md | 2 +-
 docs/developer_portal/contributing/howtos.md            | 2 +-
 superset-frontend/babel.config.js                       | 3 ---
 superset-frontend/package.json                          | 6 +-----
 superset-frontend/src/preamble.ts                       | 6 ------
 superset-frontend/src/views/App.tsx                     | 3 +--
 superset-frontend/webpack.config.js                     | 6 ------
 7 files changed, 4 insertions(+), 24 deletions(-)

diff --git a/docs/developer_portal/contributing/development-setup.md 
b/docs/developer_portal/contributing/development-setup.md
index fdddbf1af55..a543eb24442 100644
--- a/docs/developer_portal/contributing/development-setup.md
+++ b/docs/developer_portal/contributing/development-setup.md
@@ -788,7 +788,7 @@ pytest ./link_to_test.py
 
 ### Frontend Testing
 
-We use [Jest](https://jestjs.io/) and [Enzyme](https://airbnb.io/enzyme/) to 
test TypeScript/JavaScript. Tests can be run with:
+We use [Jest](https://jestjs.io/) and [React Testing 
Library](https://testing-library.com/docs/react-testing-library/intro/) to test 
TypeScript. Tests can be run with:
 
 ```bash
 cd superset-frontend
diff --git a/docs/developer_portal/contributing/howtos.md 
b/docs/developer_portal/contributing/howtos.md
index cb52bd5b4c9..e4469dfb07a 100644
--- a/docs/developer_portal/contributing/howtos.md
+++ b/docs/developer_portal/contributing/howtos.md
@@ -100,7 +100,7 @@ npm link superset-plugin-chart-hello-world
 ```
 
 7. **Import and register in Superset**:
-Edit `superset-frontend/src/visualizations/presets/MainPreset.js` to include 
your plugin.
+Edit `superset-frontend/src/visualizations/presets/MainPreset.ts` to include 
your plugin.
 
 ## Testing
 
diff --git a/superset-frontend/babel.config.js 
b/superset-frontend/babel.config.js
index fc1acf1bab4..9689190c92f 100644
--- a/superset-frontend/babel.config.js
+++ b/superset-frontend/babel.config.js
@@ -52,9 +52,6 @@ module.exports = {
     ['@babel/plugin-transform-private-methods', { loose: true }],
     ['@babel/plugin-transform-nullish-coalescing-operator', { loose: true }],
     ['@babel/plugin-transform-runtime', { corejs: 3 }],
-    // only used in packages/superset-ui-core/src/chart/components/reactify.tsx
-    ['babel-plugin-typescript-to-proptypes', { loose: true }],
-    'react-hot-loader/babel',
     [
       '@emotion/babel-plugin',
       {
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 61113fe9d81..1b0ff7f6e46 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -178,7 +178,6 @@
     "mustache": "^4.2.0",
     "nanoid": "^5.1.6",
     "ol": "^7.5.2",
-    "prop-types": "^15.8.1",
     "query-string": "6.14.1",
     "re-resizable": "^6.11.2",
     "react": "^17.0.2",
@@ -189,7 +188,6 @@
     "react-dnd-html5-backend": "^11.1.3",
     "react-dom": "^17.0.2",
     "react-google-recaptcha": "^3.1.0",
-    "react-hot-loader": "^4.13.1",
     "react-intersection-observer": "^10.0.2",
     "react-json-tree": "^0.20.0",
     "react-lines-ellipsis": "^0.16.1",
@@ -217,7 +215,7 @@
     "urijs": "^1.19.8",
     "use-event-callback": "^0.1.0",
     "use-immer": "^0.11.0",
-    "use-query-params": "^1.1.9",
+    "use-query-params": "^2.2.2",
     "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz";,
     "yargs": "^17.7.2"
   },
@@ -242,7 +240,6 @@
     "@cypress/react": "^8.0.2",
     "@emotion/babel-plugin": "^11.13.5",
     "@emotion/jest": "^11.14.2",
-    "@hot-loader/react-dom": "^17.0.2",
     "@istanbuljs/nyc-config-typescript": "^1.0.1",
     "@mihkeleidast/storybook-addon-source": "^1.0.1",
     "@playwright/test": "^1.58.0",
@@ -293,7 +290,6 @@
     "babel-plugin-dynamic-import-node": "^2.3.3",
     "babel-plugin-jsx-remove-data-test-id": "^3.0.0",
     "babel-plugin-lodash": "^3.3.4",
-    "babel-plugin-typescript-to-proptypes": "^2.0.0",
     "baseline-browser-mapping": "^2.9.19",
     "cheerio": "1.2.0",
     "concurrently": "^9.2.1",
diff --git a/superset-frontend/src/preamble.ts 
b/superset-frontend/src/preamble.ts
index 5fce7ccab02..4595e822ebd 100644
--- a/superset-frontend/src/preamble.ts
+++ b/superset-frontend/src/preamble.ts
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { setConfig as setHotLoaderConfig } from 'react-hot-loader';
 import { configure, LanguagePack } from '@apache-superset/core/ui';
 import { makeApi, initFeatureFlags, SupersetClient } from '@superset-ui/core';
 import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
@@ -40,11 +39,6 @@ import 'dayjs/plugin/localizedFormat';
 
 configure();
 
-// Set hot reloader config
-if (process.env.WEBPACK_MODE === 'development') {
-  setHotLoaderConfig({ logLevel: 'debug', trackTailUpdates: false });
-}
-
 // Grab initial bootstrap data
 const bootstrapData = getBootstrapData();
 
diff --git a/superset-frontend/src/views/App.tsx 
b/superset-frontend/src/views/App.tsx
index f4d301558a8..87df93f8b28 100644
--- a/superset-frontend/src/views/App.tsx
+++ b/superset-frontend/src/views/App.tsx
@@ -17,7 +17,6 @@
  * under the License.
  */
 import { Suspense, useEffect } from 'react';
-import { hot } from 'react-hot-loader/root';
 import {
   BrowserRouter as Router,
   Switch,
@@ -110,4 +109,4 @@ const App = () => (
   </Router>
 );
 
-export default hot(App);
+export default App;
diff --git a/superset-frontend/webpack.config.js 
b/superset-frontend/webpack.config.js
index 14e9171aa6b..dc88c2f16f7 100644
--- a/superset-frontend/webpack.config.js
+++ b/superset-frontend/webpack.config.js
@@ -224,7 +224,6 @@ if (isDevMode) {
   // A Superset webpage normally includes two JS bundles in dev, `theme.ts` and
   // the main entrypoint. Only the main entry should have the dev server 
client,
   // otherwise the websocket client will initialize twice, creating two 
sockets.
-  // Ref: https://github.com/gaearon/react-hot-loader/issues/141
   PREAMBLE.unshift(
     `webpack-dev-server/client?http://${devserverHost}:${devserverPort}`,
   );
@@ -355,16 +354,11 @@ const config = {
             `/node_modules/(${[
               'react',
               'react-dom',
-              'prop-types',
-              'react-prop-types',
-              'prop-types-extra',
               'redux',
               'react-redux',
-              'react-hot-loader',
               'react-sortable-hoc',
               'react-table',
               'react-ace',
-              '@hot-loader.*',
               'webpack.*',
               '@?babel.*',
               'lodash.*',

Reply via email to