diff --git a/package.json b/package.json index 283f34719d..3a463e7133 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ }, "dependencies": {}, "resolutions": { - "@types/react": "17.0.71", + "@types/react": "18.2.45", "react-i18next": ">=11.16.4" }, "volta": { diff --git a/packages/neuron-ui/package.json b/packages/neuron-ui/package.json index cb89423746..972cc67e43 100644 --- a/packages/neuron-ui/package.json +++ b/packages/neuron-ui/package.json @@ -55,14 +55,14 @@ "@nervosnetwork/ckb-sdk-core": "0.109.0", "@nervosnetwork/ckb-sdk-utils": "0.109.0", "canvg": "2.0.0", - "i18next": "21.10.0", + "i18next": "23.7.11", "immer": "9.0.21", "jsqr": "1.4.0", "office-ui-fabric-react": "7.204.0", "qr.js": "0.0.0", - "react": "17.0.2", - "react-dom": "17.0.2", - "react-i18next": "12.1.5", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-i18next": "13.5.0", "react-router-dom": "6.21.0", "react-transition-group": "4.4.5", "sass": "1.69.5", @@ -84,8 +84,8 @@ "@types/enzyme": "3.10.18", "@types/enzyme-adapter-react-16": "1.0.9", "@types/node": "18.19.3", - "@types/react": "17.0.71", - "@types/react-dom": "17.0.25", + "@types/react": "18.2.45", + "@types/react-dom": "18.2.18", "@types/react-router-dom": "5.3.3", "@types/styled-components": "5.1.34", "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", @@ -100,7 +100,7 @@ "jest-styled-components": "7.2.0", "react-app-rewired": "2.2.1", "react-scripts": "5.0.1", - "react-test-renderer": "16.14.0", + "react-test-renderer": "18.2.0", "storybook": "7.6.6", "storybook-addon-react-router-v6": "1.0.2", "webpack": "5.89.0" diff --git a/packages/neuron-ui/src/components/ImportHardware/select-model.tsx b/packages/neuron-ui/src/components/ImportHardware/select-model.tsx index 67c2c7acd6..6c539575c3 100644 --- a/packages/neuron-ui/src/components/ImportHardware/select-model.tsx +++ b/packages/neuron-ui/src/components/ImportHardware/select-model.tsx @@ -51,7 +51,7 @@ const SelectModel = ({ dispatch }: { dispatch: React.Dispatch }) => }) }, [dispatch, model]) - const onClickDeviceType = useCallback(e => { + const onClickDeviceType: React.ChangeEventHandler = useCallback(e => { const { dataset } = e.target setModel( dataset.manufacturer && dataset.product diff --git a/packages/neuron-ui/src/components/NervosDAODetail/CellsCard/index.tsx b/packages/neuron-ui/src/components/NervosDAODetail/CellsCard/index.tsx index d6f8041f8c..da7689cd06 100644 --- a/packages/neuron-ui/src/components/NervosDAODetail/CellsCard/index.tsx +++ b/packages/neuron-ui/src/components/NervosDAODetail/CellsCard/index.tsx @@ -13,12 +13,11 @@ import CopyZone from 'widgets/CopyZone' import Tooltip from 'widgets/Tooltip' import styles from './cellsCard.module.scss' -const TabsVariantWithCellsCard: FC< - VariantProps<{ - title: string - cells: (State.DetailedInput | State.DetailedOutput)[] - }> -> = ({ tabs, selectedTab, onTabChange }) => { +const TabsVariantWithCellsCard = ({ + tabs, + selectedTab, + onTabChange, +}: VariantProps<{ title: string; cells: (State.DetailedInput | State.DetailedOutput)[] }>): React.ReactElement => { const [t] = useTranslation() const { chain: { networkID }, diff --git a/packages/neuron-ui/src/components/NervosDAODetail/index.tsx b/packages/neuron-ui/src/components/NervosDAODetail/index.tsx index 6fc9fd8a53..f4ed335c33 100644 --- a/packages/neuron-ui/src/components/NervosDAODetail/index.tsx +++ b/packages/neuron-ui/src/components/NervosDAODetail/index.tsx @@ -1,4 +1,4 @@ -import React, { FC, useCallback, useEffect, useMemo, useState } from 'react' +import React, { useCallback, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { useState as useGlobalState, transactionState, useDispatch, showPageNotice } from 'states' import { @@ -25,12 +25,11 @@ import styles from './nervosDAODetail.module.scss' import hooks from './hooks' import CellsCard from './CellsCard' -const TabsVariantWithTxTypes: FC< - VariantProps<{ - title: string - hash: string - }> -> = ({ tabs, selectedTab, onTabChange }) => { +const TabsVariantWithTxTypes = ({ + tabs, + selectedTab, + onTabChange, +}: VariantProps>): React.ReactElement => { const [t] = useTranslation() const [transaction, setTransaction] = useState(transactionState) const [error, setError] = useState() diff --git a/packages/neuron-ui/src/components/NetworkSetting/index.tsx b/packages/neuron-ui/src/components/NetworkSetting/index.tsx index 7af39881f5..aeb393cc48 100644 --- a/packages/neuron-ui/src/components/NetworkSetting/index.tsx +++ b/packages/neuron-ui/src/components/NetworkSetting/index.tsx @@ -62,7 +62,7 @@ const NetworkSetting = ({ chain = chainState, settings: { networks = [] } }: Sta useOnWindowResize(toggleBottomBorder) const handleChange = useCallback( - checked => { + (checked: string) => { if (checked !== currentId) { setCurrentNetwork(checked) } diff --git a/packages/neuron-ui/src/components/Overview/index.tsx b/packages/neuron-ui/src/components/Overview/index.tsx index 0275ab5fec..c637c9aae3 100644 --- a/packages/neuron-ui/src/components/Overview/index.tsx +++ b/packages/neuron-ui/src/components/Overview/index.tsx @@ -100,7 +100,7 @@ const Overview = () => { })(dispatch) }, [id, dispatch]) - const onRecentActivityClick = useCallback((_, item: State.Transaction) => { + const onRecentActivityClick = useCallback((_: React.SyntheticEvent, item: State.Transaction) => { const { hash } = item navigate(`${RoutePath.Overview}/${hash}`) }, []) diff --git a/packages/neuron-ui/src/components/SUDTSend/hooks.ts b/packages/neuron-ui/src/components/SUDTSend/hooks.ts index 14c84f6cc9..0b06e1189c 100644 --- a/packages/neuron-ui/src/components/SUDTSend/hooks.ts +++ b/packages/neuron-ui/src/components/SUDTSend/hooks.ts @@ -1,3 +1,4 @@ +import type { TOptions } from 'i18next' import React, { useCallback, useEffect, useMemo, useState } from 'react' import { AccountType, isAnyoneCanPayAddress, isSecp256k1Address, isSuccessResponse, shannonToCKBFormatter } from 'utils' import { SUDTAccount } from 'components/SUDTAccountList' @@ -29,7 +30,7 @@ type Option = { tooltip?: string label: string key: SendType - params?: object + params?: TOptions } export function useOptions({ address, @@ -127,8 +128,8 @@ export function useSendType({ } }, [addressLockType, accountType]) const onChange = useCallback( - id => { - setSendType(id as SendType) + (id: SendType | undefined) => { + setSendType(id) }, [setSendType] ) @@ -138,6 +139,10 @@ export function useSendType({ } } +export const isSendType = (v: string): v is SendType => { + return Object.values(SendType).includes(v as SendType) +} + export function getGenerator(sendType?: SendType) { if (sendType === SendType.secp256Cheque) { return generateChequeTransaction diff --git a/packages/neuron-ui/src/components/SUDTSend/index.tsx b/packages/neuron-ui/src/components/SUDTSend/index.tsx index 3b13ee4aad..8b7661721c 100644 --- a/packages/neuron-ui/src/components/SUDTSend/index.tsx +++ b/packages/neuron-ui/src/components/SUDTSend/index.tsx @@ -34,7 +34,15 @@ import { SendType } from 'utils/enums' import { AmountNotEnoughException, isErrorWithI18n } from 'exceptions' import { getDisplayName, getDisplaySymbol } from 'components/UANDisplay' import { Attention } from 'widgets/Icons/icon' -import { AddressLockType, getGenerator, useAddressLockType, useOnSubmit, useOptions, useSendType } from './hooks' +import { + AddressLockType, + getGenerator, + isSendType, + useAddressLockType, + useOnSubmit, + useOptions, + useSendType, +} from './hooks' import styles from './sUDTSend.module.scss' const { INIT_SEND_PRICE, DEFAULT_SUDT_FIELDS, HIDE_BALANCE } = CONSTANTS @@ -401,7 +409,11 @@ const SUDTSend = () => { <> {options.length > 1 ? ( { + if (isSendType(v)) { + onChangeSendType(v) + } + }} itemClassName={styles.optionItem} options={options.map(item => ({ value: item.key, diff --git a/packages/neuron-ui/src/components/SpecialAssetList/index.tsx b/packages/neuron-ui/src/components/SpecialAssetList/index.tsx index 402d9f1e01..f0f9a69cb5 100644 --- a/packages/neuron-ui/src/components/SpecialAssetList/index.tsx +++ b/packages/neuron-ui/src/components/SpecialAssetList/index.tsx @@ -220,7 +220,7 @@ const SpecialAssetList = () => { }, [search, id, dispatch, fetchList]) const handleActionSuccess = useCallback( - text => { + (text: string) => { setNotice(text) fetchList(id, pageNo) }, diff --git a/packages/neuron-ui/src/components/WalletEditorDialog/hooks.ts b/packages/neuron-ui/src/components/WalletEditorDialog/hooks.ts index 0a344b51cf..afe9f4c3c5 100644 --- a/packages/neuron-ui/src/components/WalletEditorDialog/hooks.ts +++ b/packages/neuron-ui/src/components/WalletEditorDialog/hooks.ts @@ -1,3 +1,4 @@ +import type { TOptions } from 'i18next' import { useState, useMemo, useCallback } from 'react' import { StateDispatch, updateWalletProperty } from 'states' import { ErrorCode, ResponseCode, CONSTANTS } from 'utils' @@ -61,7 +62,11 @@ export const useOnSubmit = ( }, [name, id, dispatch, disabled]) } -export const useHint = (name: string, usedNames: string[], t: (key: string, opts: object) => string): string | null => { +export const useHint = ( + name: string, + usedNames: string[], + t: (key: string, opts: TOptions) => string +): string | null => { return useMemo(() => { if (name === '') { return t(`messages.codes.${ErrorCode.FieldRequired}`, { fieldName: 'name' }) diff --git a/packages/neuron-ui/src/components/WalletSetting/index.tsx b/packages/neuron-ui/src/components/WalletSetting/index.tsx index 19a94a203a..821ae19c7b 100644 --- a/packages/neuron-ui/src/components/WalletSetting/index.tsx +++ b/packages/neuron-ui/src/components/WalletSetting/index.tsx @@ -71,7 +71,7 @@ const WalletSetting = ({ const onHandleWallet = useOnHandleWallet({ dispatch }) const handleChange = useCallback( - checked => { + (checked: string) => { onHandleWallet({ target: { dataset: { diff --git a/packages/neuron-ui/src/components/WalletWizard/hooks.ts b/packages/neuron-ui/src/components/WalletWizard/hooks.ts index 40547bd7d8..c52c3867bd 100644 --- a/packages/neuron-ui/src/components/WalletWizard/hooks.ts +++ b/packages/neuron-ui/src/components/WalletWizard/hooks.ts @@ -3,8 +3,9 @@ import { useState, useCallback } from 'react' export const useInputWords = () => { const [inputsWords, setInputsWords] = useState(new Array(12).fill('')) const onChangeInput = useCallback( - e => { - const idx = +e.target.dataset.idx + (e: React.ChangeEvent) => { + const idx = Number(e.target.dataset.idx) + if (Number.isNaN(idx)) return const { value } = e.target setInputsWords(v => { const newWords = [...v] diff --git a/packages/neuron-ui/src/containers/Main/hooks.ts b/packages/neuron-ui/src/containers/Main/hooks.ts index 3111c1ca43..e8c04e5a65 100644 --- a/packages/neuron-ui/src/containers/Main/hooks.ts +++ b/packages/neuron-ui/src/containers/Main/hooks.ts @@ -118,7 +118,7 @@ export const useSubscription = ({ const { pageNo, pageSize, keywords } = chain.transactions const navigateToolsRouter = useCallback( - path => { + (path: string) => { const { pathname } = location const currentPath = [RoutePath.OfflineSign, RoutePath.SignVerify, RoutePath.MultisigAddress].find(item => pathname.includes(item) diff --git a/packages/neuron-ui/src/widgets/Alert/index.tsx b/packages/neuron-ui/src/widgets/Alert/index.tsx index 79db002055..f1e1fe4b09 100644 --- a/packages/neuron-ui/src/widgets/Alert/index.tsx +++ b/packages/neuron-ui/src/widgets/Alert/index.tsx @@ -4,7 +4,7 @@ import styles from './index.module.scss' type AlertStatus = 'init' | 'success' | 'error' | 'warn' -const Alert: React.FC<{ status: AlertStatus; className?: string; withIcon?: boolean }> = ({ +const Alert: React.FC> = ({ status, children, className, diff --git a/packages/neuron-ui/src/widgets/RadioGroup/index.tsx b/packages/neuron-ui/src/widgets/RadioGroup/index.tsx index 1ca7197d1a..0355b90693 100644 --- a/packages/neuron-ui/src/widgets/RadioGroup/index.tsx +++ b/packages/neuron-ui/src/widgets/RadioGroup/index.tsx @@ -11,7 +11,7 @@ export interface RadioGroupOptions { export interface RadioGroupProps { options: RadioGroupOptions[] - onChange?: (arg: string | number) => void + onChange?: (arg: string) => void defaultValue?: string | number value?: string | number itemClassName?: string diff --git a/packages/neuron-ui/src/widgets/RingProgressBar/index.tsx b/packages/neuron-ui/src/widgets/RingProgressBar/index.tsx index 5712fd2bc7..ff85f6561f 100644 --- a/packages/neuron-ui/src/widgets/RingProgressBar/index.tsx +++ b/packages/neuron-ui/src/widgets/RingProgressBar/index.tsx @@ -13,12 +13,14 @@ const RingProgressBar = ({ strokeWidth?: React.CSSProperties['strokeWidth'] size?: React.CSSProperties['width'] }) => { + // declare background as a string to avoid type error "Expression produces a union type that is too complex to represent." + const background: string = `conic-gradient(${color} 0%, ${color} ${percents}%, ${backgroundColor} ${percents}%, ${backgroundColor} 100%)` return (
void } -const Tooltip: React.FC = ({ +const Tooltip: React.FC> = ({ children, tip, className = '', diff --git a/yarn.lock b/yarn.lock index f85263809a..c60f420524 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2023,7 +2023,7 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime@^7.13.10": +"@babel/runtime@^7.13.10", "@babel/runtime@^7.23.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== @@ -5828,12 +5828,12 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@17.0.25": - version "17.0.25" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.25.tgz#e0e5b3571e1069625b3a3da2b279379aa33a0cb5" - integrity sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA== +"@types/react-dom@18.2.18": + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd" + integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw== dependencies: - "@types/react" "^17" + "@types/react" "*" "@types/react-router-dom@5.3.3": version "5.3.3" @@ -5852,10 +5852,10 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*", "@types/react@17.0.71", "@types/react@>=16", "@types/react@^16", "@types/react@^17": - version "17.0.71" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.71.tgz#3673d446ad482b1564e44bf853b3ab5bcbc942c4" - integrity sha512-lfqOu9mp16nmaGRrS8deS2Taqhd5Ih0o92Te5Ws6I1py4ytHBcXLqh0YIqVsViqwVI5f+haiFM6hju814BzcmA== +"@types/react@*", "@types/react@18.2.45", "@types/react@>=16", "@types/react@^16": + version "18.2.45" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.45.tgz#253f4fac288e7e751ab3dc542000fb687422c15c" + integrity sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -12084,6 +12084,13 @@ i18next@21.10.0: dependencies: "@babel/runtime" "^7.17.2" +i18next@23.7.11: + version "23.7.11" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.7.11.tgz#ee4dfa58f9b27807ebf57d7c33a6c4a0bb4bf7c8" + integrity sha512-A/vOkw8vY99YHU9A1Td3I1dcTiYaPnwBWzrpVzfXUXSYgogK3cmBcmop/0cnXPc6QpUWIyqaugKNxRUEZVk9Nw== + dependencies: + "@babel/runtime" "^7.23.2" + iconv-corefoundation@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a" @@ -17036,14 +17043,13 @@ react-docgen@^7.0.0: resolve "^1.22.1" strip-indent "^4.0.0" -react-dom@17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +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" - scheduler "^0.20.2" + scheduler "^0.23.0" react-element-to-jsx-string@^15.0.0: version "15.0.0" @@ -17059,7 +17065,7 @@ react-error-overlay@^6.0.11: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== -react-i18next@12.1.5, react-i18next@>=11.16.4: +react-i18next@13.5.0, react-i18next@>=11.16.4: version "13.5.0" resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.5.0.tgz#44198f747628267a115c565f0c736a50a76b1ab0" integrity sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA== @@ -17077,7 +17083,7 @@ react-is@18.1.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0: +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^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== @@ -17191,7 +17197,7 @@ react-scripts@5.0.1: optionalDependencies: fsevents "^2.3.2" -react-shallow-renderer@^16.13.1: +react-shallow-renderer@^16.13.1, 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== @@ -17208,7 +17214,16 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" -react-test-renderer@16.14.0, react-test-renderer@^16.0.0-0: +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: + react-is "^18.2.0" + react-shallow-renderer "^16.15.0" + scheduler "^0.23.0" + +react-test-renderer@^16.0.0-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== @@ -17238,13 +17253,12 @@ react-transition-group@4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -react@17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +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" read-cache@^1.0.0: version "1.0.0" @@ -17912,6 +17926,13 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" +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" + schema-utils@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"