From 33a028b9953654a9d115f89956230e7893dc3f0c Mon Sep 17 00:00:00 2001 From: Caio Vieira Date: Tue, 14 Oct 2025 16:36:09 -0300 Subject: [PATCH 1/6] chore: atualiza o react para a 18.3.1 --- .babelrc.json | 5 ++++- demo/demo.jsx | 9 +++++---- package.json | 28 +++++++++++++++------------- rollup.config.js | 12 ++++++++---- webpack.config.js | 31 ++++++++++++++++++++++++++----- 5 files changed, 58 insertions(+), 27 deletions(-) diff --git a/.babelrc.json b/.babelrc.json index d301495..57caf34 100644 --- a/.babelrc.json +++ b/.babelrc.json @@ -1,4 +1,7 @@ { - "presets": ["@babel/preset-env", "@babel/preset-react"], + "presets": [ + "@babel/preset-env", + ["@babel/preset-react", { "runtime": "automatic" }] + ], "plugins": ["@babel/plugin-transform-runtime"] } diff --git a/demo/demo.jsx b/demo/demo.jsx index 0567aeb..59e071a 100644 --- a/demo/demo.jsx +++ b/demo/demo.jsx @@ -1,7 +1,7 @@ /* eslint-disable import/max-dependencies */ /* eslint-disable no-console */ import React from 'react'; -import ReactDOM from 'react-dom'; +import { createRoot } from 'react-dom/client'; // eslint-disable-next-line import/no-unresolved import { StatefulTabs, Pagination, ToastsContainer } from '../dist/main'; @@ -18,7 +18,9 @@ import { UncontrolledFormExamples } from './UncontrolledFormExamples'; import { ToastsWithMessageFormatterExamples } from './ToastsWithMessageFormatterExamples'; import { ToastWithCustomState } from './ToastWithCustomState'; -ReactDOM.render( +const root = createRoot(document.getElementById('root')); + +root.render(
-
, - document.getElementById('root') + ); // eslint-disable-next-line no-undef diff --git a/package.json b/package.json index 298dca9..afa740c 100644 --- a/package.json +++ b/package.json @@ -30,15 +30,17 @@ "author": "João Vitor ", "license": "MIT", "devDependencies": { - "@babel/core": "^7.12.10", + "@babel/core": "^7.28.4", "@babel/plugin-transform-runtime": "^7.12.10", "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/runtime": "^7.12.5", - "@rollup/plugin-babel": "^5.2.2", - "@rollup/plugin-node-resolve": "^11.0.1", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.17", + "@rollup/plugin-babel": "^6.1.0", + "@rollup/plugin-commonjs": "^28.0.7", + "@rollup/plugin-node-resolve": "^15.3.1", "babel-jest": "^26.6.3", - "babel-loader": "^8.2.2", + "babel-loader": "^9.2.1", "eslint": "^7.16.0", "eslint-import-resolver-webpack": "^0.13.0", "eslint-plugin-import": "^2.22.1", @@ -49,21 +51,21 @@ "lodash-es": "^4.17.20", "prettier": "^2.2.1", "prop-types": "^15.7.2", - "react": "^17.0.1", - "react-dom": "^17.0.1", - "react-hot-loader": "^4.13.0", - "rollup": "^2.35.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-refresh": "^0.14.2", + "rollup": "^4.52.4", "standard-version": "^9.0.0", - "webpack": "^5.33.2", - "webpack-cli": "^4.6.0", - "webpack-dev-server": "^3.11.2" + "webpack": "^5.102.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.2" }, "peerDependencies": { "@babel/runtime": "^7.12.5", "js-var-type": "^0.2.6", "lodash-es": "^4.17.20", "prop-types": "^15.7.2", - "react": "^17.0.1", - "react-dom": "^17.0.1" + "react": "^18.3.1", + "react-dom": "^18.3.1" } } diff --git a/rollup.config.js b/rollup.config.js index 733d52c..c6c2e2a 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,17 +1,21 @@ /* eslint-disable import/no-anonymous-default-export */ /* eslint-disable import/no-default-export */ -import resolve from '@rollup/plugin-node-resolve'; -import babel from '@rollup/plugin-babel'; +const resolve = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); +const babel = require('@rollup/plugin-babel'); -export default { +module.exports = { input: 'src/index.js', plugins: [ resolve({ extensions: ['.mjs', '.js', '.json', '.jsx'], }), + commonjs(), babel({ babelHelpers: 'runtime', - exclude: /node_modules/, // only transpile our source code + exclude: /node_modules/, + extensions: ['.js', '.jsx'], + presets: ['@babel/preset-env', ['@babel/preset-react', { runtime: 'classic' }]], }), ], output: { diff --git a/webpack.config.js b/webpack.config.js index 179a9f2..4e16437 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,6 @@ 'use strict'; -const webpack = require('webpack'); +const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); module.exports = [ { @@ -28,14 +28,35 @@ module.exports = [ { entry: './demo/demo.jsx', output: { - path: `${__dirname}/demo`, filename: 'demo.js', + path: `${__dirname}/demo`, + publicPath: '/demo/', }, devServer: { - contentBase: `${__dirname}/demo`, + static: { + directory: `${__dirname}/demo`, + }, hot: true, + port: 8080, + }, + module: { + rules: [ + { + test: /\.(js|jsx)$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + plugins: [require.resolve('react-refresh/babel')], + }, + }, + }, + ], + }, + resolve: { + extensions: ['*', '.js', '.jsx'], }, - plugins: [new webpack.HotModuleReplacementPlugin()], + plugins: [new ReactRefreshWebpackPlugin()], }, { entry: './docs/docs.jsx', @@ -45,7 +66,6 @@ module.exports = [ }, }, ].map((setup) => ({ - ...setup, module: { rules: [ { @@ -60,4 +80,5 @@ module.exports = [ resolve: { extensions: ['*', '.js', '.jsx'], }, + ...setup, })); From e434861af62fd3da7f38c1dd6210a63e4a1ec045 Mon Sep 17 00:00:00 2001 From: Caio Vieira Date: Wed, 15 Oct 2025 08:13:19 -0300 Subject: [PATCH 2/6] chore: atualiza lib --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index afa740c..8193de1 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/runtime": "^7.12.5", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.17", + "@pmmmwh/react-refresh-webpack-plugin": "^0.6.1", "@rollup/plugin-babel": "^6.1.0", "@rollup/plugin-commonjs": "^28.0.7", "@rollup/plugin-node-resolve": "^15.3.1", From 3d654df5319b9624608dac5cfebc8d1009c356d0 Mon Sep 17 00:00:00 2001 From: Caio Vieira Date: Wed, 15 Oct 2025 08:24:04 -0300 Subject: [PATCH 3/6] fix: corrige NaN quando adicionamos um item no array no app demo --- demo/UncontrolledFormExamples.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/UncontrolledFormExamples.jsx b/demo/UncontrolledFormExamples.jsx index b49eaab..154bd3f 100644 --- a/demo/UncontrolledFormExamples.jsx +++ b/demo/UncontrolledFormExamples.jsx @@ -466,7 +466,7 @@ function FormArray() { const newElement = useCallback(() => { setValue((prevValue) => [...prevValue, Math.max(...prevValue) + 1]); - }); + }, [setValue]); if (refresh) { return <>; From f60180e7e1e0f0108ec95f7aa0ee51f2a6276729 Mon Sep 17 00:00:00 2001 From: Caio Vieira Date: Wed, 15 Oct 2025 08:31:11 -0300 Subject: [PATCH 4/6] chore: ajusta ci --- .github/workflows/nodejs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index af2917b..b72a65d 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [14.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 From 11c420dc1d5dc0453a07279081d05fbcac6475d8 Mon Sep 17 00:00:00 2001 From: Nerissa Aguirre Date: Wed, 15 Oct 2025 11:50:27 -0300 Subject: [PATCH 5/6] config: set Jest test environment to jsdom for browser API support --- jest.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/jest.config.js b/jest.config.js index e9e2fa5..39f0d2f 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,6 +2,7 @@ /* eslint-disable import/no-commonjs */ /* eslint-disable import/unambiguous */ module.exports = { + testEnvironment: 'jsdom', moduleNameMapper: { 'js-var-type': 'js-var-type/dist/main.cjs', }, From 4667cc6b3a7dc07dad675d74b93616f6a4b90963 Mon Sep 17 00:00:00 2001 From: nerissa-aguirre <79877143+nerissa-aguirre@users.noreply.github.com> Date: Wed, 15 Oct 2025 11:51:13 -0300 Subject: [PATCH 6/6] Update rollup.config.js --- rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index c6c2e2a..6109a4e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -15,7 +15,7 @@ module.exports = { babelHelpers: 'runtime', exclude: /node_modules/, extensions: ['.js', '.jsx'], - presets: ['@babel/preset-env', ['@babel/preset-react', { runtime: 'classic' }]], + presets: ['@babel/preset-env', ['@babel/preset-react', { runtime: 'automatic' }]], }), ], output: {