mirror of
				https://github.com/lunaisnotaboy/mastodon.git
				synced 2025-10-30 03:15:26 +00:00 
			
		
		
		
	Upgrade to React 18 (#24916)
This commit is contained in:
		
							parent
							
								
									4a22e72b9b
								
							
						
					
					
						commit
						8d6aea3326
					
				|  | @ -3,6 +3,8 @@ import PropTypes from 'prop-types'; | |||
| import { supportsPassiveEvents } from 'detect-passive-events'; | ||||
| import { scrollTop } from '../scroll'; | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| 
 | ||||
| export default class Column extends React.PureComponent { | ||||
| 
 | ||||
|   static propTypes = { | ||||
|  | @ -35,17 +37,17 @@ export default class Column extends React.PureComponent { | |||
| 
 | ||||
|   componentDidMount () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); | ||||
|       document.addEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } else { | ||||
|       this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); | ||||
|       this.node.addEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.removeEventListener('wheel', this.handleWheel); | ||||
|       document.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } else { | ||||
|       this.node.removeEventListener('wheel', this.handleWheel); | ||||
|       this.node.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ import { supportsPassiveEvents } from 'detect-passive-events'; | |||
| import classNames from 'classnames'; | ||||
| import { CircularProgress } from 'mastodon/components/loading_indicator'; | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| let id = 0; | ||||
| 
 | ||||
| class DropdownMenu extends React.PureComponent { | ||||
|  | @ -35,12 +35,13 @@ class DropdownMenu extends React.PureComponent { | |||
|   handleDocumentClick = e => { | ||||
|     if (this.node && !this.node.contains(e.target)) { | ||||
|       this.props.onClose(); | ||||
|       e.stopPropagation(); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('keydown', this.handleKeyDown, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('keydown', this.handleKeyDown, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
| 
 | ||||
|     if (this.focusedItem && this.props.openedViaKeyboard) { | ||||
|  | @ -49,8 +50,8 @@ class DropdownMenu extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('keydown', this.handleKeyDown, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('keydown', this.handleKeyDown, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,6 +15,8 @@ import { connect } from 'react-redux'; | |||
| 
 | ||||
| const MOUSE_IDLE_DELAY = 300; | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| 
 | ||||
| const mapStateToProps = (state, { scrollKey }) => { | ||||
|   return { | ||||
|     preventScroll: scrollKey === state.getIn(['dropdown_menu', 'scroll_key']), | ||||
|  | @ -237,20 +239,20 @@ class ScrollableList extends PureComponent { | |||
|   attachScrollListener () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.addEventListener('scroll', this.handleScroll); | ||||
|       document.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : undefined); | ||||
|       document.addEventListener('wheel', this.handleWheel,  listenerOptions); | ||||
|     } else { | ||||
|       this.node.addEventListener('scroll', this.handleScroll); | ||||
|       this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : undefined); | ||||
|       this.node.addEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   detachScrollListener () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.removeEventListener('scroll', this.handleScroll); | ||||
|       document.removeEventListener('wheel', this.handleWheel); | ||||
|       document.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } else { | ||||
|       this.node.removeEventListener('scroll', this.handleScroll); | ||||
|       this.node.removeEventListener('wheel', this.handleWheel); | ||||
|       this.node.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| import React, { PureComponent, Fragment } from 'react'; | ||||
| import ReactDOM from 'react-dom'; | ||||
| import { createPortal } from 'react-dom'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import { IntlProvider, addLocaleData } from 'react-intl'; | ||||
| import { fromJS } from 'immutable'; | ||||
|  | @ -95,7 +95,7 @@ export default class MediaContainer extends PureComponent { | |||
|               }), | ||||
|             }); | ||||
| 
 | ||||
|             return ReactDOM.createPortal( | ||||
|             return createPortal( | ||||
|               <Component {...props} key={`media-${i}`} />, | ||||
|               component, | ||||
|             ); | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ const messages = defineMessages({ | |||
| 
 | ||||
| let EmojiPicker, Emoji; // load asynchronously | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| 
 | ||||
| const backgroundImageFn = () => `${assetHost}/emoji/sheet_13.png`; | ||||
| 
 | ||||
|  | @ -78,12 +78,12 @@ class ModifierPickerMenu extends React.PureComponent { | |||
|   }; | ||||
| 
 | ||||
|   attachListeners () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|   removeListeners () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  | @ -176,7 +176,7 @@ class EmojiPickerMenuImpl extends React.PureComponent { | |||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
| 
 | ||||
|     // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need | ||||
|  | @ -191,7 +191,7 @@ class EmojiPickerMenuImpl extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ const messages = defineMessages({ | |||
|   clear: { id: 'emoji_button.clear', defaultMessage: 'Clear' }, | ||||
| }); | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| 
 | ||||
| class LanguageDropdownMenu extends React.PureComponent { | ||||
| 
 | ||||
|  | @ -39,11 +39,12 @@ class LanguageDropdownMenu extends React.PureComponent { | |||
|   handleDocumentClick = e => { | ||||
|     if (this.node && !this.node.contains(e.target)) { | ||||
|       this.props.onClose(); | ||||
|       e.stopPropagation(); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
| 
 | ||||
|     // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need | ||||
|  | @ -57,7 +58,7 @@ class LanguageDropdownMenu extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ const messages = defineMessages({ | |||
|   change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' }, | ||||
| }); | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| 
 | ||||
| class PrivacyDropdownMenu extends React.PureComponent { | ||||
| 
 | ||||
|  | @ -34,6 +34,7 @@ class PrivacyDropdownMenu extends React.PureComponent { | |||
|   handleDocumentClick = e => { | ||||
|     if (this.node && !this.node.contains(e.target)) { | ||||
|       this.props.onClose(); | ||||
|       e.stopPropagation(); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|  | @ -91,13 +92,13 @@ class PrivacyDropdownMenu extends React.PureComponent { | |||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|     if (this.focusedItem) this.focusedItem.focus({ preventScroll: true }); | ||||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| import React from 'react'; | ||||
| import ReactDOM from 'react-dom'; | ||||
| import { createRoot } from 'react-dom/client'; | ||||
| import { setupBrowserNotifications } from 'mastodon/actions/notifications'; | ||||
| import Mastodon from 'mastodon/containers/mastodon'; | ||||
| import { store } from 'mastodon/store'; | ||||
|  | @ -17,7 +17,8 @@ function main() { | |||
|     const mountNode = document.getElementById('mastodon'); | ||||
|     const props = JSON.parse(mountNode.getAttribute('data-props')); | ||||
| 
 | ||||
|     ReactDOM.render(<Mastodon {...props} />, mountNode); | ||||
|     const root = createRoot(mountNode); | ||||
|     root.render(<Mastodon {...props} />); | ||||
|     store.dispatch(setupBrowserNotifications()); | ||||
| 
 | ||||
|     if (process.env.NODE_ENV === 'production' && me && 'serviceWorker' in navigator) { | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ import './public-path'; | |||
| import { delegate } from '@rails/ujs'; | ||||
| import ready from '../mastodon/ready'; | ||||
| import React from 'react'; | ||||
| import ReactDOM from 'react-dom'; | ||||
| import { createRoot } from 'react-dom/client'; | ||||
| 
 | ||||
| const setAnnouncementEndsAttributes = (target) => { | ||||
|   const valid = target?.value && target?.validity?.valid; | ||||
|  | @ -231,11 +231,13 @@ ready(() => { | |||
| 
 | ||||
|     import('../mastodon/containers/admin_component').then(({ default: AdminComponent }) => { | ||||
|       return import('../mastodon/components/admin/' + componentName).then(({ default: Component }) => { | ||||
|         ReactDOM.render(( | ||||
|         const root = createRoot(element); | ||||
| 
 | ||||
|         root.render ( | ||||
|           <AdminComponent locale={locale}> | ||||
|             <Component {...componentProps} /> | ||||
|           </AdminComponent> | ||||
|         ), element); | ||||
|           </AdminComponent>, | ||||
|         ); | ||||
|       }); | ||||
|     }).catch(error => { | ||||
|       console.error(error); | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ import { delegate }  from '@rails/ujs'; | |||
| import emojify  from '../mastodon/features/emoji/emoji'; | ||||
| import { getLocale }  from '../mastodon/locales'; | ||||
| import React  from 'react'; | ||||
| import ReactDOM  from 'react-dom'; | ||||
| import { createRoot }  from 'react-dom/client'; | ||||
| import { createBrowserHistory }  from 'history'; | ||||
| 
 | ||||
| start(); | ||||
|  | @ -153,7 +153,8 @@ function loaded() { | |||
| 
 | ||||
|           const content = document.createElement('div'); | ||||
| 
 | ||||
|           ReactDOM.render(<MediaContainer locale={locale} components={reactComponents} />, content); | ||||
|           const root = createRoot(content); | ||||
|           root.render(<MediaContainer locale={locale} components={reactComponents} />); | ||||
|           document.body.appendChild(content); | ||||
|           scrollToDetailedStatus(); | ||||
|         }) | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ import { start } from '../mastodon/common'; | |||
| import ready from '../mastodon/ready'; | ||||
| import ComposeContainer  from '../mastodon/containers/compose_container'; | ||||
| import React from 'react'; | ||||
| import ReactDOM from 'react-dom'; | ||||
| import { createRoot } from 'react-dom/client'; | ||||
| 
 | ||||
| start(); | ||||
| 
 | ||||
|  | @ -16,7 +16,8 @@ function loaded() { | |||
|     if(!attr) return; | ||||
| 
 | ||||
|     const props = JSON.parse(attr); | ||||
|     ReactDOM.render(<ComposeContainer {...props} />, mountNode); | ||||
|     const root = createRoot(mountNode); | ||||
|     root.render(<ComposeContainer {...props} />); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										13
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								package.json
									
									
									
									
									
								
							|  | @ -87,8 +87,8 @@ | |||
|     "postcss-loader": "^4.3.0", | ||||
|     "prop-types": "^15.8.1", | ||||
|     "punycode": "^2.3.0", | ||||
|     "react": "^16.14.0", | ||||
|     "react-dom": "^16.14.0", | ||||
|     "react": "^18.2.0", | ||||
|     "react-dom": "^18.2.0", | ||||
|     "react-helmet": "^6.1.0", | ||||
|     "react-hotkeys": "^1.1.4", | ||||
|     "react-immutable-proptypes": "^2.2.0", | ||||
|  | @ -140,7 +140,7 @@ | |||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@testing-library/jest-dom": "^5.16.5", | ||||
|     "@testing-library/react": "^12.1.5", | ||||
|     "@testing-library/react": "^14.0.0", | ||||
|     "@types/babel__core": "^7.20.0", | ||||
|     "@types/emoji-mart": "^3.0.9", | ||||
|     "@types/escape-html": "^1.0.2", | ||||
|  | @ -155,8 +155,8 @@ | |||
|     "@types/pg": "^8.6.6", | ||||
|     "@types/prop-types": "^15.7.5", | ||||
|     "@types/punycode": "^2.1.0", | ||||
|     "@types/react": "^16.14.38", | ||||
|     "@types/react-dom": "^16.9.18", | ||||
|     "@types/react": "^18.0.26", | ||||
|     "@types/react-dom": "^18.2.4", | ||||
|     "@types/react-helmet": "^6.1.6", | ||||
|     "@types/react-immutable-proptypes": "^2.1.0", | ||||
|     "@types/react-intl": "2.3.18", | ||||
|  | @ -195,7 +195,7 @@ | |||
|     "lint-staged": "^13.2.2", | ||||
|     "prettier": "^2.8.8", | ||||
|     "react-intl-translations-manager": "^5.0.3", | ||||
|     "react-test-renderer": "^16.14.0", | ||||
|     "react-test-renderer": "^18.2.0", | ||||
|     "stylelint": "^15.6.1", | ||||
|     "stylelint-config-standard-scss": "^9.0.0", | ||||
|     "typescript": "^5.0.4", | ||||
|  | @ -203,6 +203,7 @@ | |||
|     "yargs": "^17.7.2" | ||||
|   }, | ||||
|   "resolutions": { | ||||
|     "@types/react": "^18.0.26", | ||||
|     "kind-of": "^6.0.3", | ||||
|     "webpack/terser-webpack-plugin": "^4.2.3" | ||||
|   }, | ||||
|  |  | |||
							
								
								
									
										178
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										178
									
								
								yarn.lock
									
									
									
									
									
								
							|  | @ -1055,14 +1055,6 @@ | |||
|   resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" | ||||
|   integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== | ||||
| 
 | ||||
| "@babel/runtime-corejs3@^7.10.2": | ||||
|   version "7.10.3" | ||||
|   resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz#931ed6941d3954924a7aa967ee440e60c507b91a" | ||||
|   integrity sha512-HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw== | ||||
|   dependencies: | ||||
|     core-js-pure "^3.0.0" | ||||
|     regenerator-runtime "^0.13.4" | ||||
| 
 | ||||
| "@babel/runtime@7.0.0": | ||||
|   version "7.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" | ||||
|  | @ -1070,7 +1062,7 @@ | |||
|   dependencies: | ||||
|     regenerator-runtime "^0.12.0" | ||||
| 
 | ||||
| "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": | ||||
| "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": | ||||
|   version "7.21.5" | ||||
|   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" | ||||
|   integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== | ||||
|  | @ -1822,18 +1814,18 @@ | |||
|     magic-string "^0.25.0" | ||||
|     string.prototype.matchall "^4.0.6" | ||||
| 
 | ||||
| "@testing-library/dom@^8.0.0": | ||||
|   version "8.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.1.0.tgz#f8358b1883844ea569ba76b7e94582168df5370d" | ||||
|   integrity sha512-kmW9alndr19qd6DABzQ978zKQ+J65gU2Rzkl8hriIetPnwpesRaK4//jEQyYh8fEALmGhomD/LBQqt+o+DL95Q== | ||||
| "@testing-library/dom@^9.0.0": | ||||
|   version "9.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.2.0.tgz#0e1f45e956f2a16f471559c06edd8827c4832f04" | ||||
|   integrity sha512-xTEnpUKiV/bMyEsE5bT4oYA0x0Z/colMtxzUY8bKyPXBNLn/e0V4ZjBZkEhms0xE4pv9QsPfSRu9AWS4y5wGvA== | ||||
|   dependencies: | ||||
|     "@babel/code-frame" "^7.10.4" | ||||
|     "@babel/runtime" "^7.12.5" | ||||
|     "@types/aria-query" "^4.2.0" | ||||
|     aria-query "^4.2.2" | ||||
|     "@types/aria-query" "^5.0.1" | ||||
|     aria-query "^5.0.0" | ||||
|     chalk "^4.1.0" | ||||
|     dom-accessibility-api "^0.5.6" | ||||
|     lz-string "^1.4.4" | ||||
|     dom-accessibility-api "^0.5.9" | ||||
|     lz-string "^1.5.0" | ||||
|     pretty-format "^27.0.2" | ||||
| 
 | ||||
| "@testing-library/jest-dom@^5.16.5": | ||||
|  | @ -1851,14 +1843,14 @@ | |||
|     lodash "^4.17.15" | ||||
|     redent "^3.0.0" | ||||
| 
 | ||||
| "@testing-library/react@^12.1.5": | ||||
|   version "12.1.5" | ||||
|   resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" | ||||
|   integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== | ||||
| "@testing-library/react@^14.0.0": | ||||
|   version "14.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c" | ||||
|   integrity sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg== | ||||
|   dependencies: | ||||
|     "@babel/runtime" "^7.12.5" | ||||
|     "@testing-library/dom" "^8.0.0" | ||||
|     "@types/react-dom" "<18.0.0" | ||||
|     "@testing-library/dom" "^9.0.0" | ||||
|     "@types/react-dom" "^18.0.0" | ||||
| 
 | ||||
| "@tootallnate/once@2": | ||||
|   version "2.0.0" | ||||
|  | @ -1870,10 +1862,10 @@ | |||
|   resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" | ||||
|   integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== | ||||
| 
 | ||||
| "@types/aria-query@^4.2.0": | ||||
|   version "4.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" | ||||
|   integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== | ||||
| "@types/aria-query@^5.0.1": | ||||
|   version "5.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" | ||||
|   integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== | ||||
| 
 | ||||
| "@types/babel__core@^7.1.12", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.3": | ||||
|   version "7.1.18" | ||||
|  | @ -2189,19 +2181,12 @@ | |||
|   resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" | ||||
|   integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== | ||||
| 
 | ||||
| "@types/react-dom@<18.0.0": | ||||
|   version "17.0.15" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156" | ||||
|   integrity sha512-Tr9VU9DvNoHDWlmecmcsE5ZZiUkYx+nKBzum4Oxe1K0yJVyBlfbq7H3eXjxXqJczBKqPGq3EgfTru4MgKb9+Yw== | ||||
| "@types/react-dom@^18.0.0", "@types/react-dom@^18.2.4": | ||||
|   version "18.2.4" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.4.tgz#13f25bfbf4e404d26f62ac6e406591451acba9e0" | ||||
|   integrity sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw== | ||||
|   dependencies: | ||||
|     "@types/react" "^17" | ||||
| 
 | ||||
| "@types/react-dom@^16.9.18": | ||||
|   version "16.9.18" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.18.tgz#1fda8b84370b1339d639a797a84c16d5a195b419" | ||||
|   integrity sha512-lmNARUX3+rNF/nmoAFqasG0jAA7q6MeGZK/fdeLwY3kAA4NPgHHrG5bNQe2B5xmD4B+x6Z6h0rEJQ7MEEgQxsw== | ||||
|   dependencies: | ||||
|     "@types/react" "^16" | ||||
|     "@types/react" "*" | ||||
| 
 | ||||
| "@types/react-helmet@^6.1.6": | ||||
|   version "6.1.6" | ||||
|  | @ -2323,28 +2308,10 @@ | |||
|   dependencies: | ||||
|     "@types/react" "*" | ||||
| 
 | ||||
| "@types/react@*", "@types/react@^17": | ||||
|   version "17.0.44" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" | ||||
|   integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== | ||||
|   dependencies: | ||||
|     "@types/prop-types" "*" | ||||
|     "@types/scheduler" "*" | ||||
|     csstype "^3.0.2" | ||||
| 
 | ||||
| "@types/react@>=16.9.11": | ||||
|   version "18.0.26" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" | ||||
|   integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== | ||||
|   dependencies: | ||||
|     "@types/prop-types" "*" | ||||
|     "@types/scheduler" "*" | ||||
|     csstype "^3.0.2" | ||||
| 
 | ||||
| "@types/react@^16", "@types/react@^16.14.38": | ||||
|   version "16.14.38" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.38.tgz#b814d157ca8906603593d5106f6d733af9b79df4" | ||||
|   integrity sha512-PbEjuhwkdH6IB5Sak6BFAqpVMHY/wJxa0EG3bKkr0vWA2hSDIq3iEMhHyqjXrDFMqRzkiQkdyNXOnoELrh/9aQ== | ||||
| "@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.0.26": | ||||
|   version "18.2.6" | ||||
|   resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571" | ||||
|   integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA== | ||||
|   dependencies: | ||||
|     "@types/prop-types" "*" | ||||
|     "@types/scheduler" "*" | ||||
|  | @ -2975,14 +2942,6 @@ argparse@^2.0.1: | |||
|   resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" | ||||
|   integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== | ||||
| 
 | ||||
| aria-query@^4.2.2: | ||||
|   version "4.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" | ||||
|   integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== | ||||
|   dependencies: | ||||
|     "@babel/runtime" "^7.10.2" | ||||
|     "@babel/runtime-corejs3" "^7.10.2" | ||||
| 
 | ||||
| aria-query@^5.0.0, aria-query@^5.1.3: | ||||
|   version "5.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" | ||||
|  | @ -4151,11 +4110,6 @@ core-js-compat@^3.25.1: | |||
|   dependencies: | ||||
|     browserslist "^4.21.4" | ||||
| 
 | ||||
| core-js-pure@^3.0.0: | ||||
|   version "3.6.5" | ||||
|   resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" | ||||
|   integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== | ||||
| 
 | ||||
| core-js@^2.5.0: | ||||
|   version "2.6.12" | ||||
|   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" | ||||
|  | @ -4756,6 +4710,11 @@ dom-accessibility-api@^0.5.6: | |||
|   resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" | ||||
|   integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== | ||||
| 
 | ||||
| dom-accessibility-api@^0.5.9: | ||||
|   version "0.5.16" | ||||
|   resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" | ||||
|   integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== | ||||
| 
 | ||||
| dom-helpers@^3.4.0: | ||||
|   version "3.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" | ||||
|  | @ -7903,10 +7862,10 @@ lru-cache@^9.0.0: | |||
|   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.0.1.tgz#ac061ed291f8b9adaca2b085534bb1d3b61bef83" | ||||
|   integrity sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg== | ||||
| 
 | ||||
| lz-string@^1.4.4: | ||||
|   version "1.4.4" | ||||
|   resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" | ||||
|   integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= | ||||
| lz-string@^1.5.0: | ||||
|   version "1.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" | ||||
|   integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== | ||||
| 
 | ||||
| magic-string@^0.25.0, magic-string@^0.25.7: | ||||
|   version "0.25.9" | ||||
|  | @ -9534,15 +9493,13 @@ raw-body@2.5.1: | |||
|     iconv-lite "0.4.24" | ||||
|     unpipe "1.0.0" | ||||
| 
 | ||||
| react-dom@^16.14.0: | ||||
|   version "16.14.0" | ||||
|   resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" | ||||
|   integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== | ||||
| react-dom@^18.2.0: | ||||
|   version "18.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" | ||||
|   integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== | ||||
|   dependencies: | ||||
|     loose-envify "^1.1.0" | ||||
|     object-assign "^4.1.1" | ||||
|     prop-types "^15.6.2" | ||||
|     scheduler "^0.19.1" | ||||
|     scheduler "^0.23.0" | ||||
| 
 | ||||
| react-event-listener@^0.6.0: | ||||
|   version "0.6.6" | ||||
|  | @ -9612,7 +9569,12 @@ react-intl@^2.9.0: | |||
|     intl-relativeformat "^2.1.0" | ||||
|     invariant "^2.1.1" | ||||
| 
 | ||||
| react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.6: | ||||
| "react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.2.0: | ||||
|   version "18.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" | ||||
|   integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== | ||||
| 
 | ||||
| react-is@^16.13.1, react-is@^16.7.0: | ||||
|   version "16.13.1" | ||||
|   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" | ||||
|   integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== | ||||
|  | @ -9730,6 +9692,14 @@ react-select@*, react-select@^5.7.3: | |||
|     react-transition-group "^4.3.0" | ||||
|     use-isomorphic-layout-effect "^1.1.2" | ||||
| 
 | ||||
| react-shallow-renderer@^16.15.0: | ||||
|   version "16.15.0" | ||||
|   resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" | ||||
|   integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== | ||||
|   dependencies: | ||||
|     object-assign "^4.1.1" | ||||
|     react-is "^16.12.0 || ^17.0.0 || ^18.0.0" | ||||
| 
 | ||||
| react-side-effect@^2.1.0: | ||||
|   version "2.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" | ||||
|  | @ -9773,15 +9743,14 @@ react-swipeable-views@^0.14.0: | |||
|     react-swipeable-views-utils "^0.14.0" | ||||
|     warning "^4.0.1" | ||||
| 
 | ||||
| react-test-renderer@^16.14.0: | ||||
|   version "16.14.0" | ||||
|   resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" | ||||
|   integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== | ||||
| react-test-renderer@^18.2.0: | ||||
|   version "18.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-18.2.0.tgz#1dd912bd908ff26da5b9fca4fd1c489b9523d37e" | ||||
|   integrity sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA== | ||||
|   dependencies: | ||||
|     object-assign "^4.1.1" | ||||
|     prop-types "^15.6.2" | ||||
|     react-is "^16.8.6" | ||||
|     scheduler "^0.19.1" | ||||
|     react-is "^18.2.0" | ||||
|     react-shallow-renderer "^16.15.0" | ||||
|     scheduler "^0.23.0" | ||||
| 
 | ||||
| react-textarea-autosize@*, react-textarea-autosize@^8.4.1: | ||||
|   version "8.4.1" | ||||
|  | @ -9809,14 +9778,12 @@ react-transition-group@^4.3.0: | |||
|     loose-envify "^1.4.0" | ||||
|     prop-types "^15.6.2" | ||||
| 
 | ||||
| react@^16.14.0: | ||||
|   version "16.14.0" | ||||
|   resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" | ||||
|   integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== | ||||
| react@^18.2.0: | ||||
|   version "18.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" | ||||
|   integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== | ||||
|   dependencies: | ||||
|     loose-envify "^1.1.0" | ||||
|     object-assign "^4.1.1" | ||||
|     prop-types "^15.6.2" | ||||
| 
 | ||||
| read-pkg-up@^7.0.1: | ||||
|   version "7.0.1" | ||||
|  | @ -9946,7 +9913,7 @@ regenerator-runtime@^0.12.0: | |||
|   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" | ||||
|   integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== | ||||
| 
 | ||||
| regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: | ||||
| regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3: | ||||
|   version "0.13.11" | ||||
|   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" | ||||
|   integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== | ||||
|  | @ -10296,13 +10263,12 @@ saxes@^6.0.0: | |||
|   dependencies: | ||||
|     xmlchars "^2.2.0" | ||||
| 
 | ||||
| scheduler@^0.19.1: | ||||
|   version "0.19.1" | ||||
|   resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" | ||||
|   integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== | ||||
| scheduler@^0.23.0: | ||||
|   version "0.23.0" | ||||
|   resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" | ||||
|   integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== | ||||
|   dependencies: | ||||
|     loose-envify "^1.1.0" | ||||
|     object-assign "^4.1.1" | ||||
| 
 | ||||
| schema-utils@^1.0.0: | ||||
|   version "1.0.0" | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue