From 8033835733a402ed043feb6f1b5e6b5bcc47ca2a Mon Sep 17 00:00:00 2001 From: yanguoyu <841185308@qq.com> Date: Mon, 10 Oct 2022 21:20:49 +0800 Subject: [PATCH 1/4] feat: Update react-router to v6. --- packages/neuron-ui/package.json | 3 +- .../src/components/Addresses/index.tsx | 8 +- .../src/components/HardwareSign/index.tsx | 18 +- .../src/components/HardwareSign/success.tsx | 8 +- .../src/components/History/index.tsx | 10 +- .../ImportHardware/select-model.tsx | 6 +- .../src/components/ImportKeystore/index.tsx | 10 +- .../src/components/LaunchScreen/index.tsx | 8 +- .../src/components/NFTSend/index.tsx | 2 +- .../src/components/NetworkEditor/hooks.ts | 12 +- .../src/components/NetworkEditor/index.tsx | 8 +- .../src/components/NetworkSetting/index.tsx | 10 +- .../src/components/OfflineSign/index.tsx | 14 +- .../components/OfflineSignDialog/index.tsx | 14 +- .../src/components/Overview/index.tsx | 8 +- .../src/components/PasswordRequest/index.tsx | 12 +- .../src/components/Receive/index.tsx | 12 +- .../src/components/SUDTAccountList/index.tsx | 12 +- .../src/components/SUDTSend/index.tsx | 6 +- .../src/components/SettingTabs/index.tsx | 41 +- .../src/components/SpecialAssetList/index.tsx | 11 +- .../src/components/WalletEditor/hooks.ts | 8 +- .../src/components/WalletEditor/index.tsx | 12 +- .../src/components/WalletSetting/index.tsx | 12 +- .../src/components/WalletWizard/index.tsx | 73 +- .../src/components/withWizard/index.tsx | 35 +- .../neuron-ui/src/containers/Main/hooks.ts | 24 +- .../neuron-ui/src/containers/Main/index.tsx | 155 +-- .../neuron-ui/src/containers/Navbar/index.tsx | 8 +- .../src/containers/Settings/index.tsx | 32 +- packages/neuron-ui/src/index.tsx | 29 +- packages/neuron-ui/src/router.tsx | 311 +++++ .../stateProvider/actionCreators/app.ts | 10 +- .../stateProvider/actionCreators/settings.ts | 8 +- .../src/stories/SUDTReceive.stories.tsx | 2 +- packages/neuron-ui/src/utils/enums.ts | 12 +- packages/neuron-ui/src/utils/hooks/index.ts | 22 +- packages/neuron-ui/src/utils/index.ts | 1 - packages/neuron-ui/src/utils/renderHooks.tsx | 16 - .../neuron-ui/src/widgets/Breadcrum/index.tsx | 8 +- packages/neuron-wallet/package.json | 2 +- .../neuron-wallet/src/utils/to-csv-row.ts | 2 +- yarn.lock | 1123 +++++++++-------- 43 files changed, 1138 insertions(+), 1000 deletions(-) create mode 100644 packages/neuron-ui/src/router.tsx delete mode 100644 packages/neuron-ui/src/utils/renderHooks.tsx diff --git a/packages/neuron-ui/package.json b/packages/neuron-ui/package.json index e2b3759f89..73c95404ce 100644 --- a/packages/neuron-ui/package.json +++ b/packages/neuron-ui/package.json @@ -54,7 +54,7 @@ "react": "16.12.0", "react-dom": "16.12.0", "react-i18next": "11.15.3", - "react-router-dom": "5.1.2", + "react-router-dom": "6.4.1", "sass": "1.47.0" }, "devDependencies": { @@ -72,7 +72,6 @@ "@types/node": "12.12.14", "@types/react": "16.9.15", "@types/react-dom": "16.9.4", - "@types/react-router-dom": "5.1.3", "@types/storybook-react-router": "1.0.1", "@types/storybook__addon-storyshots": "5.1.2", "@types/styled-components": "4.4.0", diff --git a/packages/neuron-ui/src/components/Addresses/index.tsx b/packages/neuron-ui/src/components/Addresses/index.tsx index cada4eeace..31aaf8690a 100644 --- a/packages/neuron-ui/src/components/Addresses/index.tsx +++ b/packages/neuron-ui/src/components/Addresses/index.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useCallback } from 'react' import { clipboard } from 'electron' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { ReactComponent as Edit } from 'widgets/Icons/Edit.svg' import TextField from 'widgets/TextField' @@ -30,7 +30,7 @@ const Addresses = () => { } = useGlobalState() const dispatch = useDispatch() const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const isMainnet = isMainnetUtil(networks, networkID) const breakcrum = [{ label: t('navbar.receive'), link: RoutePath.Receive }] @@ -62,7 +62,7 @@ const Addresses = () => { { label: t('addresses.request-payment'), click: () => { - history.push(`${RoutePath.Receive}/${item.address}`) + navigate(`${RoutePath.Receive}/${item.address}`) }, }, { @@ -76,7 +76,7 @@ const Addresses = () => { openContextMenu(menuTemplate) } }, - [t, isMainnet, history] + [t, isMainnet, navigate] ) return ( diff --git a/packages/neuron-ui/src/components/HardwareSign/index.tsx b/packages/neuron-ui/src/components/HardwareSign/index.tsx index 69a797f37d..260cffc22e 100644 --- a/packages/neuron-ui/src/components/HardwareSign/index.tsx +++ b/packages/neuron-ui/src/components/HardwareSign/index.tsx @@ -12,7 +12,7 @@ import { } from 'states' import { ControllerResponse } from 'services/remote/remoteApiWrapper' import Spinner from 'widgets/Spinner' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { ReactComponent as HardWalletIcon } from 'widgets/Icons/HardWallet.svg' import { connectDevice, @@ -43,13 +43,13 @@ export interface HardwareSignProps { offlineSignType?: OfflineSignType onDismiss: () => void signMessage?: (password: string) => Promise - history?: ReturnType + navigate?: ReturnType } const HardwareSign = ({ signType, signMessage, - history, + navigate, wallet, onDismiss, offlineSignJSON, @@ -259,7 +259,7 @@ const HardwareSign = ({ description, })(dispatch).then(res => { if (isSuccessResponse(res)) { - history!.push(RoutePath.History) + navigate?.(RoutePath.History) } else { setError(res.message) } @@ -272,7 +272,7 @@ const HardwareSign = ({ } sendTransaction({ walletID: wallet.id, tx, description })(dispatch).then(res => { if (isSuccessResponse(res)) { - history!.push(RoutePath.History) + navigate?.(RoutePath.History) } else { setError(res.message) } @@ -288,7 +288,7 @@ const HardwareSign = ({ } sendCreateSUDTAccountTransaction(params)(dispatch).then(res => { if (isSuccessResponse(res)) { - history!.push(RoutePath.History) + navigate?.(RoutePath.History) } else { setError(res.message) } @@ -310,7 +310,7 @@ const HardwareSign = ({ } sendSUDTTransaction(params)(dispatch).then(res => { if (isSuccessResponse(res)) { - history!.push(RoutePath.History) + navigate?.(RoutePath.History) } else { setError(res.message) } @@ -320,7 +320,7 @@ const HardwareSign = ({ case 'migrate-acp': { await migrateAcp({ id: wallet.id })(dispatch).then(res => { if (isSuccessResponse(res)) { - history!.push(RoutePath.History) + navigate?.(RoutePath.History) } else { // @ts-ignore setError(res.message.content) @@ -361,7 +361,7 @@ const HardwareSign = ({ wallet.id, description, dispatch, - history, + navigate, signAndExportFromJSON, ensureDeviceAvailable, multisigConfig, diff --git a/packages/neuron-ui/src/components/HardwareSign/success.tsx b/packages/neuron-ui/src/components/HardwareSign/success.tsx index 1ead96bfa2..f971cd973f 100644 --- a/packages/neuron-ui/src/components/HardwareSign/success.tsx +++ b/packages/neuron-ui/src/components/HardwareSign/success.tsx @@ -1,6 +1,6 @@ import React, { useCallback } from 'react' import { useTranslation } from 'react-i18next' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { RoutePath } from 'utils' import Button from 'widgets/Button' import { ReactComponent as CompleteIcon } from 'widgets/Icons/Complete.svg' @@ -9,11 +9,11 @@ import styles from './hardwareSign.module.scss' const SignSuccess = ({ onCancel }: { onCancel: () => void }) => { const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const onClose = useCallback(() => { onCancel() - history.push(RoutePath.History) - }, [history, onCancel]) + navigate(RoutePath.History) + }, [navigate, onCancel]) return (
diff --git a/packages/neuron-ui/src/components/History/index.tsx b/packages/neuron-ui/src/components/History/index.tsx index 378799d76a..e508f1a380 100644 --- a/packages/neuron-ui/src/components/History/index.tsx +++ b/packages/neuron-ui/src/components/History/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useMemo } from 'react' -import { useHistory, useLocation } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { Stack, SearchBox } from 'office-ui-fabric-react' import Pagination from 'widgets/Pagination' @@ -27,13 +27,13 @@ const History = () => { } = useGlobalState() const dispatch = useDispatch() const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const { search } = useLocation() const [isExporting, setIsExporting] = useState(false) const isMainnet = isMainnetUtil(networks, networkID) const { keywords, onKeywordsChange } = useSearch(search, id, dispatch) - const onSearch = useCallback(() => history.push(`${RoutePath.History}?keywords=${keywords}`), [history, keywords]) + const onSearch = useCallback(() => navigate(`${RoutePath.History}?keywords=${keywords}`), [navigate, keywords]) const onExport = useCallback(() => { setIsExporting(true) const timer = setTimeout(() => { @@ -98,7 +98,7 @@ const History = () => { pageSize={pageSize} pageNo={pageNo} onChange={(no: number) => { - history.push(`${RoutePath.History}?pageNo=${no}&keywords=${keywords}`) + navigate(`${RoutePath.History}?pageNo=${no}&keywords=${keywords}`) }} />
@@ -116,7 +116,7 @@ const History = () => { pageNo, totalCount, pageSize, - history, + navigate, isMainnet, t, isExporting, diff --git a/packages/neuron-ui/src/components/ImportHardware/select-model.tsx b/packages/neuron-ui/src/components/ImportHardware/select-model.tsx index a83e198cd6..00ebeac0de 100644 --- a/packages/neuron-ui/src/components/ImportHardware/select-model.tsx +++ b/packages/neuron-ui/src/components/ImportHardware/select-model.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from 'widgets/Button' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { CreateFirstWalletNav } from 'components/WalletWizard' import { useGoBack } from 'utils' import { AttentionOutline } from 'widgets/Icons/icon' @@ -44,8 +44,8 @@ const supportedHardwareModels = [ const SelectModel = ({ dispatch }: { dispatch: React.Dispatch }) => { const [t] = useTranslation() const [model, setModel] = useState() - const history = useHistory() - const onBack = useGoBack(history) + const navigate = useNavigate() + const onBack = useGoBack(navigate) const onNext = useCallback(() => { dispatch({ model, diff --git a/packages/neuron-ui/src/components/ImportKeystore/index.tsx b/packages/neuron-ui/src/components/ImportKeystore/index.tsx index 86b6f9caa3..58c7f44337 100644 --- a/packages/neuron-ui/src/components/ImportKeystore/index.tsx +++ b/packages/neuron-ui/src/components/ImportKeystore/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useEffect } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { importKeystore, showOpenDialogModal } from 'services/remote' import { useState as useGlobalState } from 'states' @@ -44,10 +44,10 @@ const ImportKeystore = () => { const { settings: { wallets }, } = useGlobalState() - const history = useHistory() + const navigate = useNavigate() const [fields, setFields] = useState(defaultFields) const [openingFile, setOpeningFile] = useState(false) - const goBack = useGoBack(history) + const goBack = useGoBack(navigate) const disabled = !!( !fields.name || @@ -105,7 +105,7 @@ const ImportKeystore = () => { importKeystore({ name: fields.name!, keystorePath: fields.path, password: fields.password }) .then(res => { if (isSuccessResponse(res)) { - history.push(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) + navigate(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) return } @@ -131,7 +131,7 @@ const ImportKeystore = () => { closeDialog() }) }, - [fields.name, fields.password, fields.path, history, openDialog, closeDialog, disabled, setFields, t] + [fields.name, fields.password, fields.path, navigate, openDialog, closeDialog, disabled, setFields, t] ) const handleChange = useCallback( diff --git a/packages/neuron-ui/src/components/LaunchScreen/index.tsx b/packages/neuron-ui/src/components/LaunchScreen/index.tsx index 106033107c..ccf9a53c9f 100644 --- a/packages/neuron-ui/src/components/LaunchScreen/index.tsx +++ b/packages/neuron-ui/src/components/LaunchScreen/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { Panel, PanelType, SpinnerSize } from 'office-ui-fabric-react' import { useState as useGlobalState } from 'states' @@ -11,13 +11,13 @@ export const LaunchScreen = () => { wallet: { id = '' }, } = useGlobalState() const { t } = useTranslation() - const history = useHistory() + const navigate = useNavigate() useEffect(() => { if (id) { - history.push(RoutePath.Overview) + navigate(RoutePath.Overview) } - }, [id, history]) + }, [id, navigate]) return ( diff --git a/packages/neuron-ui/src/components/NFTSend/index.tsx b/packages/neuron-ui/src/components/NFTSend/index.tsx index eca5606f80..a55cff8799 100644 --- a/packages/neuron-ui/src/components/NFTSend/index.tsx +++ b/packages/neuron-ui/src/components/NFTSend/index.tsx @@ -100,7 +100,7 @@ const NFTSend = () => { [isSubmittable, globalDispatch, walletId] ) - const location = useLocation<{ outPoint?: any }>() + const location = useLocation() const outPoint = location.state?.outPoint diff --git a/packages/neuron-ui/src/components/NetworkEditor/hooks.ts b/packages/neuron-ui/src/components/NetworkEditor/hooks.ts index e5b99417e3..7d068b9be8 100644 --- a/packages/neuron-ui/src/components/NetworkEditor/hooks.ts +++ b/packages/neuron-ui/src/components/NetworkEditor/hooks.ts @@ -1,5 +1,5 @@ import { useCallback } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { StateDispatch, createNetwork, updateNetwork, addNotification } from 'states' import { ErrorCode, CONSTANTS } from 'utils' @@ -11,7 +11,7 @@ export const useOnSubmit = ({ name = '', remote = '', networks = [], - history, + navigate, dispatch, disabled, setIsUpdating, @@ -20,7 +20,7 @@ export const useOnSubmit = ({ name: string remote: string networks: Readonly - history: ReturnType + navigate: ReturnType dispatch: StateDispatch disabled: boolean setIsUpdating: React.Dispatch @@ -103,7 +103,7 @@ export const useOnSubmit = ({ createNetwork({ name, remote, - })(dispatch, history) + })(dispatch, navigate) return } @@ -127,9 +127,9 @@ export const useOnSubmit = ({ name, remote, }, - })(dispatch, history).then(() => setIsUpdating(false)) + })(dispatch, navigate).then(() => setIsUpdating(false)) }, - [id, name, remote, networks, history, dispatch, disabled, setIsUpdating] + [id, name, remote, networks, navigate, dispatch, disabled, setIsUpdating] ) export default { diff --git a/packages/neuron-ui/src/components/NetworkEditor/index.tsx b/packages/neuron-ui/src/components/NetworkEditor/index.tsx index 62d22e76e3..5c4584c6c0 100644 --- a/packages/neuron-ui/src/components/NetworkEditor/index.tsx +++ b/packages/neuron-ui/src/components/NetworkEditor/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react' -import { useParams, useHistory } from 'react-router-dom' +import { useParams, useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { Stack } from 'office-ui-fabric-react' import TextField from 'widgets/TextField' @@ -18,7 +18,7 @@ const NetworkEditor = () => { } = useGlobalState() const dispatch = useDispatch() const { id } = useParams<{ id: string }>() - const history = useHistory() + const navigate = useNavigate() const cachedNetworks = useRef(networks) const cachedNetwork = useMemo(() => cachedNetworks.current.find(network => network.id === id), [cachedNetworks, id]) const usedNetworkNames = useMemo( @@ -81,14 +81,14 @@ const NetworkEditor = () => { }, [setEditor, t, usedNetworkNames] ) - const goBack = useGoBack(history) + const goBack = useGoBack(navigate) const onSubmit = useOnSubmit({ id: id!, name: editor.name, remote: editor.url, networks, - history, + navigate, dispatch, disabled, setIsUpdating, diff --git a/packages/neuron-ui/src/components/NetworkSetting/index.tsx b/packages/neuron-ui/src/components/NetworkSetting/index.tsx index 74174586e1..f7d0e8e343 100644 --- a/packages/neuron-ui/src/components/NetworkSetting/index.tsx +++ b/packages/neuron-ui/src/components/NetworkSetting/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useCallback } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { ChoiceGroup, IChoiceGroupOption } from 'office-ui-fabric-react' import NetworkTypeLabel from 'components/NetworkTypeLabel' @@ -15,7 +15,7 @@ import styles from './networkSetting.module.scss' const NetworkSetting = ({ chain = chainState, settings: { networks = [] } }: State.AppWithNeuronWallet) => { const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() useEffect(() => { backToTop() }, []) @@ -32,8 +32,8 @@ const NetworkSetting = ({ chain = chainState, settings: { networks = [] } }: Sta ) const goToCreateNetwork = useCallback(() => { - history.push(`${RoutePath.NetworkEditor}/new`) - }, [history]) + navigate(`${RoutePath.NetworkEditor}/new`) + }, [navigate]) const toggleBottomBorder = useToggleChoiceGroupBorder(`.${styles.networks}`, styles.hasBottomBorder) @@ -45,7 +45,7 @@ const NetworkSetting = ({ chain = chainState, settings: { networks = [] } }: Sta useOnWindowResize(toggleBottomBorder) - const onHandleNetwork = useOnHandleNetwork({ history }) + const onHandleNetwork = useOnHandleNetwork({ navigate }) return (
diff --git a/packages/neuron-ui/src/components/OfflineSign/index.tsx b/packages/neuron-ui/src/components/OfflineSign/index.tsx index a96429e496..121e53cd59 100644 --- a/packages/neuron-ui/src/components/OfflineSign/index.tsx +++ b/packages/neuron-ui/src/components/OfflineSign/index.tsx @@ -1,6 +1,6 @@ import React, { useRef, useCallback, useMemo, useState, useEffect } from 'react' import { useTranslation } from 'react-i18next' -import { RouteComponentProps } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { isSuccessResponse, RoutePath, useDidMount } from 'utils' import Button from 'widgets/Button' import Spinner from 'widgets/Spinner' @@ -11,7 +11,7 @@ import OfflineSignDialog from '../OfflineSignDialog' import styles from './offlineSign.module.scss' -const OfflineSign = ({ history }: RouteComponentProps) => { +const OfflineSign = () => { const dialogRef = useRef(null) const { app: { loadedTransaction = {} }, @@ -42,9 +42,11 @@ const OfflineSign = ({ history }: RouteComponentProps) => { } }, [signStatus, t]) + const navigate = useNavigate() + const onBack = useCallback(() => { - history.goBack() - }, [history]) + navigate(-1) + }, [navigate]) const onSign = useCallback( (e: React.FormEvent) => { @@ -64,7 +66,7 @@ const OfflineSign = ({ history }: RouteComponentProps) => { walletID: wallet!.id, }) if (isSuccessResponse(res)) { - history.push(RoutePath.History) + navigate(RoutePath.History) } else { addNotification({ type: 'alert', @@ -79,7 +81,7 @@ const OfflineSign = ({ history }: RouteComponentProps) => { setIsBroadcasting(false) } }, - [wallet, json, history, dispatch, onBack] + [wallet, json, navigate, dispatch, onBack] ) useDidMount(() => { diff --git a/packages/neuron-ui/src/components/OfflineSignDialog/index.tsx b/packages/neuron-ui/src/components/OfflineSignDialog/index.tsx index a39e2e8a01..c5e8ff7cb7 100644 --- a/packages/neuron-ui/src/components/OfflineSignDialog/index.tsx +++ b/packages/neuron-ui/src/components/OfflineSignDialog/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useRef, useCallback, useMemo, useEffect } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import Button from 'widgets/Button' import TextField from 'widgets/TextField' @@ -39,7 +39,7 @@ const OfflineSignDialog = ({ isBroadcast, wallet, offlineSignJSON, onDismiss }: const dispatch = useDispatch() const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const dialogRef = useRef(null) const [password, setPassword] = useState('') @@ -98,7 +98,7 @@ const OfflineSignDialog = ({ isBroadcast, wallet, offlineSignJSON, onDismiss }: } await sendTransaction({ walletID, tx: transaction, description, password })(dispatch).then(({ status }) => { if (isSuccessResponse({ status })) { - history.push(RoutePath.History) + navigate(RoutePath.History) } else if (status === ErrorCode.PasswordIncorrect) { throw new PasswordIncorrectException() } @@ -130,7 +130,7 @@ const OfflineSignDialog = ({ isBroadcast, wallet, offlineSignJSON, onDismiss }: } await sendCreateSUDTAccountTransaction(params)(dispatch).then(({ status }) => { if (isSuccessResponse({ status })) { - history.push(RoutePath.History) + navigate(RoutePath.History) } else if (status === ErrorCode.PasswordIncorrect) { throw new PasswordIncorrectException() } @@ -145,7 +145,7 @@ const OfflineSignDialog = ({ isBroadcast, wallet, offlineSignJSON, onDismiss }: } await sendSUDTTransaction(params)(dispatch).then(({ status }) => { if (isSuccessResponse({ status })) { - history.push(RoutePath.History) + navigate(RoutePath.History) } else if (status === ErrorCode.PasswordIncorrect) { throw new PasswordIncorrectException() } @@ -168,7 +168,7 @@ const OfflineSignDialog = ({ isBroadcast, wallet, offlineSignJSON, onDismiss }: password, signType, description, - history, + navigate, isSigning, transaction, disabled, @@ -198,7 +198,7 @@ const OfflineSignDialog = ({ isBroadcast, wallet, offlineSignJSON, onDismiss }: return ( { } = useGlobalState() const dispatch = useDispatch() const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const syncStatus = getSyncStatus({ bestKnownBlockNumber, @@ -92,8 +92,8 @@ const Overview = () => { })(dispatch) }, [id, dispatch]) const onGoToHistory = useCallback(() => { - history.push(RoutePath.History) - }, [history]) + navigate(RoutePath.History) + }, [navigate]) const onRecentActivityDoubleClick = useCallback((e: React.SyntheticEvent) => { const cellElement = e.target as HTMLTableCellElement diff --git a/packages/neuron-ui/src/components/PasswordRequest/index.tsx b/packages/neuron-ui/src/components/PasswordRequest/index.tsx index 9163b5aad6..f1c790cfd4 100644 --- a/packages/neuron-ui/src/components/PasswordRequest/index.tsx +++ b/packages/neuron-ui/src/components/PasswordRequest/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useRef, useCallback, useMemo, useEffect } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import Button from 'widgets/Button' import TextField from 'widgets/TextField' @@ -45,7 +45,7 @@ const PasswordRequest = () => { const dispatch = useDispatch() const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const dialogRef = useRef(null) const [password, setPassword] = useState('') @@ -134,7 +134,7 @@ const PasswordRequest = () => { } const handleSendTxRes = ({ status }: { status: number }) => { if (isSuccessResponse({ status })) { - history.push(RoutePath.History) + navigate(RoutePath.History) } else if (status === ErrorCode.PasswordIncorrect) { throw new PasswordIncorrectException() } @@ -187,7 +187,7 @@ const PasswordRequest = () => { case 'migrate-acp': { await migrateAcp({ id: walletID, password })(dispatch).then(({ status }) => { if (isSuccessResponse({ status })) { - history.push(RoutePath.History) + navigate(RoutePath.History) } else if (status === ErrorCode.PasswordIncorrect) { throw new PasswordIncorrectException() } @@ -297,7 +297,7 @@ const PasswordRequest = () => { password, actionType, description, - history, + navigate, isSending, generatedTx, disabled, @@ -370,7 +370,7 @@ const PasswordRequest = () => { return ( { const { wallet } = useGlobalState() const dispatch = useDispatch() const [t] = useTranslation() - const { - params: { address }, - } = useRouteMatch<{ address: string }>() - const history = useHistory() + const { address } = useParams<{ address: string }>() + const navigate = useNavigate() const [displayVerifyDialog, setDisplayVerifyDialog] = useState(false) const [isInShortFormat, setIsInShortFormat] = useState(false) const { addresses } = wallet @@ -45,8 +43,8 @@ const Receive = () => { }, [address, addresses, isSingleAddress, isInShortFormat]) const onAddressBookClick = useCallback(() => { - history.push(RoutePath.Addresses) - }, [history]) + navigate(RoutePath.Addresses) + }, [navigate]) const onVerifyAddressClick = useCallback(() => { setDisplayVerifyDialog(true) diff --git a/packages/neuron-ui/src/components/SUDTAccountList/index.tsx b/packages/neuron-ui/src/components/SUDTAccountList/index.tsx index 3745d01b42..0dfe965046 100644 --- a/packages/neuron-ui/src/components/SUDTAccountList/index.tsx +++ b/packages/neuron-ui/src/components/SUDTAccountList/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useEffect } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { SpinnerSize, SearchBox } from 'office-ui-fabric-react' import SUDTAccountPile, { SUDTAccountPileProps } from 'components/SUDTAccountPile' @@ -31,7 +31,7 @@ export type SUDTAccount = Omit const SUDTAccountList = () => { const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const { wallet: { id: walletId, balance }, chain: { @@ -56,7 +56,7 @@ const SUDTAccountList = () => { checkMigrateAcp().then(res => { if (isSuccessResponse(res)) { if (res.result === false) { - history.push(RoutePath.Overview) + navigate(RoutePath.Overview) } } else { dispatch({ @@ -69,7 +69,7 @@ const SUDTAccountList = () => { }) } }) - }, [dispatch, history]) + }, [dispatch, navigate]) useIsInsufficientToCreateSUDTAccount({ walletId, balance: BigInt(balance), setInsufficient }) const fetchAndUpdateList = useCallback(() => { @@ -139,11 +139,11 @@ const SUDTAccountList = () => { tokenName: account.tokenName ?? DEFAULT_SUDT_FIELDS.tokenName, symbol: account.symbol ?? DEFAULT_SUDT_FIELDS.symbol, }) - history.push(`${RoutePath.SUDTReceive}?${query}`) + navigate(`${RoutePath.SUDTReceive}?${query}`) break } case 'send': { - history.push(`${RoutePath.SUDTSend}/${id}`) + navigate(`${RoutePath.SUDTSend}/${id}`) break } default: { diff --git a/packages/neuron-ui/src/components/SUDTSend/index.tsx b/packages/neuron-ui/src/components/SUDTSend/index.tsx index d6f245e0d6..95ac65700d 100644 --- a/packages/neuron-ui/src/components/SUDTSend/index.tsx +++ b/packages/neuron-ui/src/components/SUDTSend/index.tsx @@ -291,7 +291,7 @@ const SUDTSend = () => { const [isDestroying, setIsDestroying] = useState(false) const onDestroy = useCallback(() => { setIsDestroying(true) - destoryAssetAccount({ walletID: walletId, id: accountId }) + destoryAssetAccount({ walletID: walletId, id: accountId! }) .then(res => { if (isSuccessResponse(res)) { const tx = res.result @@ -320,8 +320,8 @@ const SUDTSend = () => { }, [globalDispatch, walletId, accountId]) const showDestory = useMemo( - () => accountType === AccountType.CKB || BigInt(accountInfo?.balance || 0) === BigInt(0), - [accountType, accountInfo] + () => accountId && (accountType === AccountType.CKB || BigInt(accountInfo?.balance || 0) === BigInt(0)), + [accountType, accountInfo, accountId] ) const onSubmit = useOnSumbit({ isSubmittable, accountType, walletId, addressLockType, sendType }) diff --git a/packages/neuron-ui/src/components/SettingTabs/index.tsx b/packages/neuron-ui/src/components/SettingTabs/index.tsx index 9bb14905c2..e96c4ec67a 100644 --- a/packages/neuron-ui/src/components/SettingTabs/index.tsx +++ b/packages/neuron-ui/src/components/SettingTabs/index.tsx @@ -1,40 +1,23 @@ import React, { useMemo } from 'react' -import { Route, useHistory, useLocation } from 'react-router-dom' +import { useNavigate, Outlet, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { Pivot, PivotItem } from 'office-ui-fabric-react' - -import { useState as useGloablState, useDispatch } from 'states' - -import GeneralSetting from 'components/GeneralSetting' -import WalletSetting from 'components/WalletSetting' -import NetworkSetting from 'components/NetworkSetting' -import DataSetting from 'components/DataSetting' - import { getPlatform } from 'services/remote' import { RoutePath } from 'utils' import styles from './settingTabs.module.scss' const pivotItems = [ - { label: 'settings.setting-tabs.general', url: RoutePath.SettingsGeneral }, - { label: 'settings.setting-tabs.wallets', url: RoutePath.SettingsWallets }, - { label: 'settings.setting-tabs.network', url: RoutePath.SettingsNetworks }, - { label: 'settings.setting-tabs.data', url: RoutePath.SettingsData }, -] - -const settingPanels: CustomRouter.Route[] = [ - { name: `GeneralSetting`, path: RoutePath.SettingsGeneral, exact: false, component: GeneralSetting }, - { name: `WalletsSetting`, path: RoutePath.SettingsWallets, exact: false, component: WalletSetting }, - { name: `NetworkSetting`, path: RoutePath.SettingsNetworks, exact: true, component: NetworkSetting }, - { name: `DataSetting`, path: RoutePath.SettingsData, exact: true, component: DataSetting }, + { label: 'settings.setting-tabs.general', url: `${RoutePath.Settings}/${RoutePath.SettingsGeneral}` }, + { label: 'settings.setting-tabs.wallets', url: `${RoutePath.Settings}/${RoutePath.SettingsWallets}` }, + { label: 'settings.setting-tabs.network', url: `${RoutePath.Settings}/${RoutePath.SettingsNetworks}` }, + { label: 'settings.setting-tabs.data', url: `${RoutePath.Settings}/${RoutePath.SettingsData}` }, ] const SettingsTabs = () => { const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const location = useLocation() - const globalState = useGloablState() - const dispatch = useDispatch() const isMac = useMemo(() => { return getPlatform() === 'darwin' }, []) @@ -46,7 +29,7 @@ const SettingsTabs = () => { selectedKey={location.pathname} onLinkClick={(pivotItem?: PivotItem) => { if (pivotItem && pivotItem.props && pivotItem.props.itemKey) { - history.replace(pivotItem.props.itemKey) + navigate(pivotItem.props.itemKey) } }} headersOnly @@ -60,15 +43,7 @@ const SettingsTabs = () => { ))} - - {settingPanels.map(container => ( - } - /> - ))} +
) } diff --git a/packages/neuron-ui/src/components/SpecialAssetList/index.tsx b/packages/neuron-ui/src/components/SpecialAssetList/index.tsx index fa5df03421..1ed6f96180 100644 --- a/packages/neuron-ui/src/components/SpecialAssetList/index.tsx +++ b/packages/neuron-ui/src/components/SpecialAssetList/index.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useMemo, useCallback } from 'react' import { useTranslation } from 'react-i18next' -import { useHistory, useLocation } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { Pagination } from '@uifabric/experiments' import SpecialAsset, { AssetInfo } from 'components/SpecialAsset' import Experimental from 'widgets/ExperimentalRibbon' @@ -66,7 +66,7 @@ const SpecialAssetList = () => { const [loaded, setLoaded] = useState(false) const [cells, setCells] = useState([]) const [totalCount, setTotalCount] = useState(0) - const history = useHistory() + const navigate = useNavigate() const [pageNo, setPageNo] = useState(1) const { search } = useLocation() const dispatch = useDispatch() @@ -214,8 +214,7 @@ const SpecialAssetList = () => { return } if (cell.customizedAssetInfo.type === 'NFT') { - history.push({ - pathname: `${RoutePath.NFTSend}/${nftFormatter(cell.type?.args, true)}`, + navigate(`${RoutePath.NFTSend}/${nftFormatter(cell.type?.args, true)}`, { state: { outPoint: cell.outPoint, }, @@ -295,7 +294,7 @@ const SpecialAssetList = () => { } } }, - [cells, id, dispatch, setAccountToClaim, history, openDialog, tokenInfoList] + [cells, id, dispatch, setAccountToClaim, navigate, openDialog, tokenInfoList] ) const list = useMemo(() => { @@ -351,7 +350,7 @@ const SpecialAssetList = () => { lastPageIconProps={{ iconName: 'LastPage' }} format="buttons" onPageChange={(idx: number) => { - history.push(`${RoutePath.SpecialAssets}?pageNo=${idx + 1}`) + navigate(`${RoutePath.SpecialAssets}?pageNo=${idx + 1}`) }} /> ) : null} diff --git a/packages/neuron-ui/src/components/WalletEditor/hooks.ts b/packages/neuron-ui/src/components/WalletEditor/hooks.ts index 7cdf103e46..1eab1832fd 100644 --- a/packages/neuron-ui/src/components/WalletEditor/hooks.ts +++ b/packages/neuron-ui/src/components/WalletEditor/hooks.ts @@ -1,5 +1,5 @@ import { useState, useMemo, useCallback } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { StateDispatch, updateWalletProperty } from 'states' import { ErrorCode, ResponseCode, RoutePath, CONSTANTS } from 'utils' import i18n from 'utils/i18n' @@ -43,7 +43,7 @@ export const useInputs = ({ name }: ReturnType) => { export const useOnSubmit = ( name: string = '', id: string = '', - history: ReturnType, + navigate: ReturnType, dispatch: StateDispatch, disabled: boolean ) => { @@ -58,11 +58,11 @@ export const useOnSubmit = ( name, })(dispatch).then(status => { if (status === ResponseCode.SUCCESS) { - history.push(RoutePath.SettingsWallets) + navigate(RoutePath.SettingsWallets) } }) }, - [name, id, history, dispatch, disabled] + [name, id, navigate, dispatch, disabled] ) } diff --git a/packages/neuron-ui/src/components/WalletEditor/index.tsx b/packages/neuron-ui/src/components/WalletEditor/index.tsx index ec2dacdeb6..357099dc6b 100644 --- a/packages/neuron-ui/src/components/WalletEditor/index.tsx +++ b/packages/neuron-ui/src/components/WalletEditor/index.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useMemo } from 'react' import { useTranslation } from 'react-i18next' -import { Link, useHistory, useRouteMatch } from 'react-router-dom' +import { Link, useNavigate, useParams } from 'react-router-dom' import { Stack } from 'office-ui-fabric-react' import TextField from 'widgets/TextField' import Button from 'widgets/Button' @@ -29,10 +29,8 @@ const WalletEditor = () => { } = useGlobalState() const dispatch = useDispatch() const [t] = useTranslation() - const history = useHistory() - const { - params: { id }, - } = useRouteMatch<{ id: string }>() + const navigate = useNavigate() + const { id } = useParams<{ id: string }>() const wallet = useMemo(() => wallets.find(w => w.id === id), [id, wallets]) || { id: '', name: '' } const usedNames = wallets.map(w => w.name).filter(w => w !== wallet.name) @@ -48,8 +46,8 @@ const WalletEditor = () => { const hint = useHint(editor.name.value, usedNames, t) const disabled = hint !== null || editor.name.value === wallet.name - const goBack = useGoBack(history) - const onSubmit = useOnSubmit(editor.name.value, wallet.id, history, dispatch, disabled) + const goBack = useGoBack(navigate) + const onSubmit = useOnSubmit(editor.name.value, wallet.id, navigate, dispatch, disabled) if (!wallet.id) { return diff --git a/packages/neuron-ui/src/components/WalletSetting/index.tsx b/packages/neuron-ui/src/components/WalletSetting/index.tsx index 2aa4ecca4f..f266f4f905 100644 --- a/packages/neuron-ui/src/components/WalletSetting/index.tsx +++ b/packages/neuron-ui/src/components/WalletSetting/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useCallback } from 'react' -import { useHistory, useLocation } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { ChoiceGroup } from 'office-ui-fabric-react' @@ -57,7 +57,7 @@ const WalletSetting = ({ dispatch, }: State.AppWithNeuronWallet & { dispatch: StateDispatch }) => { const [t] = useTranslation() - const history = useHistory() + const navigate = useNavigate() const location = useLocation() useEffect(() => { @@ -74,18 +74,18 @@ const WalletSetting = ({ ) const onHandleWallet = useOnHandleWallet({ dispatch, - history, + navigate, }) const navTo = useCallback( (url: string = '/') => () => { if (url === RoutePath.ImportHardware) { - history.push(RoutePath.ImportHardware) + navigate(RoutePath.ImportHardware) } else { - history.push(url) + navigate(url) } }, - [history, location.pathname] + [navigate, location.pathname] ) const toggleBottomBorder = useToggleChoiceGroupBorder(`.${styles.wallets}`, styles.hasBottomBorder) diff --git a/packages/neuron-ui/src/components/WalletWizard/index.tsx b/packages/neuron-ui/src/components/WalletWizard/index.tsx index de2fb9b397..4283e093f3 100644 --- a/packages/neuron-ui/src/components/WalletWizard/index.tsx +++ b/packages/neuron-ui/src/components/WalletWizard/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useEffect, useMemo } from 'react' -import { Link, useHistory, useRouteMatch } from 'react-router-dom' +import { Link, useNavigate, useLocation, useParams } from 'react-router-dom' import { useTranslation } from 'react-i18next' import Button from 'widgets/Button' import withWizard, { WizardElementProps, WithWizardState } from 'components/withWizard' @@ -28,11 +28,11 @@ import styles from './walletWizard.module.scss' const { MAX_WALLET_NAME_LENGTH, MAX_PASSWORD_LENGTH } = CONSTANTS const createWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( - history: ReturnType + navigate: ReturnType ) => { return createWallet(params).then(res => { if (isSuccessResponse(res)) { - history.push(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) + navigate(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) } else if (res.status > 0) { showErrorMessage(i18n.t(`messages.error`), i18n.t(`messages.codes.${res.status}`)) } else if (res.message) { @@ -45,11 +45,11 @@ const createWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( } const importWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( - history: ReturnType + navigate: ReturnType ) => { return importMnemonic(params).then(res => { if (isSuccessResponse(res)) { - history.push(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) + navigate(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) } else if (res.status > 0) { showErrorMessage(i18n.t(`messages.error`), i18n.t(`messages.codes.${res.status}`)) } else if (res.message) { @@ -62,9 +62,9 @@ const importWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( } export enum WalletWizardPath { - Welcome = '/welcome', - Mnemonic = '/mnemonic', - Submission = '/submission', + Welcome = 'welcome', + Mnemonic = 'mnemonic', + Submission = 'submission', } const initState: WithWizardState = { @@ -105,7 +105,7 @@ export const CreateFirstWalletNav = ({ className }: { className?: string }) => { return (
{t('wizard.no-wallet')}  - {t('wizard.create-wallet')} + {t('wizard.create-wallet')}
) } @@ -120,15 +120,15 @@ export const FinishCreateLoading = ({ dialogRef }: { dialogRef: React.LegacyRef< ) } -const Welcome = ({ rootPath = '/wizard', wallets = [], dispatch }: WizardElementProps) => { +const Welcome = ({ rootPath = '/wizard/', wallets = [], dispatch }: WizardElementProps) => { const [t] = useTranslation() - const history = useHistory() - const match = useRouteMatch() + const navigate = useNavigate() + const location = useLocation() useEffect(() => { if (wallets.length) { - history.push(RoutePath.Overview) + navigate(RoutePath.Overview) } - }, [wallets, history]) + }, [wallets, navigate]) useDidMount(() => { dispatch({ @@ -139,14 +139,14 @@ const Welcome = ({ rootPath = '/wizard', wallets = [], dispatch }: WizardElement const next = useCallback( (link: string) => () => { - history.push(link) + navigate(link) }, - [history] + [navigate] ) const importHardware = useCallback(() => { - history.push(RoutePath.ImportHardware) - }, [match.url, history]) + navigate(RoutePath.ImportHardware) + }, [location, navigate]) return (
@@ -185,12 +185,10 @@ const typeHits: Record = { [MnemonicAction.Import]: '', } -const Mnemonic = ({ state = initState, rootPath = '/wizard', dispatch }: WizardElementProps) => { +const Mnemonic = ({ state = initState, rootPath = '/wizard/', dispatch, isSettings }: WizardElementProps) => { const { generated, imported } = state - const history = useHistory() - const { - params: { type = MnemonicAction.Create }, - } = useRouteMatch<{ type: MnemonicAction }>() + const navigate = useNavigate() + const { type = MnemonicAction.Create } = useParams<{ type: MnemonicAction }>() const [t] = useTranslation() const isCreate = type === MnemonicAction.Create const message = isCreate ? 'wizard.your-wallet-seed-is' : 'wizard.input-your-seed' @@ -217,7 +215,7 @@ const Mnemonic = ({ state = initState, rootPath = '/wizard', dispatch }: WizardE payload: '', }) } - }, [dispatch, type, history]) + }, [dispatch, type, navigate]) const globalDispatch = useDispatch() @@ -226,7 +224,7 @@ const Mnemonic = ({ state = initState, rootPath = '/wizard', dispatch }: WizardE return } if (isCreate) { - history.push(`${rootPath}${WalletWizardPath.Mnemonic}/${MnemonicAction.Verify}`) + navigate(`${rootPath}${WalletWizardPath.Mnemonic}/${MnemonicAction.Verify}`) changeStep(v => v + 1) } else { const trimmedMnemonic = inputsWords @@ -243,7 +241,7 @@ const Mnemonic = ({ state = initState, rootPath = '/wizard', dispatch }: WizardE isMnemonicValid = res.result } if (isMnemonicValid) { - history.push( + navigate( `${rootPath}${WalletWizardPath.Submission}/${ type === MnemonicAction.Verify ? MnemonicAction.Create : MnemonicAction.Import }` @@ -261,15 +259,16 @@ const Mnemonic = ({ state = initState, rootPath = '/wizard', dispatch }: WizardE } }) } - }, [isCreate, history, rootPath, type, imported, t, dispatch, disableNext, inputsWords, globalDispatch]) + }, [isCreate, navigate, rootPath, type, imported, t, dispatch, disableNext, inputsWords, globalDispatch]) const onBack = useCallback(() => { changeStep(v => v - 1) - if (type === MnemonicAction.Create) { - history.push(`${rootPath}${WalletWizardPath.Welcome}`) + if (type === MnemonicAction.Create && !isSettings) { + navigate(`${rootPath}${WalletWizardPath.Welcome}`) } else { - history.goBack() + navigate(-1) } + navigate(-1) }, [changeStep, type]) return ( @@ -312,10 +311,8 @@ export const getAlertStatus = (fieldInit: boolean, success: boolean) => { const Submission = ({ state = initState, wallets = [], dispatch }: WizardElementProps) => { const { name, password, confirmPassword, imported } = state - const history = useHistory() - const { - params: { type = MnemonicAction.Create }, - } = useRouteMatch<{ type: MnemonicAction }>() + const navigate = useNavigate() + const { type = MnemonicAction.Create } = useParams<{ type: MnemonicAction }>() const [t] = useTranslation() const message = 'wizard.set-wallet-name-and-password' @@ -374,13 +371,13 @@ const Submission = ({ state = initState, wallets = [], dispatch }: WizardElement openDialog() setTimeout(() => { if (type === MnemonicAction.Create) { - createWalletWithMnemonic(p)(history).finally(() => closeDialog()) + createWalletWithMnemonic(p)(navigate).finally(() => closeDialog()) } else { - importWalletWithMnemonic(p)(history).finally(() => closeDialog()) + importWalletWithMnemonic(p)(navigate).finally(() => closeDialog()) } }, 0) }, - [type, name, password, imported, history, disableNext, openDialog, closeDialog] + [type, name, password, imported, navigate, disableNext, openDialog, closeDialog] ) return ( @@ -425,7 +422,7 @@ const Submission = ({ state = initState, wallets = [], dispatch }: WizardElement -
diff --git a/packages/neuron-ui/src/components/withWizard/index.tsx b/packages/neuron-ui/src/components/withWizard/index.tsx index b3d8d39b89..53e7ea3432 100644 --- a/packages/neuron-ui/src/components/withWizard/index.tsx +++ b/packages/neuron-ui/src/components/withWizard/index.tsx @@ -1,5 +1,5 @@ import React, { useReducer } from 'react' -import { Route } from 'react-router-dom' +import { Route, Routes } from 'react-router-dom' import { useState as useGlobalState } from 'states' export interface Element { @@ -17,6 +17,7 @@ export interface WizardProps { wallets: Readonly rootPath: string dispatch: React.Dispatch + isSettings?: boolean } export interface WizardElementProps { @@ -24,6 +25,7 @@ export interface WizardElementProps { rootPath: string state: WithWizardState dispatch: React.Dispatch + isSettings?: boolean } const reducer = ( @@ -43,27 +45,44 @@ const reducer = ( } } -const Wizard = ({ state, elements, wallets, rootPath, dispatch }: WizardProps) => ( - <> +const Wizard = ({ state, elements, wallets, rootPath, dispatch, isSettings }: WizardProps) => ( + {elements.map((element: any) => ( } + path={`${element.path || ''}${element.params || ''}`} + element={ + + } /> ))} - + ) Wizard.displayName = 'Wizard' -const withWizard = (elements: Element[], initState: WithWizardState) => () => { +const withWizard = (elements: Element[], initState: WithWizardState) => ({ isSettings }: { isSettings?: boolean }) => { const { settings: { wallets = [] }, } = useGlobalState() const [state, dispatch] = useReducer(reducer, initState) - return + return ( + + ) } export default withWizard diff --git a/packages/neuron-ui/src/containers/Main/hooks.ts b/packages/neuron-ui/src/containers/Main/hooks.ts index 833cfd28c2..94994377e5 100644 --- a/packages/neuron-ui/src/containers/Main/hooks.ts +++ b/packages/neuron-ui/src/containers/Main/hooks.ts @@ -1,5 +1,5 @@ import { useEffect } from 'react' -import { useHistory, useLocation } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { NeuronWalletActions, StateDispatch, AppActions } from 'states/stateProvider/reducer' import { updateTransactionList, @@ -81,32 +81,32 @@ export const useSyncChainData = ({ chainURL, dispatch }: { chainURL: string; dis export const useOnCurrentWalletChange = ({ walletID, - history, + navigate, dispatch, }: { walletID: string chain: State.Chain - history: ReturnType + navigate: ReturnType dispatch: StateDispatch }) => { useEffect(() => { - initAppState()(dispatch, history) - }, [walletID, dispatch, history]) + initAppState()(dispatch, navigate) + }, [walletID, dispatch]) } export const useSubscription = ({ walletID, chain, isAllowedToFetchList, - history, + navigate, dispatch, location, }: { walletID: string chain: State.Chain isAllowedToFetchList: boolean - history: ReturnType + navigate: ReturnType location: ReturnType dispatch: StateDispatch }) => { @@ -135,7 +135,7 @@ export const useSubscription = ({ case 'current-wallet': { updateCurrentWallet()(dispatch).then(hasCurrent => { if (!hasCurrent) { - history.push(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) + navigate(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) } }) break @@ -144,7 +144,7 @@ export const useSubscription = ({ Promise.all([updateWalletList, updateCurrentWallet].map(request => request()(dispatch))).then( ([hasList, hasCurrent]) => { if (!hasList || !hasCurrent) { - history.push(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) + navigate(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) } } ) @@ -211,7 +211,7 @@ export const useSubscription = ({ case 'navigate-to-url': case 'import-hardware': { if (payload) { - history.push(payload) + navigate(payload) } break } @@ -255,7 +255,7 @@ export const useSubscription = ({ filePath, }, }) - history.push(location.pathname + url) + navigate(location.pathname + url) } break } @@ -273,7 +273,7 @@ export const useSubscription = ({ syncStateSubscription.unsubscribe() commandSubscription.unsubscribe() } - }, [walletID, pageNo, pageSize, keywords, isAllowedToFetchList, history, dispatch, location.pathname]) + }, [walletID, pageNo, pageSize, keywords, isAllowedToFetchList, navigate, dispatch, location.pathname]) } export default { diff --git a/packages/neuron-ui/src/containers/Main/index.tsx b/packages/neuron-ui/src/containers/Main/index.tsx index 9c6ead4d9c..78eeb46abd 100644 --- a/packages/neuron-ui/src/containers/Main/index.tsx +++ b/packages/neuron-ui/src/containers/Main/index.tsx @@ -1,150 +1,12 @@ import React, { useMemo } from 'react' -import { useHistory, useLocation } from 'react-router-dom' +import { useNavigate, useLocation, Outlet } from 'react-router-dom' import { useTranslation } from 'react-i18next' - import { useState as useGlobalState, useDispatch } from 'states' - -import Overview from 'components/Overview' -import WalletWizard from 'components/WalletWizard' -import ImportKeystore from 'components/ImportKeystore' -import Send from 'components/Send' -import Receive from 'components/Receive' -import History from 'components/History' -import Transaction from 'components/Transaction' -import Addresses from 'components/Addresses' -import LaunchScreen from 'components/LaunchScreen' -import PasswordRequest from 'components/PasswordRequest' -import NervosDAO from 'components/NervosDAO' -import SpecialAssetList from 'components/SpecialAssetList' -import SUDTAccountList from 'components/SUDTAccountList' -import SUDTSend from 'components/SUDTSend' -import SUDTReceive from 'components/SUDTReceive' -import ImportHardware from 'components/ImportHardware' -import OfflineSign from 'components/OfflineSign' -import NFTSend from 'components/NFTSend' - -import { RoutePath, useOnDefaultContextMenu, useRoutes, useOnLocaleChange } from 'utils' - +import { useOnDefaultContextMenu, useOnLocaleChange } from 'utils' import { useSubscription, useSyncChainData, useOnCurrentWalletChange } from './hooks' -export const mainContents: CustomRouter.Route[] = [ - { - name: `Launch`, - path: RoutePath.Launch, - exact: true, - component: LaunchScreen, - }, - { - name: `General`, - path: RoutePath.Overview, - exact: false, - component: Overview, - }, - { - name: `Send`, - path: RoutePath.Send, - params: `/:address?`, - exact: false, - component: Send, - }, - { - name: `Receive`, - path: RoutePath.Receive, - params: `/:address?`, - exact: false, - component: Receive, - }, - { - name: `History`, - path: RoutePath.History, - exact: false, - component: History, - }, - { - name: `Transaction`, - path: RoutePath.Transaction, - params: `/:hash`, - exact: false, - component: Transaction, - }, - { - name: `Addresses`, - path: RoutePath.Addresses, - exact: false, - component: Addresses, - }, - { - name: `WalletWizard`, - path: RoutePath.WalletWizard, - exact: false, - component: WalletWizard, - }, - { - name: `ImportKeystore`, - path: RoutePath.ImportKeystore, - exact: false, - component: ImportKeystore, - }, - { - name: `PasswordRequest`, - path: '/', - exact: false, - component: PasswordRequest, - }, - { - name: `NervosDAO`, - path: RoutePath.NervosDAO, - exact: false, - component: NervosDAO, - }, - { - name: `SpecialAssets`, - path: RoutePath.SpecialAssets, - exact: false, - component: SpecialAssetList, - }, - { - name: `SUDTAccountList`, - path: RoutePath.SUDTAccountList, - exact: false, - component: SUDTAccountList, - }, - { - name: `SUDTSend`, - path: RoutePath.SUDTSend, - params: `/:accountId?`, - exact: false, - component: SUDTSend, - }, - { - name: `SUDTReceive`, - path: RoutePath.SUDTReceive, - exact: false, - component: SUDTReceive, - }, - { - name: `ImportHardware`, - path: RoutePath.ImportHardware, - exact: false, - component: ImportHardware, - }, - { - name: `OfflineSign`, - path: RoutePath.OfflineSign, - exact: false, - component: OfflineSign, - }, - { - name: `NFTTransfer`, - path: RoutePath.NFTSend, - params: '/:nftId?', - exact: true, - component: NFTSend, - }, -] - const MainContent = () => { - const history = useHistory() + const navigate = useNavigate() const location = useLocation() const { app: { isAllowedToFetchList = true }, @@ -160,7 +22,7 @@ const MainContent = () => { walletID, chain, isAllowedToFetchList, - history, + navigate, dispatch, location, }) @@ -178,14 +40,17 @@ const MainContent = () => { useOnCurrentWalletChange({ walletID, chain, - history, + navigate, dispatch, }) useOnLocaleChange(i18n) const onContextMenu = useOnDefaultContextMenu(t) - const routes = useRoutes(mainContents) - return
{routes}
+ return ( +
+ +
+ ) } MainContent.displayName = 'Main' diff --git a/packages/neuron-ui/src/containers/Navbar/index.tsx b/packages/neuron-ui/src/containers/Navbar/index.tsx index b9ec031efe..c406b36f87 100644 --- a/packages/neuron-ui/src/containers/Navbar/index.tsx +++ b/packages/neuron-ui/src/containers/Navbar/index.tsx @@ -1,6 +1,6 @@ import React, { useCallback } from 'react' import { createPortal } from 'react-dom' -import { useHistory, useLocation } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { useState as useGlobalState } from 'states' @@ -54,7 +54,7 @@ const menuItems = [ ] const Navbar = () => { - const history = useHistory() + const navigate = useNavigate() const { pathname } = useLocation() const neuronWallet = useGlobalState() const { @@ -99,7 +99,7 @@ const Navbar = () => { aria-label={t(item.name)} data-link={item.url} data-active={item.key === selectedKey} - onClick={() => history.push(item.url)} + onClick={() => navigate(item.url)} > {t(item.name)} @@ -116,7 +116,7 @@ const Navbar = () => { aria-label={t(item.name)} data-link={item.url} data-active={item.key === selectedKey} - onClick={() => history.push(item.url)} + onClick={() => navigate(item.url)} > {t(item.name)} diff --git a/packages/neuron-ui/src/containers/Settings/index.tsx b/packages/neuron-ui/src/containers/Settings/index.tsx index d6744c14f7..8ad4cc89a0 100644 --- a/packages/neuron-ui/src/containers/Settings/index.tsx +++ b/packages/neuron-ui/src/containers/Settings/index.tsx @@ -1,15 +1,6 @@ import React, { useCallback, useEffect } from 'react' -import { useHistory } from 'react-router-dom' +import { Outlet, useNavigate } from 'react-router-dom' import { useTranslation } from 'react-i18next' - -import SettingTabs from 'components/SettingTabs' -import NetworkEditor from 'components/NetworkEditor' -import WalletEditor from 'components/WalletEditor' -import WalletWizard from 'components/WalletWizard' -import ImportKeystore from 'components/ImportKeystore' -import PasswordRequest from 'components/PasswordRequest' -import ImportHardware from 'components/ImportHardware' - import { useDispatch, NeuronWalletActions, AppActions } from 'states' import { LocalCacheKey } from 'services/localCache' @@ -19,21 +10,11 @@ import { Command as CommandSubject, } from 'services/subjects' import { getPlatform } from 'services/remote' -import { RoutePath, useRoutes, useOnLocalStorageChange, useOnLocaleChange } from 'utils' - -export const settingContents: CustomRouter.Route[] = [ - { name: `SettingTabs`, path: RoutePath.Settings, exact: false, component: SettingTabs }, - { name: `NetworkEditor`, path: RoutePath.NetworkEditor, params: '/:id', exact: false, component: NetworkEditor }, - { name: `WalletEditor`, path: RoutePath.WalletEditor, params: '/:id', exact: false, component: WalletEditor }, - { name: `WalletWizard`, path: RoutePath.WalletWizard, exact: false, component: WalletWizard }, - { name: `ImportKeystore`, path: RoutePath.ImportKeystore, exact: false, component: ImportKeystore }, - { name: `PasswordRequest`, path: '/', exact: false, component: PasswordRequest }, - { name: `ImportHardware`, path: RoutePath.ImportHardware, exact: false, component: ImportHardware }, -] +import { useOnLocalStorageChange, useOnLocaleChange } from 'utils' const Settings = () => { const dispatch = useDispatch() - const history = useHistory() + const navigate = useNavigate() const [, i18n] = useTranslation() useOnLocaleChange(i18n) useEffect(() => { @@ -43,7 +24,7 @@ const Settings = () => { }, [i18n.language]) useEffect(() => { - const onNavigate = (url: string) => history.push(url) + const onNavigate = (url: string) => navigate(url) const onAppUpdaterUpdates = (info: Subject.AppUpdater) => { dispatch({ type: NeuronWalletActions.UpdateAppUpdaterStatus, payload: info }) @@ -78,7 +59,7 @@ const Settings = () => { appUpdaterSubscription.unsubscribe() commandSubscription.unsubscribe() } - }, [dispatch, history]) + }, [dispatch, navigate]) const onChange = useCallback( (e: StorageEvent) => { @@ -127,8 +108,7 @@ const Settings = () => { ) useOnLocalStorageChange(onChange) - const routes = useRoutes(settingContents) - return <>{routes} + return } Settings.displayName = 'Settings' diff --git a/packages/neuron-ui/src/index.tsx b/packages/neuron-ui/src/index.tsx index 74a5807e15..27a1e21d23 100755 --- a/packages/neuron-ui/src/index.tsx +++ b/packages/neuron-ui/src/index.tsx @@ -1,24 +1,19 @@ -import React, { lazy, Suspense } from 'react' +import React, { Suspense } from 'react' import ReactDOM from 'react-dom' -import { HashRouter as Router } from 'react-router-dom' +import { HashRouter as Router, useRoutes, RouteObject } from 'react-router-dom' import 'theme' import 'styles/theme.scss' import 'styles/index.scss' import 'utils/i18n' -import { useRoutes } from 'utils' -import Navbar from 'containers/Navbar' -import Main from 'containers/Main' import Transaction from 'components/Transaction' import SignAndVerify from 'components/SignAndVerify' import MultiSignAddress from 'components/MultisigAddress' import ErrorBoundary from 'components/ErrorBoundary' import Spinner from 'widgets/Spinner' import { withProvider } from 'states' - -const Notification = lazy(() => import('containers/Notification')) -const Settings = lazy(() => import('containers/Settings')) +import mainRouterConfig, { settingRouterConfig } from 'router' if (window.location.hash.startsWith('#/transaction/')) { ReactDOM.render(, document.getElementById('root')) @@ -38,23 +33,17 @@ if (window.location.hash.startsWith('#/transaction/')) { role: isSettings ? 'settings' : 'main', } - const containers: CustomRouter.Route[] = isSettings - ? [ - { name: 'Main', path: '/', exact: false, component: Settings }, - { name: 'Notification', path: '/', exact: false, component: Notification }, - ] - : [ - { name: 'Navbar', path: '/', exact: false, component: Navbar }, - { name: 'Main', path: '/', exact: false, component: Main }, - { name: 'Notification', path: '/', exact: false, component: Notification }, - ] + const containers: RouteObject[] = isSettings ? settingRouterConfig : mainRouterConfig + + const RouterRender = () => useRoutes(containers) const App = withProvider(() => { - const routes = useRoutes(containers) return ( }> - {routes} + + + ) diff --git a/packages/neuron-ui/src/router.tsx b/packages/neuron-ui/src/router.tsx new file mode 100644 index 0000000000..29f2b1e62b --- /dev/null +++ b/packages/neuron-ui/src/router.tsx @@ -0,0 +1,311 @@ +import React, { lazy } from 'react' +import { Outlet, RouteObject } from 'react-router-dom' +import Main from 'containers/Main' +import Navbar from 'containers/Navbar' +import { RoutePath } from 'utils' +import Overview from 'components/Overview' +import WalletWizard from 'components/WalletWizard' +import ImportKeystore from 'components/ImportKeystore' +import Send from 'components/Send' +import Receive from 'components/Receive' +import History from 'components/History' +import Transaction from 'components/Transaction' +import Addresses from 'components/Addresses' +import LaunchScreen from 'components/LaunchScreen' +import PasswordRequest from 'components/PasswordRequest' +import NervosDAO from 'components/NervosDAO' +import SpecialAssetList from 'components/SpecialAssetList' +import SUDTAccountList from 'components/SUDTAccountList' +import SUDTSend from 'components/SUDTSend' +import SUDTReceive from 'components/SUDTReceive' +import ImportHardware from 'components/ImportHardware' +import OfflineSign from 'components/OfflineSign' +import NFTSend from 'components/NFTSend' +import SettingTabs from 'components/SettingTabs' +import NetworkEditor from 'components/NetworkEditor' +import WalletEditor from 'components/WalletEditor' +import GeneralSetting from 'components/GeneralSetting' +import WalletSetting from 'components/WalletSetting' +import NetworkSetting from 'components/NetworkSetting' +import DataSetting from 'components/DataSetting' +import { useState as useGloablState, useDispatch } from 'states' + +const Notification = lazy(() => import('containers/Notification')) +const Settings = lazy(() => import('containers/Settings')) + +const InjectionProps = ({ + Component, +}: { + Component: typeof GeneralSetting | typeof WalletSetting | typeof NetworkSetting | typeof DataSetting +}) => { + const globalState = useGloablState() + const dispatch = useDispatch() + return +} + +export const settingRouterConfig: RouteObject[] = [ + { + path: '', + element: ( + <> + + + + + ), + children: [ + { + path: RoutePath.Settings, + element: , + children: [ + { path: RoutePath.SettingsGeneral, element: }, + { path: RoutePath.SettingsWallets, element: }, + { path: RoutePath.SettingsNetworks, element: }, + { path: RoutePath.SettingsData, element: }, + ], + }, + { path: `${RoutePath.NetworkEditor}/:id`, element: }, + { path: `${RoutePath.WalletEditor}/:id`, element: }, + { path: `${RoutePath.WalletWizard}*`, element: }, + { path: RoutePath.ImportKeystore, element: }, + { path: RoutePath.ImportHardware, element: }, + ], + }, +] + +const offlineRouter = { + path: RoutePath.OfflineSign, + element: , +} + +const mainRouterConfig: RouteObject[] = [ + { + path: '/', + element: ( + <> + +
+ + + + ), + children: [ + { + path: RoutePath.Launch, + element: , + }, + { + path: RoutePath.Overview, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.Send, + children: [ + { + path: '', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: ':address?', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + ], + }, + { + path: RoutePath.Receive, + children: [ + { + path: '', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: ':address?', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + ], + }, + { + path: RoutePath.History, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: `${RoutePath.Transaction}/:hash`, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.Addresses, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: `${RoutePath.WalletWizard}*`, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.ImportKeystore, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.NervosDAO, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.SpecialAssets, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.SUDTAccountList, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.SUDTSend, + children: [ + { + path: '', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: ':accountId', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + ], + }, + { + path: RoutePath.SUDTReceive, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.ImportHardware, + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: RoutePath.NFTSend, + children: [ + { + path: '', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + { + path: ':nftId', + element: ( + <> + + + + ), + children: [offlineRouter], + }, + ], + }, + ], + }, +] + +export default mainRouterConfig diff --git a/packages/neuron-ui/src/states/stateProvider/actionCreators/app.ts b/packages/neuron-ui/src/states/stateProvider/actionCreators/app.ts index 554d2e19ff..ec95ca8b18 100644 --- a/packages/neuron-ui/src/states/stateProvider/actionCreators/app.ts +++ b/packages/neuron-ui/src/states/stateProvider/actionCreators/app.ts @@ -11,7 +11,7 @@ import { networks as networksCache, } from 'services/localCache' -export const initAppState = () => (dispatch: StateDispatch, history: any) => { +export const initAppState = () => (dispatch: StateDispatch, navigate: any) => { getNeuronWalletState() .then(res => { if (isSuccessResponse(res)) { @@ -38,9 +38,9 @@ export const initAppState = () => (dispatch: StateDispatch, history: any) => { }, }) if (!wallet) { - history.push(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) + navigate(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) } else { - history.push(RoutePath.Overview) + navigate(RoutePath.Overview) } currentWalletCache.save(wallet) @@ -49,11 +49,11 @@ export const initAppState = () => (dispatch: StateDispatch, history: any) => { networksCache.save(networks) currentNetworkIDCache.save(currentNetworkID) } else { - history.push(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) + navigate(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) } }) .catch(() => { - history.push(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) + navigate(`${RoutePath.WalletWizard}${WalletWizardPath.Welcome}`) }) } diff --git a/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts b/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts index bd3294c0b2..db804ee777 100644 --- a/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts +++ b/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts @@ -4,7 +4,7 @@ import { addNotification, addPopup } from './app' import { AppActions, StateDispatch } from '../reducer' -export const createNetwork = (params: Controller.CreateNetworkParams) => (dispatch: StateDispatch, history: any) => { +export const createNetwork = (params: Controller.CreateNetworkParams) => (dispatch: StateDispatch, navigate: any) => { dispatch({ type: AppActions.UpdateLoadings, payload: { @@ -15,7 +15,7 @@ export const createNetwork = (params: Controller.CreateNetworkParams) => (dispat .then(res => { if (res.status === 1) { addPopup('create-network-successfully')(dispatch) - history.push(RoutePath.SettingsNetworks) + navigate(RoutePath.SettingsNetworks) } else { addNotification(failureResToNotification(res))(dispatch) } @@ -30,11 +30,11 @@ export const createNetwork = (params: Controller.CreateNetworkParams) => (dispat }) } -export const updateNetwork = (params: Controller.UpdateNetworkParams) => (dispatch: StateDispatch, history: any) => { +export const updateNetwork = (params: Controller.UpdateNetworkParams) => (dispatch: StateDispatch, navigate: any) => { return updateRemoteNetwork(params).then(res => { if (res.status === 1) { addPopup('update-network-successfully')(dispatch) - history.push(RoutePath.SettingsNetworks) + navigate(RoutePath.SettingsNetworks) } else { addNotification(failureResToNotification(res))(dispatch) } diff --git a/packages/neuron-ui/src/stories/SUDTReceive.stories.tsx b/packages/neuron-ui/src/stories/SUDTReceive.stories.tsx index 621c8045ec..6ce855bfbc 100644 --- a/packages/neuron-ui/src/stories/SUDTReceive.stories.tsx +++ b/packages/neuron-ui/src/stories/SUDTReceive.stories.tsx @@ -14,7 +14,7 @@ const ComponentParams = () => ( Link - + ) diff --git a/packages/neuron-ui/src/utils/enums.ts b/packages/neuron-ui/src/utils/enums.ts index f1d08eff39..8c8540b5dd 100644 --- a/packages/neuron-ui/src/utils/enums.ts +++ b/packages/neuron-ui/src/utils/enums.ts @@ -7,7 +7,7 @@ export enum ConnectionStatus { export enum RoutePath { Launch = '/', Overview = '/overview', - WalletWizard = '/wizard', + WalletWizard = '/wizard/', Wallet = '/wallet', Send = '/send', Receive = '/receive', @@ -15,10 +15,10 @@ export enum RoutePath { Transaction = '/transaction', Addresses = '/addresses', Settings = '/settings', - SettingsGeneral = '/settings/general', - SettingsWallets = '/settings/wallets', - SettingsNetworks = '/settings/networks', - SettingsData = '/settings/data', + SettingsGeneral = 'general', + SettingsWallets = 'wallets', + SettingsNetworks = 'networks', + SettingsData = 'data', CreateWallet = '/wallets/new', ImportWallet = '/wallets/import', ImportKeystore = '/keystore/import', @@ -32,7 +32,7 @@ export enum RoutePath { SUDTReceive = '/s-udt/receive', NFTSend = '/nft', ImportHardware = '/import-hardware', - OfflineSign = '/*/offline-sign', + OfflineSign = 'offline-sign', } export enum CapacityUnit { diff --git a/packages/neuron-ui/src/utils/hooks/index.ts b/packages/neuron-ui/src/utils/hooks/index.ts index 1c9e4406ad..f752bbc4af 100644 --- a/packages/neuron-ui/src/utils/hooks/index.ts +++ b/packages/neuron-ui/src/utils/hooks/index.ts @@ -1,5 +1,5 @@ import { useState, useMemo, useCallback, useEffect, useRef } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import { TFunction, i18n as i18nType } from 'i18next' import { openContextMenu, requestPassword, deleteNetwork } from 'services/remote' import { syncRebuildNotification } from 'services/localCache' @@ -28,10 +28,10 @@ import { ErrorWithI18n, isErrorWithI18n } from 'exceptions' export * from './createSUDTAccount' export * from './tokenInfoList' -export const useGoBack = (history: ReturnType) => { +export const useGoBack = (navigate: ReturnType) => { return useCallback(() => { - history.goBack() - }, [history]) + navigate(-1) + }, [navigate]) } export const useLocalDescription = (type: 'address' | 'transaction', walletID: string, dispatch: StateDispatch) => { @@ -324,10 +324,10 @@ export const useOnLocaleChange = (i18n: i18nType) => { } export const useOnHandleWallet = ({ - history, + navigate, dispatch, }: { - history: ReturnType + navigate: ReturnType dispatch: StateDispatch }) => useCallback( @@ -342,7 +342,7 @@ export const useOnHandleWallet = ({ } = e as any switch (action) { case 'edit': { - history.push(`${RoutePath.WalletEditor}/${id}`) + navigate(`${RoutePath.WalletEditor}/${id}`) break } case 'delete': { @@ -365,7 +365,7 @@ export const useOnHandleWallet = ({ } } }, - [dispatch, history] + [dispatch, navigate] ) export const useOnWindowResize = (handler: () => void) => { @@ -404,7 +404,7 @@ export const useToggleChoiceGroupBorder = (containerSelector: string, borderClas } }, [containerSelector, borderClassName]) -export const useOnHandleNetwork = ({ history }: { history: ReturnType }) => +export const useOnHandleNetwork = ({ navigate }: { navigate: ReturnType }) => useCallback( (e: React.SyntheticEvent) => { const { @@ -417,7 +417,7 @@ export const useOnHandleNetwork = ({ history }: { history: ReturnType - useMemo(() => { - return contents.map(content => ( - - )) - }, [contents]) - -export default undefined diff --git a/packages/neuron-ui/src/widgets/Breadcrum/index.tsx b/packages/neuron-ui/src/widgets/Breadcrum/index.tsx index a93859eac7..a818e57dfe 100644 --- a/packages/neuron-ui/src/widgets/Breadcrum/index.tsx +++ b/packages/neuron-ui/src/widgets/Breadcrum/index.tsx @@ -1,5 +1,5 @@ import React, { useCallback } from 'react' -import { useHistory } from 'react-router-dom' +import { useNavigate } from 'react-router-dom' import styles from './breadcrum.module.scss' export interface Page { @@ -12,17 +12,17 @@ export interface BreadcumProps { } const Breadcrum = ({ pages = [] }: BreadcumProps) => { - const history = useHistory() + const navigate = useNavigate() const onClick = useCallback( e => { const { dataset: { link }, } = e.target as HTMLSpanElement if (link) { - history.push(link) + navigate(link) } }, - [history] + [navigate] ) return ( diff --git a/packages/neuron-wallet/package.json b/packages/neuron-wallet/package.json index b2e9e32b56..39ec63999d 100644 --- a/packages/neuron-wallet/package.json +++ b/packages/neuron-wallet/package.json @@ -95,6 +95,6 @@ "prettier": "1.19.1", "rimraf": "3.0.0", "ttypescript": "1.5.10", - "typescript": "4.2.3" + "typescript": "4.3.5" } } diff --git a/packages/neuron-wallet/src/utils/to-csv-row.ts b/packages/neuron-wallet/src/utils/to-csv-row.ts index cbf402f66b..84a935ecad 100644 --- a/packages/neuron-wallet/src/utils/to-csv-row.ts +++ b/packages/neuron-wallet/src/utils/to-csv-row.ts @@ -41,7 +41,7 @@ const toCSVRow = ( txType = +tx.sudtInfo.amount <= 0 ? `UDT ${SEND_TYPE}` : `UDT ${RECEIVE_TYPE}` } } else { - amount = shannonToCKB(BigInt(tx.value)) + amount = shannonToCKB(BigInt(tx.value ?? '')) if (tx.nervosDao) { txType = `Nervos DAO` } else if (['create', 'destroy'].includes(tx.type || '')) { diff --git a/yarn.lock b/yarn.lock index 3ded1d0cc6..71e3dbf4c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,10 +43,10 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" - integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.3.tgz#707b939793f867f5a73b2666e6d9a3396eb03151" + integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== "@babel/core@7.12.9": version "7.12.9" @@ -92,20 +92,20 @@ semver "^6.3.0" "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.4.5", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.1.tgz#c8fa615c5e88e272564ace3d42fbc8b17bfeb22b" - integrity sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" + integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.0" - "@babel/helper-compilation-targets" "^7.19.1" + "@babel/generator" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" "@babel/helper-module-transforms" "^7.19.0" "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.1" + "@babel/parser" "^7.19.3" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.3" + "@babel/types" "^7.19.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -121,12 +121,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.17.10", "@babel/generator@^7.19.0", "@babel/generator@^7.4.0", "@babel/generator@^7.7.2": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" - integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.17.10", "@babel/generator@^7.19.3", "@babel/generator@^7.4.0", "@babel/generator@^7.7.2": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" + integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== dependencies: - "@babel/types" "^7.19.0" + "@babel/types" "^7.19.3" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -145,12 +145,12 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" - integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== +"@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" + integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== dependencies: - "@babel/compat-data" "^7.19.1" + "@babel/compat-data" "^7.19.3" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" semver "^6.3.0" @@ -307,7 +307,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== -"@babel/helper-validator-identifier@^7.18.6": +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -345,10 +345,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.17.10", "@babel/parser@^7.18.10", "@babel/parser@^7.19.1", "@babel/parser@^7.4.3": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" - integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.17.10", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.4.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" + integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -394,9 +394,9 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.1.tgz#4bab3e7afe894fdbf47ffa86701266104fcb6ecc" - integrity sha512-LfIKNBBY7Q1OX5C4xAgRQffOg2OnhAo9fnbcOHgOC9Yytm2Sw+4XqHufRYU86tHomzepxtvuVaNO+3EVKR4ivw== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.3.tgz#c1977e4902a18cdf9051bf7bf08d97db2fd8b110" + integrity sha512-MbgXtNXqo7RTKYIXVchVJGPvaVufQH3pxvQyfbGvNw1DObIhph+PesYXJTcd8J4DdWibvf6Z2eanOyItX8WnJg== dependencies: "@babel/helper-create-class-features-plugin" "^7.19.0" "@babel/helper-plugin-utils" "^7.19.0" @@ -978,9 +978,9 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz#adcf180a041dcbd29257ad31b0c65d4de531ce8d" - integrity sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz#4f1db1e0fe278b42ddbc19ec2f6cd2f8262e35d6" + integrity sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w== dependencies: "@babel/helper-create-class-features-plugin" "^7.19.0" "@babel/helper-plugin-utils" "^7.19.0" @@ -1002,12 +1002,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.4.5": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.1.tgz#9f04c916f9c0205a48ebe5cc1be7768eb1983f67" - integrity sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.3.tgz#52cd19abaecb3f176a4ff9cc5e15b7bf06bec754" + integrity sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w== dependencies: - "@babel/compat-data" "^7.19.1" - "@babel/helper-compilation-targets" "^7.19.1" + "@babel/compat-data" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" @@ -1075,7 +1075,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.19.0" + "@babel/types" "^7.19.3" babel-plugin-polyfill-corejs2 "^0.3.3" babel-plugin-polyfill-corejs3 "^0.6.0" babel-plugin-polyfill-regenerator "^0.4.1" @@ -1142,7 +1142,7 @@ core-js-pure "^3.25.1" regenerator-runtime "^0.13.4" -"@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.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@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.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== @@ -1158,29 +1158,29 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.9", "@babel/traverse@^7.17.10", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.2": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" - integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.9", "@babel/traverse@^7.17.10", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.2": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" + integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.0" + "@babel/generator" "^7.19.3" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.1" - "@babel/types" "^7.19.0" + "@babel/parser" "^7.19.3" + "@babel/types" "^7.19.3" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.17.10", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" - integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.17.10", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" + integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== dependencies: "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1495,10 +1495,10 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^1.2.3", "@eslint/eslintrc@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" - integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== +"@eslint/eslintrc@^1.2.3", "@eslint/eslintrc@^1.3.2", "@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1533,34 +1533,34 @@ dependencies: tslib "^1.10.0" -"@fluentui/react-focus@^7.18.1", "@fluentui/react-focus@^7.18.12": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@fluentui/react-focus/-/react-focus-7.18.12.tgz#491df147d30a21098485fd45dc570ed247c29249" - integrity sha512-nQk73r/SU4cTcDY/pZW0Av7x4LbShXApm5PvVJxDUoqIvuGG18thpg1KPzzyHMGfVWfG1Qu6w+DGjJ/Sf/vc4Q== +"@fluentui/react-focus@^7.18.1", "@fluentui/react-focus@^7.18.16": + version "7.18.16" + resolved "https://registry.yarnpkg.com/@fluentui/react-focus/-/react-focus-7.18.16.tgz#a221a4484d71ac4ef1d71548fc0ba83d81f9d2ea" + integrity sha512-F84mFfA71pTcKKYVV/U6EXvuxhsOJDTEyIAQHpg7AJZDD78ZCAOY+rcXqxfrx0UfCh9y7hbjU3Q3UIRuveKBzQ== dependencies: "@fluentui/keyboard-key" "^0.2.12" - "@uifabric/merge-styles" "^7.20.0" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" - "@uifabric/styling" "^7.22.3" - "@uifabric/utilities" "^7.38.0" + "@uifabric/styling" "^7.25.0" + "@uifabric/utilities" "^7.38.1" tslib "^1.10.0" -"@fluentui/react-window-provider@^1.0.2", "@fluentui/react-window-provider@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@fluentui/react-window-provider/-/react-window-provider-1.0.4.tgz#e09bd86bee9ecb5594fb20c146d1720c6a05aa04" - integrity sha512-nBkV3RP7DlCzo4MYeCNLUrmKuGUhgmOt/fraNddBRjPXxpr9+u0VJwUD2Bz+qiG4SibclJIGJ8Mh0Il5Bj0kFA== +"@fluentui/react-window-provider@^1.0.2", "@fluentui/react-window-provider@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@fluentui/react-window-provider/-/react-window-provider-1.0.5.tgz#d625e16f02b18db28657e5f7c6b075c00ca2a0d6" + integrity sha512-cvGuFyyOIYjwFsWbLUK1k0yXS4Jz9FNkC8Z+1QAyQHUMNpaGi0thU3L9Y8oS8lm0RnCRKVkm3EEHo5LkvNPfIg== dependencies: "@uifabric/set-version" "^7.0.24" tslib "^1.10.0" -"@fluentui/theme@^1.7.11", "@fluentui/theme@^1.7.4": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@fluentui/theme/-/theme-1.7.11.tgz#821d541cb495b26d37ff09aa3f433bed12fc5430" - integrity sha512-oyD9xMPsHlpG+yJTY/PY+ibiSr0/bv/AF4+Ru+hvjzA1TtQ/jS9Az12Irfrm01TB5QuAVMnHA5ihlxWs+ocE3A== +"@fluentui/theme@^1.7.12", "@fluentui/theme@^1.7.4": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@fluentui/theme/-/theme-1.7.12.tgz#0f93610ef34a7ecdf863a5efe75880ddd59d34d5" + integrity sha512-/vYSXeXP5eWOAUN5NuuCto3lcZkyjJm4tDxZ3MCFXLqw/EP14/l3xXthBqQB+nW4EzYmN3AiJHwWzVm3R00drg== dependencies: - "@uifabric/merge-styles" "^7.20.0" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" - "@uifabric/utilities" "^7.38.0" + "@uifabric/utilities" "^7.38.1" tslib "^1.10.0" "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": @@ -1580,10 +1580,10 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== +"@humanwhocodes/config-array@^0.10.5": + version "0.10.7" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" + integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1743,10 +1743,10 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/expect-utils@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" - integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== +"@jest/expect-utils@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.2.tgz#66dbb514d38f7d21456bc774419c9ae5cca3f88d" + integrity sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg== dependencies: jest-get-type "^29.0.0" @@ -1989,10 +1989,10 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" - integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== +"@jest/types@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.2.tgz#7442d32b16bcd7592d9614173078b8c334ec730a" + integrity sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -2018,7 +2018,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== @@ -2036,18 +2036,18 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + version "0.3.16" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz#a7982f16c18cae02be36274365433e5b49d7b23f" + integrity sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@ledgerhq/devices@^5.51.1": version "5.51.1" @@ -2069,13 +2069,13 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/devices@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.1.tgz#c014fbb806ba3d48efb2fd757e8588c9300f54fc" - integrity sha512-LlAyDU5+GH0w+J1wscLU+Ga4z5a5ACKmMGQKILj5XscCtp63NjbtVdVt4oc/xrmoUdRqVehIw2Ui+e9nIF52yA== +"@ledgerhq/devices@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.3.tgz#bdd7e8ce078399fe644067a7e1ca9a9d2e249c02" + integrity sha512-URlcgq6yKklWxj35nIu/eTF0UpGLGUOp69xp8uHeyoMK2wqVC0GNGeD2MvKyJ+ul83edqMEI98GycA98Y7trsg== dependencies: - "@ledgerhq/errors" "^6.10.2" - "@ledgerhq/logs" "^6.10.0" + "@ledgerhq/errors" "^6.11.1" + "@ledgerhq/logs" "^6.10.1" rxjs "6" semver "^7.3.5" @@ -2084,20 +2084,20 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== -"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.10.2": - version "6.10.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.2.tgz#ba104d495eae5ee91264de91a9ba8e3dcaa1a4ea" - integrity sha512-iMfEJPWaan8QaZw87WMUnFFRJqveE3FpU2ObTE0ydTJLPJNOUJjjurGBklqdWM/j5BIQvpi3byGKFChfNg8CaQ== +"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.11.1": + version "6.11.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.11.1.tgz#a8a81bda6d28ac43c757e109b1ff079ddeec54a6" + integrity sha512-HT1PFvNrejcN5z3ba6xikacIdHWMkjBeE9U5FFoGHhaKBKGjC74mnCeEo0/oJunyuVId+9mhGnv6lrBl6Mkqdg== "@ledgerhq/hw-transport-node-hid-noevents@^6.20.0": - version "6.27.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.27.4.tgz#3bee0299de8586871d7ef329e5ef8ca9cf21ddab" - integrity sha512-PlHtw9x7h40voLUvBAfcr1Phjo8rrRESEDsU0OY6doFoSHpjRFaNtQR1/okQ/A7hx19uXfqXOhbmrrBLNWrqsg== - dependencies: - "@ledgerhq/devices" "^7.0.1" - "@ledgerhq/errors" "^6.10.2" - "@ledgerhq/hw-transport" "^6.27.4" - "@ledgerhq/logs" "^6.10.0" + version "6.27.6" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.27.6.tgz#1ad5e9ae886bbd6b245ba733b519f8a2619a684d" + integrity sha512-9WvUBUhk0eRSZjXgEsdNVGkxHuDLoh6fR1PJIeXKHgC8dzTREYrGKytx8ECqO5OPotXeAZURC3yB00XZrKIupw== + dependencies: + "@ledgerhq/devices" "^7.0.3" + "@ledgerhq/errors" "^6.11.1" + "@ledgerhq/hw-transport" "^6.27.6" + "@ledgerhq/logs" "^6.10.1" node-hid "2.1.1" "@ledgerhq/hw-transport-node-hid@6.20.0": @@ -2123,13 +2123,13 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" -"@ledgerhq/hw-transport@^6.20.0", "@ledgerhq/hw-transport@^6.27.4": - version "6.27.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.4.tgz#a06853fabb1795f728b5989078e58cad44146cc4" - integrity sha512-i3RYKfSIZ7PHM2sFljAU443qOYMTlghx8l5AZqsNKsXbawHkuOr7EtISW3zqbC0Wh3uws7u63qQ/50TLmylr7g== +"@ledgerhq/hw-transport@^6.20.0", "@ledgerhq/hw-transport@^6.27.6": + version "6.27.6" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.6.tgz#87f886591bad047c18e76920519aceb9d844667b" + integrity sha512-DRGUsB8WfbeEPuU42nAtwYpA5D6Bq3q1CvC2VjDinkukLcf6XMc22YUJl9mxt+h+/cLTU1Ff/pz+fqYqeELLEA== dependencies: - "@ledgerhq/devices" "^7.0.1" - "@ledgerhq/errors" "^6.10.2" + "@ledgerhq/devices" "^7.0.3" + "@ledgerhq/errors" "^6.11.1" events "^3.3.0" "@ledgerhq/logs@^5.50.0": @@ -2137,10 +2137,10 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@ledgerhq/logs@^6.10.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" - integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== +"@ledgerhq/logs@^6.10.0", "@ledgerhq/logs@^6.10.1": + version "6.10.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" + integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" @@ -3124,19 +3124,19 @@ read-package-json-fast "^2.0.3" which "^2.0.2" -"@nrwl/cli@14.7.8": - version "14.7.8" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-14.7.8.tgz#8a2febb47ce7ea1aa63d090fbbf113c4447a85f2" - integrity sha512-QH1egjg4gSVOZXOOhECAx9c18d/TdeqhNeTw2skHww2G9IbUwgab+jqL6GSMPuuGtLs7Vagt2kUkc7aegNgUuA== +"@nrwl/cli@14.8.3": + version "14.8.3" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-14.8.3.tgz#0debbc0887a3c19ba786d502ed0bf158a248c8b8" + integrity sha512-a8URAbqyZvegXMYU8pCA3Hfv0UdiDJc6HboazxinCJJgZWyqKYxRIWmKiWnfpXsr+qF6ntmBR/tC6yHbOL22gQ== dependencies: - nx "14.7.8" + nx "14.8.3" -"@nrwl/tao@14.7.8": - version "14.7.8" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-14.7.8.tgz#a9b83eb27b3f9c187efed429969d3ab798ad8ec1" - integrity sha512-pQ1eoesFKaEGWZLTAhv6Bs/2PS7GaT/jbT6ZN7ZhvYQq88DZxVb9SJkTthSaSJ22MHHevmljOeiv5onRffDsqQ== +"@nrwl/tao@14.8.3": + version "14.8.3" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-14.8.3.tgz#2d95902cd66694b5293cad349ad2bba2b8ef45ea" + integrity sha512-lN7+1biSM/7PYMMgh3jjOXJ9fe6VjhVrtZsDcB6lcklpShjXfHXqlpXDM7vjlw19aLeZMdFWHFoU2C5BTBtzgQ== dependencies: - nx "14.7.8" + nx "14.8.3" "@octokit/auth-token@^3.0.0": version "3.0.1" @@ -3177,9 +3177,9 @@ universal-user-agent "^6.0.0" "@octokit/openapi-types@^13.11.0": - version "13.12.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.12.0.tgz#cd49f28127ee06ee3edc6f2b5f5648c7332f6014" - integrity sha512-1QYzZrwnn3rTQE7ZoSxXrO8lhu0aIbac1c+qIPOPEaVXBWSaUyLV1x9yt4uDQOwmu6u5ywVS8OJgs+ErDLf6vQ== + version "13.13.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.13.1.tgz#a783bacb1817c9f61a2a0c3f81ea22ad62340fdf" + integrity sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -3238,9 +3238,9 @@ "@octokit/plugin-rest-endpoint-methods" "^6.0.0" "@octokit/types@^7.0.0", "@octokit/types@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.5.0.tgz#85646021bd618467b7cc465d9734b3f2878c9fae" - integrity sha512-aHm+olfIZjQpzoODpl+RCZzchKOrdSLJs+yfI7pMMcmB19Li6vidgx0DwUDO/Ic4Q3fq/lOjJORVCcLZefcrJw== + version "7.5.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.5.1.tgz#4e8b182933c17e1f41cc25d44757dbdb7bd76c1b" + integrity sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA== dependencies: "@octokit/openapi-types" "^13.11.0" @@ -3277,6 +3277,11 @@ prop-types "^15.6.1" react-lifecycles-compat "^3.0.4" +"@remix-run/router@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.0.1.tgz#88d7ac31811ab0cef14aaaeae2a0474923b278bc" + integrity sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg== + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -3344,9 +3349,9 @@ integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== "@sinclair/typebox@^0.24.1": - version "0.24.42" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.42.tgz#a74b608d494a1f4cc079738e050142a678813f52" - integrity sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw== + version "0.24.44" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.44.tgz#0a0aa3bf4a155a678418527342a3ee84bd8caa5c" + integrity sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg== "@sindresorhus/is@^0.14.0": version "0.14.0" @@ -4515,9 +4520,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.1.tgz#ce5e2c8c272b99b7a9fd69fa39f0b4cd85028bd9" - integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" + integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== dependencies: "@babel/types" "^7.3.0" @@ -4694,13 +4699,6 @@ dependencies: "@types/unist" "*" -"@types/history@*": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/history/-/history-5.0.0.tgz#29f919f0c8e302763798118f45b19cab4a886f14" - integrity sha512-hy8b7Y1J8OGe6LbAjj3xniQrj3v6lsivCcrmf4TzSgPzLkhIeKgc5IZnT7ReIqmEuodjfO8EYAuoFvIrHi/+jQ== - dependencies: - history "*" - "@types/history@^4.7.11": version "4.7.11" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" @@ -4777,9 +4775,9 @@ "@types/jest" "*" "@types/jest@*": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.3.tgz#b61a5ed100850686b8d3c5e28e3a1926b2001b59" - integrity sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og== + version "29.1.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.1.2.tgz#7ad8077043ab5f6c108c8111bcc1d224e5600a87" + integrity sha512-y+nlX0h87U0R+wsGn6EBuoRWYyv3KFtwRNP3QWp9+k2tJ2/bqcGS3UxD7jgT+tiwJWWq3UsyV4Y+T6rsMT4XMg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -4856,9 +4854,9 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.185" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.185.tgz#c9843f5a40703a8f5edfd53358a58ae729816908" - integrity sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA== + version "4.14.186" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.186.tgz#862e5514dd7bd66ada6c70ee5fce844b06c8ee97" + integrity sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw== "@types/mdast@^3.0.0": version "3.0.10" @@ -4900,9 +4898,9 @@ "@types/node" "*" "@types/node@*": - version "18.7.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154" - integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== + version "18.8.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.8.3.tgz#ce750ab4017effa51aed6a7230651778d54e327c" + integrity sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w== "@types/node@12.12.14": version "12.12.14" @@ -4915,9 +4913,9 @@ integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== "@types/node@^14.6.2": - version "14.18.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.29.tgz#a0c58d67a42f8953c13d32f0acda47ed26dfce40" - integrity sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A== + version "14.18.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.31.tgz#4b873dea3122e71af4f77e65ec5841397ff254d3" + integrity sha512-vQAnaReSQkEDa8uwAyQby8bYGKu84R/deEc6mg5T8fX6gzCn8QW6rziSgsti1fNvsrswKUKPnVTi7uoB+u62Mw== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -4953,9 +4951,9 @@ xmlbuilder ">=11.0.1" "@types/prettier@^2.1.5": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" - integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== "@types/prop-types@*": version "15.7.5" @@ -4978,9 +4976,9 @@ integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/reach__router@^1.2.3": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.10.tgz#141d500213a452d9d9d71d5ad96c4104094f55a3" - integrity sha512-iHAFGaVOrWi00/q7oBybggGsz5TOmwOW4M1H9sT7i9lly4qFC8XOgsdf6jUsoaOz2sknFHALEtZqCoDbokdJ2Q== + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.11.tgz#528af5d73f76b42cf7de5664cdd1b728dee78e31" + integrity sha512-j23ChnIEiW8aAP4KT8OVyTXOFr+Ri65BDnwzmfHFO9WHypXYevHFjeil1Cj7YH3emfCE924BwAmgW4hOv7Wg3g== dependencies: "@types/react" "*" @@ -5000,20 +4998,11 @@ "@types/react" "*" "@types/react-native@*": - version "0.70.2" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.70.2.tgz#ff4d19be4092154e5994edf3c3d5b14b24339fe3" - integrity sha512-WkeKpC+8FkQExsnUfdDzdArNaVWNIW+ncR3yqCb94WC/Xo7b5J+0rVUY7SoZfUXfPMvO/qoVGZvAyWbM0bU1Bw== - dependencies: - "@types/react" "*" - -"@types/react-router-dom@5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.3.tgz#b5d28e7850bd274d944c0fbbe5d57e6b30d71196" - integrity sha512-pCq7AkOvjE65jkGS5fQwQhvUp4+4PVD9g39gXLZViP2UqFiFzsEpB3PKf0O6mdbKsewSK8N14/eegisa/0CwnA== + version "0.70.4" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.70.4.tgz#316f0e9b4b51bbe5cecf09284555f01283afe3b2" + integrity sha512-z5tKfblHLG6jts2AQcioDw4N+F2EzflO9n495yNyqyMYRkSIVTLX64MHBeqMp5wfOY5mshy0GsOgnFSXrXKQSg== dependencies: - "@types/history" "*" "@types/react" "*" - "@types/react-router" "*" "@types/react-router@*": version "5.1.19" @@ -5231,9 +5220,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.1", "@types/yargs@^17.0.8": - version "17.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" - integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== + version "17.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" + integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== dependencies: "@types/yargs-parser" "*" @@ -5253,13 +5242,13 @@ tsutils "^3.21.0" "@typescript-eslint/eslint-plugin@^5.5.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz#ac919a199548861012e8c1fb2ec4899ac2bc22ae" - integrity sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ== + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz#778b2d9e7f293502c7feeea6c74dca8eb3e67511" + integrity sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A== dependencies: - "@typescript-eslint/scope-manager" "5.38.0" - "@typescript-eslint/type-utils" "5.38.0" - "@typescript-eslint/utils" "5.38.0" + "@typescript-eslint/scope-manager" "5.39.0" + "@typescript-eslint/type-utils" "5.39.0" + "@typescript-eslint/utils" "5.39.0" debug "^4.3.4" ignore "^5.2.0" regexpp "^3.2.0" @@ -5267,11 +5256,11 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.38.0.tgz#84e593a66138d75c11e85a0dbe9a8a6a013bf3cb" - integrity sha512-kzXBRfvGlicgGk4CYuRUqKvwc2s3wHXNssUWWJU18bhMRxriFm3BZWyQ6vEHBRpEIMKB6b7MIQHO+9lYlts19w== + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.39.0.tgz#9263bb72b57449cc2f07ffb7fd4e12d0160b7f5e" + integrity sha512-n5N9kG/oGu2xXhHzsWzn94s6CWoiUj59FPU2dF2IQZxPftw+q6Jm5sV2vj5qTgAElRooHhrgtl2gxBQDCPt6WA== dependencies: - "@typescript-eslint/utils" "5.38.0" + "@typescript-eslint/utils" "5.39.0" "@typescript-eslint/parser@5.23.0": version "5.23.0" @@ -5284,13 +5273,13 @@ debug "^4.3.2" "@typescript-eslint/parser@^5.5.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.38.0.tgz#5a59a1ff41a7b43aacd1bb2db54f6bf1c02b2ff8" - integrity sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA== + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.39.0.tgz#93fa0bc980a3a501e081824f6097f7ca30aaa22b" + integrity sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA== dependencies: - "@typescript-eslint/scope-manager" "5.38.0" - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/typescript-estree" "5.38.0" + "@typescript-eslint/scope-manager" "5.39.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/typescript-estree" "5.39.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.23.0": @@ -5301,13 +5290,13 @@ "@typescript-eslint/types" "5.23.0" "@typescript-eslint/visitor-keys" "5.23.0" -"@typescript-eslint/scope-manager@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.38.0.tgz#8f0927024b6b24e28671352c93b393a810ab4553" - integrity sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA== +"@typescript-eslint/scope-manager@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz#873e1465afa3d6c78d8ed2da68aed266a08008d0" + integrity sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw== dependencies: - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/visitor-keys" "5.38.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/visitor-keys" "5.39.0" "@typescript-eslint/type-utils@5.23.0": version "5.23.0" @@ -5318,13 +5307,13 @@ debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/type-utils@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.38.0.tgz#c8b7f681da825fcfc66ff2b63d70693880496876" - integrity sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA== +"@typescript-eslint/type-utils@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz#0a8c00f95dce4335832ad2dc6bc431c14e32a0a6" + integrity sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA== dependencies: - "@typescript-eslint/typescript-estree" "5.38.0" - "@typescript-eslint/utils" "5.38.0" + "@typescript-eslint/typescript-estree" "5.39.0" + "@typescript-eslint/utils" "5.39.0" debug "^4.3.4" tsutils "^3.21.0" @@ -5333,10 +5322,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.23.0.tgz#8733de0f58ae0ed318dbdd8f09868cdbf9f9ad09" integrity sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw== -"@typescript-eslint/types@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.38.0.tgz#8cd15825e4874354e31800dcac321d07548b8a5f" - integrity sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA== +"@typescript-eslint/types@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.39.0.tgz#f4e9f207ebb4579fd854b25c0bf64433bb5ed78d" + integrity sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw== "@typescript-eslint/typescript-estree@5.23.0": version "5.23.0" @@ -5351,13 +5340,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.0.tgz#89f86b2279815c6fb7f57d68cf9b813f0dc25d98" - integrity sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg== +"@typescript-eslint/typescript-estree@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz#c0316aa04a1a1f4f7f9498e3c13ef1d3dc4cf88b" + integrity sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA== dependencies: - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/visitor-keys" "5.38.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/visitor-keys" "5.39.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -5376,15 +5365,15 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/utils@5.38.0", "@typescript-eslint/utils@^5.13.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.38.0.tgz#5b31f4896471818153790700eb02ac869a1543f4" - integrity sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA== +"@typescript-eslint/utils@5.39.0", "@typescript-eslint/utils@^5.13.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.39.0.tgz#b7063cca1dcf08d1d21b0d91db491161ad0be110" + integrity sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.38.0" - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/typescript-estree" "5.38.0" + "@typescript-eslint/scope-manager" "5.39.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/typescript-estree" "5.39.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -5396,23 +5385,23 @@ "@typescript-eslint/types" "5.23.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.0.tgz#60591ca3bf78aa12b25002c0993d067c00887e34" - integrity sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w== +"@typescript-eslint/visitor-keys@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz#8f41f7d241b47257b081ddba5d3ce80deaae61e2" + integrity sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg== dependencies: - "@typescript-eslint/types" "5.38.0" + "@typescript-eslint/types" "5.39.0" eslint-visitor-keys "^3.3.0" "@uifabric/azure-themes@^7.9.12": - version "7.10.18" - resolved "https://registry.yarnpkg.com/@uifabric/azure-themes/-/azure-themes-7.10.18.tgz#c7ae9adec7707609f9e534feb1093eb7b9606446" - integrity sha512-CSjzF5eNToWNIwzVHuelOYBzQ54UAkvWRqRWXA0K+UlI2NToUTHMTRsYIJ47hJwgTdjklKDkGSyu1Mcp9UeS6w== + version "7.10.24" + resolved "https://registry.yarnpkg.com/@uifabric/azure-themes/-/azure-themes-7.10.24.tgz#bf74cd72dda8516774a095a066d2d10190b0138a" + integrity sha512-GAMWyYk5uwHuqi745/uD9UV49xqoZAqK56qo9YtBwG4Vu2hYstKAt9P++2My94jUCMlmaJJuT4UGOrAMSxveEA== dependencies: - "@fluentui/theme" "^1.7.11" - "@uifabric/merge-styles" "^7.20.0" + "@fluentui/theme" "^1.7.12" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" - office-ui-fabric-react "^7.197.6" + office-ui-fabric-react "^7.199.3" tslib "^1.10.0" "@uifabric/example-data@^7.1.6": @@ -5448,64 +5437,64 @@ tslib "^1.10.0" "@uifabric/file-type-icons@^7.8.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@uifabric/file-type-icons/-/file-type-icons-7.10.3.tgz#9adee020c511f857a3e6e72d7cca7f016ec1eb22" - integrity sha512-/TwO6ilZpizlAqwqpeT6kcCakQv/9FE1sDE5mAQTrusY/avpbwMeQTjhNRHJvrlMXNHxWqutAa+Dba6R2ArvIg== + version "7.10.7" + resolved "https://registry.yarnpkg.com/@uifabric/file-type-icons/-/file-type-icons-7.10.7.tgz#08490096f592f03e090279118df8e7bae8b72474" + integrity sha512-FE9M4l3nVqIt5d4BrVLclCLw1Pj7Q5cGKjjGWv9TQLg/XxP3c/iaaPc1k6eWGYDC6CgGDuMSl9Fto230JW1DnA== dependencies: "@uifabric/set-version" "^7.0.24" - "@uifabric/styling" "^7.22.3" + "@uifabric/styling" "^7.25.0" tslib "^1.10.0" "@uifabric/fluent-theme@^7.6.11": - version "7.7.18" - resolved "https://registry.yarnpkg.com/@uifabric/fluent-theme/-/fluent-theme-7.7.18.tgz#1c86a3ff484a4f5bf974502327a81dbfe238c37a" - integrity sha512-9SMKTMfom+mH8exlPdzvxlJ+/9eXEcVXTnd5bEPAnneLbscwCXt15i3Wqgti06xYO7lCf69cca3QQowYYal/MA== + version "7.7.24" + resolved "https://registry.yarnpkg.com/@uifabric/fluent-theme/-/fluent-theme-7.7.24.tgz#feba4ccbee0298691d936b067b4d165f08d62350" + integrity sha512-6TBTjAqOMFTOz1mfKsNLWm9xqreFFGbT6rCippgAiiOjbLvw+zqIQ0WAki0f3tOjvu21iGPgbvvcjtcaauGcbg== dependencies: - "@fluentui/theme" "^1.7.11" - "@uifabric/merge-styles" "^7.20.0" + "@fluentui/theme" "^1.7.12" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" - "@uifabric/styling" "^7.22.3" - "@uifabric/variants" "^7.3.2" - office-ui-fabric-react "^7.197.6" + "@uifabric/styling" "^7.25.0" + "@uifabric/variants" "^7.3.3" + office-ui-fabric-react "^7.199.3" tslib "^1.10.0" -"@uifabric/foundation@^7.10.1", "@uifabric/foundation@^7.10.11": - version "7.10.11" - resolved "https://registry.yarnpkg.com/@uifabric/foundation/-/foundation-7.10.11.tgz#497914b00416c5b350a8f7ff4b443a33a807f595" - integrity sha512-0tqJSzSU6leqWadCAd7KykFiePeQWfwb3CKZO14Z1EEmyOHuqzm4mGIt+KlDQgYdsD3VlSRA0Kx4tbPM1CaTkQ== +"@uifabric/foundation@^7.10.1", "@uifabric/foundation@^7.10.15": + version "7.10.15" + resolved "https://registry.yarnpkg.com/@uifabric/foundation/-/foundation-7.10.15.tgz#7c11c3dee8eb3bdbb90ba8589fae11ce8e304599" + integrity sha512-Zup0OPJ8j/biWpy4E3MpR51jllmke2z7sBtF3deJS2/FsMjXPKsrdMlmUzaem/v3OcRXhel9ZS0eb97/GZhvYA== dependencies: - "@uifabric/merge-styles" "^7.20.0" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" - "@uifabric/styling" "^7.22.3" - "@uifabric/utilities" "^7.38.0" + "@uifabric/styling" "^7.25.0" + "@uifabric/utilities" "^7.38.1" tslib "^1.10.0" -"@uifabric/icons@^7.6.2", "@uifabric/icons@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@uifabric/icons/-/icons-7.8.6.tgz#c53079740999a09584c26de5538b1ba245ff8f40" - integrity sha512-Gmgk5jTqHKS28f/tjhJH2S/NcWSZHG3ZdqjtS1vaT8zVzKEtdL0rXeicMUgrfo52xh21nazytriQkxgiWCerZw== +"@uifabric/icons@^7.6.2", "@uifabric/icons@^7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@uifabric/icons/-/icons-7.9.4.tgz#11ea7602367639725ef91e7b9185a24680772167" + integrity sha512-7lG09YuryCO8+EqZpQM9Y6+/uC6uxpbPIeQeSDG0QY8e951t7lHcLskxCOk4CSTYqhTbB2vurkOgJFQPjQ573A== dependencies: "@uifabric/set-version" "^7.0.24" - "@uifabric/styling" "^7.22.3" - "@uifabric/utilities" "^7.38.0" + "@uifabric/styling" "^7.25.0" + "@uifabric/utilities" "^7.38.1" tslib "^1.10.0" -"@uifabric/merge-styles@^7.19.2", "@uifabric/merge-styles@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@uifabric/merge-styles/-/merge-styles-7.20.0.tgz#864793617713c768a9d9ec6f645fa9f4605eb9ad" - integrity sha512-7u1oF1lGmNDzOfE9UhULAO9xcEkZV2DDlKlbeIHuXQUGG480drfDWqNPk5LuGNx4ogvH9qSNPbXeGLLZYBb4wQ== +"@uifabric/merge-styles@^7.19.2", "@uifabric/merge-styles@^7.20.1": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@uifabric/merge-styles/-/merge-styles-7.20.1.tgz#56a9457c696b1efc5947c8392bcc479180d14d02" + integrity sha512-LaxbbAGGh/X4x9gwd6kMFIiJKOczy0kHJ1/16b2CAs9De+Ra0mxdTfO9yHbLXKXOvNJcx0mzwaYMDrgBG7cT8A== dependencies: "@uifabric/set-version" "^7.0.24" tslib "^1.10.0" -"@uifabric/react-hooks@^7.14.0", "@uifabric/react-hooks@^7.16.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@uifabric/react-hooks/-/react-hooks-7.16.2.tgz#1cc8a66ca90767ee4ecc0e52142b6b30c93538eb" - integrity sha512-vlWRO73o0jLua0YaVMOZr9VrjiyQRwILi8yoe3Tm8xT8PoDzdsJt4lHNxnXW865xzAYWiUqrlQuds7NiaZsaOg== +"@uifabric/react-hooks@^7.14.0", "@uifabric/react-hooks@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@uifabric/react-hooks/-/react-hooks-7.16.3.tgz#7f0293be8633acead98ae1194cd7649bfda534bd" + integrity sha512-Qf2WQRDbToDsED96xxrW0VpevZ/0NumTyAFY3NHUEphdzqBLDohZQDYB1MjSQxa2T8TBqbvCBcmcnzYi4+kz3A== dependencies: - "@fluentui/react-window-provider" "^1.0.4" + "@fluentui/react-window-provider" "^1.0.5" "@uifabric/set-version" "^7.0.24" - "@uifabric/utilities" "^7.38.0" + "@uifabric/utilities" "^7.38.1" tslib "^1.10.0" "@uifabric/set-version@^7.0.24": @@ -5527,46 +5516,46 @@ "@uifabric/utilities" "^7.33.5" tslib "^1.10.0" -"@uifabric/styling@^7.20.0", "@uifabric/styling@^7.22.3": - version "7.22.3" - resolved "https://registry.yarnpkg.com/@uifabric/styling/-/styling-7.22.3.tgz#bb96b71d32997cb63348ef7f98d549c6273a7e7a" - integrity sha512-CDahF+/LXx+oeqYFPC0Bib2Teb+wFCrAI0rs2BXylgSrgecYv5QvS9SdZbnrXIwxjnbW6fFOEINy3muwpCOitA== +"@uifabric/styling@^7.20.0", "@uifabric/styling@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@uifabric/styling/-/styling-7.25.0.tgz#03ad7f18e5301db058cdebfe460ff4a6950be5c9" + integrity sha512-F92QgRZnsh7Wg0O60SROIAuf0wWW0wYbLca8bO0gNifDjfmAWT/Hoc8d5g8v73kRh/F5lcUWxlHZQEF/vyb2qA== dependencies: - "@fluentui/theme" "^1.7.11" + "@fluentui/theme" "^1.7.12" "@microsoft/load-themed-styles" "^1.10.26" - "@uifabric/merge-styles" "^7.20.0" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" - "@uifabric/utilities" "^7.38.0" + "@uifabric/utilities" "^7.38.1" tslib "^1.10.0" "@uifabric/theme-samples@^7.4.11": - version "7.5.18" - resolved "https://registry.yarnpkg.com/@uifabric/theme-samples/-/theme-samples-7.5.18.tgz#58e2c270fbbafdd7bbd10f4d63a7ae02f4ece184" - integrity sha512-Cj2t/V3DQfTOiFM6yq3v5WJg4tbWwO0ooGyHDbWRwYcFciBC3SFACExyP9jQSJhABO9IPly/j6gd0x26DJIFCA== + version "7.5.24" + resolved "https://registry.yarnpkg.com/@uifabric/theme-samples/-/theme-samples-7.5.24.tgz#00c3e56ae0c664816c3d95f29310c2943cd40691" + integrity sha512-wPvYigZkIXFOW2hSNcBcWjPHId6/MD+Be8dTMSz//lQeC/N6izeTgajIcEizYIkYPdmSA8NbHRM3qJBSDr+Raw== dependencies: - "@fluentui/theme" "^1.7.11" + "@fluentui/theme" "^1.7.12" "@uifabric/set-version" "^7.0.24" - "@uifabric/variants" "^7.3.2" - office-ui-fabric-react "^7.197.6" + "@uifabric/variants" "^7.3.3" + office-ui-fabric-react "^7.199.3" tslib "^1.10.0" -"@uifabric/utilities@^7.33.5", "@uifabric/utilities@^7.38.0": - version "7.38.0" - resolved "https://registry.yarnpkg.com/@uifabric/utilities/-/utilities-7.38.0.tgz#3c202621ccaabb01f4e52ddc8c56b24eaab6b865" - integrity sha512-qiF/PkmAdYzvpmOJDjxgqqy3Z1p4WewKn0PBxaDuaH0nZSJswEUAyn53qN6C+FYJ3WllC9cjfBYwmmeGHkc2ug== +"@uifabric/utilities@^7.33.5", "@uifabric/utilities@^7.38.1": + version "7.38.1" + resolved "https://registry.yarnpkg.com/@uifabric/utilities/-/utilities-7.38.1.tgz#a3dc91759559f6552a3ccb5059aa6ee72a148bda" + integrity sha512-AdNsDbiARDEtLA9QLGzCYZA7nVKuS7etV7ANvpJ9rko3ApyudRrKZBdHAckd+r8yMCQzg77v8tCfiam2A4jN8g== dependencies: "@fluentui/dom-utilities" "^1.1.2" - "@uifabric/merge-styles" "^7.20.0" + "@uifabric/merge-styles" "^7.20.1" "@uifabric/set-version" "^7.0.24" prop-types "^15.7.2" tslib "^1.10.0" -"@uifabric/variants@^7.2.35", "@uifabric/variants@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@uifabric/variants/-/variants-7.3.2.tgz#0a674cabd4e2cc64e53b314ce2fdd5c1cdc52f71" - integrity sha512-oIhADO1t5IViooVK3Z767H/Ew+Z+S98MB/hrcUkhLAqCAEioZhRpI5aehrOLDhfFboRNjnyESUtkrRrQ5/J8/Q== +"@uifabric/variants@^7.2.35", "@uifabric/variants@^7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@uifabric/variants/-/variants-7.3.3.tgz#43b1cacff26beb434b3838cf140c007a9a6b65db" + integrity sha512-6pbPUVFFd+FCg1qGk6HXzv8BHypnBrKvojBxi97PHxkTUjaYL7AQDk9pZVspAachjRFZxJzGXm20ize6462vJg== dependencies: - "@fluentui/theme" "^1.7.11" + "@fluentui/theme" "^1.7.12" "@uifabric/set-version" "^7.0.24" tslib "^1.10.0" @@ -5846,6 +5835,19 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@yarnpkg/parsers@^3.0.0-rc.18": + version "3.0.0-rc.23" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.23.tgz#2854a12ecdac9663fb30e90596531d04749da916" + integrity sha512-zSS70A/5Tb+g618tGNX6NGa5Pa/tDzB0H82Z1PckKOzIUfWPPcYl3hjAyX4uuxHKjstxEauGV44H9uklbe++7Q== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + "@zerollup/ts-helpers@^1.7.18": version "1.7.18" resolved "https://registry.yarnpkg.com/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz#747177f6d5abc06c3a0f5dffe7362d365cf0391d" @@ -5860,6 +5862,13 @@ dependencies: "@zerollup/ts-helpers" "^1.7.18" +"@zkochan/js-yaml@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826" + integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg== + dependencies: + argparse "^2.0.1" + JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -5873,7 +5882,7 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@1: +abbrev@1, abbrev@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -6662,6 +6671,13 @@ axe-core@^4.3.5, axe-core@^4.4.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + axios@0.21.4, axios@^0.21.1: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -7212,9 +7228,9 @@ bech32@2.0.0: integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== bfj@^7.0.2: version "7.0.2" @@ -7979,9 +7995,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001407: - version "1.0.30001408" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001408.tgz#8f5e96bd9c5fd1a8c629e4415cdbaf556333a591" - integrity sha512-DdUCktgMSM+1ndk9EFMZcavsGszV7zxV9O7MtOHniTa/iyAIwJCF0dFVBdU9SijJbfh29hC9bCs07wu8pjnGJQ== + version "1.0.30001418" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz#5f459215192a024c99e3e3a53aac310fc7cf24e6" + integrity sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg== canvg@2.0.0: version "2.0.0" @@ -7999,9 +8015,9 @@ capture-exit@^2.0.0: rsvp "^4.8.4" capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz#1c43f6b059d4249e7f3f8724f15f048b927d3a8a" + integrity sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w== case-sensitive-paths-webpack-plugin@^2.2.0, case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -8359,6 +8375,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-deep@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" @@ -8861,21 +8886,21 @@ copy-to-clipboard@^3.0.8: toggle-selection "^1.0.6" core-js-compat@^3.25.1: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" - integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== + version "3.25.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.5.tgz#0016e8158c904f7b059486639e6e82116eafa7d9" + integrity sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA== dependencies: browserslist "^4.21.4" core-js-pure@^3.0.1, core-js-pure@^3.25.1, core-js-pure@^3.8.1: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.2.tgz#44a4fd873bdd4fecf6ca11512bcefedbe87e744a" - integrity sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA== + version "3.25.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.5.tgz#79716ba54240c6aa9ceba6eee08cf79471ba184d" + integrity sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg== core-js@^3.0.1, core-js@^3.0.4, core-js@^3.19.2: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.2.tgz#2d3670c1455432b53fa780300a6fc1bd8304932c" - integrity sha512-YB4IAT1bjEfxTJ1XYy11hJAKskO+qmhuDBM8/guIfMz4JvdsAQAqvyb97zXX7JgSrfPLG5mRGFWJwJD39ruq2A== + version "3.25.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.5.tgz#e86f651a2ca8a0237a5f064c2fe56cef89646e27" + integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== core-util-is@1.0.2: version "1.0.2" @@ -9643,12 +9668,12 @@ detect-port-alt@1.1.6, detect-port-alt@^1.1.6: debug "^2.6.0" detect-port@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" + integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== dependencies: address "^1.0.1" - debug "^2.6.0" + debug "4" detective@^5.2.1: version "5.2.1" @@ -10102,9 +10127,9 @@ electron-publish@22.14.5: mime "^2.5.2" electron-to-chromium@^1.3.247, electron-to-chromium@^1.4.251: - version "1.4.256" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.256.tgz#c735032f412505e8e0482f147a8ff10cfca45bf4" - integrity sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw== + version "1.4.276" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz#17837b19dafcc43aba885c4689358b298c19b520" + integrity sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ== electron-updater@4.2.0: version "4.2.0" @@ -10375,21 +10400,21 @@ error-stack-parser@^2.0.6: stackframe "^1.3.4" es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.4, es-abstract@^1.19.5, es-abstract@^1.20.1: - version "1.20.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" - integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.2" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.4" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" @@ -10399,6 +10424,7 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19 object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" @@ -10728,9 +10754,9 @@ eslint-plugin-react@^7.27.1: string.prototype.matchall "^4.0.7" eslint-plugin-testing-library@^5.0.1: - version "5.6.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.6.4.tgz#9dffd9feafbb08a36240f88156357685b56f0b8a" - integrity sha512-0oW3tC5NNT2WexmJ3848a/utawOymw4ibl3/NkwywndVAz2hT9+ab70imA7ccg3RaScQgMvJT60OL00hpmJvrg== + version "5.7.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.7.2.tgz#c1b2112a40aab61f93e10859e8b2d81e54f0ce84" + integrity sha512-0ZmHeR/DUUgEzW8rwUBRWxuqntipDtpvxK0hymdHnLlABryJkzd+CAHr+XnISaVsTisZ5MLHp6nQF+8COHLLTA== dependencies: "@typescript-eslint/utils" "^5.13.0" @@ -10827,13 +10853,13 @@ eslint@8.15.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -eslint@8.23.1, eslint@^8.3.0: - version "8.23.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" - integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== +eslint@8.24.0: + version "8.24.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8" + integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ== dependencies: "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/config-array" "^0.10.5" "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" @@ -10872,6 +10898,50 @@ eslint@8.23.1, eslint@^8.3.0: strip-json-comments "^3.1.0" text-table "^0.2.0" +eslint@^8.3.0: + version "8.25.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b" + integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A== + dependencies: + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.10.5" + "@humanwhocodes/module-importer" "^1.0.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.1" + globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + esm@3.2.25: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" @@ -11069,15 +11139,15 @@ expect@^27.5.1: jest-message-util "^27.5.1" expect@^29.0.0: - version "29.0.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" - integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== + version "29.1.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.2.tgz#82f8f28d7d408c7c68da3a386a490ee683e1eced" + integrity sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw== dependencies: - "@jest/expect-utils" "^29.0.3" + "@jest/expect-utils" "^29.1.2" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-util "^29.1.2" express@^4.17.0, express@^4.17.3: version "4.18.1" @@ -11260,9 +11330,9 @@ faye-websocket@^0.11.3, faye-websocket@~0.11.1: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -11465,9 +11535,9 @@ flatted@^3.1.0: integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== flow-parser@0.*: - version "0.187.1" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.187.1.tgz#52b2c7ebd7544b75bda0676380138bc5b3de3177" - integrity sha512-ZvlTeakTTMmYGukt4EIQtLEp4ie45W+jK325uukGgiqFg2Rl7TdpOJQbOLUN2xMeGS+WvXaK0uIJ3coPGDXFGQ== + version "0.188.2" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.188.2.tgz#cba2f8c8cdcf358d553cf89f0b9aaaa394fa6111" + integrity sha512-Qnvihm7h4YDgFVQV2h0TcLE421D20/giBg93Dtobj+CHRnZ39vmsbDPM9IenUBtZuY0vWRiJp6slOv7dvmlKbg== flush-write-stream@^1.0.0: version "1.1.1" @@ -11484,7 +11554,7 @@ focus-lock@^0.11.2: dependencies: tslib "^2.0.3" -follow-redirects@^1.0.0, follow-redirects@^1.14.0: +follow-redirects@^1.0.0, follow-redirects@^1.10.0, follow-redirects@^1.14.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -11820,7 +11890,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -12493,25 +12563,6 @@ highlight.js@~9.13.0: resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== -history@*: - version "5.3.0" - resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b" - integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ== - dependencies: - "@babel/runtime" "^7.7.6" - -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -12521,7 +12572,7 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: +hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -12888,9 +12939,9 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== idb@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/idb/-/idb-7.0.2.tgz#7a067e20dd16539938e456814b7d714ba8db3892" - integrity sha512-jjKrT1EnyZewQ/gCBb/eyiYrhGzws2FeY92Yx8qT9S9GeQAmo4JFVIiWRIfKW/6Ob9A+UDAOW9j9jn58fy2HIg== + version "7.1.0" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.0.tgz#2cc886be57738419e57f9aab58f647e5e2160270" + integrity sha512-Wsk07aAxDsntgYJY4h0knZJuTxM73eQ4reRAO+Z1liOh8eMCJ/MoDS8fCui1vGT9mnjtl1sOu3I2i/W1swPYZg== identity-obj-proxy@^3.0.0: version "3.0.0" @@ -13266,10 +13317,10 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: - version "1.2.6" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.6.tgz#fd6170b0b8c7e2cc73de342ef8284a2202023c44" - integrity sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^1.0.10: version "1.2.1" @@ -13729,11 +13780,6 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -13807,9 +13853,9 @@ istanbul-lib-instrument@^3.3.0: semver "^6.0.0" istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" - integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -13968,15 +14014,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" - integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== +jest-diff@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.2.tgz#bb7aaf5353227d6f4f96c5e7e8713ce576a607dc" + integrity sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" jest-docblock@^27.5.1: version "27.5.1" @@ -14146,15 +14192,15 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" - integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== +jest-matcher-utils@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz#e68c4bcc0266e70aa1a5c13fb7b8cd4695e318a1" + integrity sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw== dependencies: chalk "^4.0.0" - jest-diff "^29.0.3" + jest-diff "^29.1.2" jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" jest-message-util@^24.9.0: version "24.9.0" @@ -14200,18 +14246,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" - integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== +jest-message-util@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.2.tgz#c21a33c25f9dc1ebfcd0f921d89438847a09a501" + integrity sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.1.2" slash "^3.0.0" stack-utils "^2.0.3" @@ -14480,12 +14526,12 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" - integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== +jest-util@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.2.tgz#ac5798e93cb6a6703084e194cfa0898d66126df1" + integrity sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -14605,9 +14651,9 @@ jest@^27.4.3: jest-cli "^27.5.1" joi@^17.4.0: - version "17.6.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" - integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + version "17.6.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.2.tgz#00ac55ce6495596545cce45309f38738cfbd7cd3" + integrity sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -14616,9 +14662,9 @@ joi@^17.4.0: "@sideway/pinpoint" "^2.0.0" js-sdsl@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" - integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== + version "4.1.5" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" + integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -14642,7 +14688,7 @@ js-yaml@4.1.0, js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -js-yaml@^3.13.1: +js-yaml@^3.10.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -14823,10 +14869,10 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -jsonc-parser@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== +jsonc-parser@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== jsonfile@^4.0.0: version "4.0.0" @@ -15567,7 +15613,7 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -16036,14 +16082,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-create-react-context@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.3.3.tgz#b1b2bc6604d3a6c5d9752bad7692615410ebb38e" - integrity sha512-TtF6hZE59SGmS4U8529qB+jJFeW6asTLDIpPgvPLSCsooAwJS7QprHIFTqv9/Qh3NdLwQxFYgiHX5lqb6jqzPA== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - mini-css-extract-plugin@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0" @@ -16270,9 +16308,9 @@ moment@^2.19.3: integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + version "0.5.2" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" + integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== move-concurrently@^1.0.1: version "1.0.1" @@ -16537,15 +16575,15 @@ node-gyp@^4.0.0: which "1" node-gyp@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.1.0.tgz#c8d8e590678ea1f7b8097511dedf41fc126648f8" - integrity sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g== + version "9.2.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.2.0.tgz#b3b56144828a98018a4cfb3033095e0f5b874d72" + integrity sha512-/+/YxGfIJOh/fnMsr4Ep0v6oOIjnO1BgLd2dcDspBX1spTkQU7xSIox5RdRE/2/Uq3ZwK8Z5swRIbMUmPlslmg== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.6" make-fetch-happen "^10.0.3" - nopt "^5.0.0" + nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" semver "^7.3.5" @@ -16619,6 +16657,13 @@ nopt@^5.0.0: dependencies: abbrev "1" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -16764,9 +16809,9 @@ npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: validate-npm-package-name "^3.0.0" npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.0.tgz#a60e9f1e7c03e4e3e4e994ea87fff8b90b522987" - integrity sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw== + version "9.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== dependencies: hosted-git-info "^5.0.0" proc-log "^2.0.1" @@ -16938,14 +16983,18 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== -nx@14.7.8, "nx@>=14.6.1 < 16": - version "14.7.8" - resolved "https://registry.yarnpkg.com/nx/-/nx-14.7.8.tgz#89348d0161c967c2122b42d8db0cf0454e88c255" - integrity sha512-fSnjS7R1iB9ZtsZ4HPkt/xwl8Z+SfgXY6bH99LCAL2KniaMxbnoU5S3N+WbIZb6KnXQjl/rCxTZYoQaRL7C8pQ== +nx@14.8.3, "nx@>=14.6.1 < 16": + version "14.8.3" + resolved "https://registry.yarnpkg.com/nx/-/nx-14.8.3.tgz#6f6e5c579d37683aa182c1829f7f9ac44e838900" + integrity sha512-6aMYrzlTqE77vHbaE1teI5P1A2oYkJGkuDMIo/zegRwUxCAjRzLAluUgPrmgqhuPTyTDn8p4aDfxAWV3Q0o/2Q== dependencies: - "@nrwl/cli" "14.7.8" - "@nrwl/tao" "14.7.8" + "@nrwl/cli" "14.8.3" + "@nrwl/tao" "14.8.3" "@parcel/watcher" "2.0.4" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "^3.0.0-rc.18" + "@zkochan/js-yaml" "0.0.6" + axios "0.21.1" chalk "4.1.0" chokidar "^3.5.1" cli-cursor "3.1.0" @@ -16960,12 +17009,13 @@ nx@14.7.8, "nx@>=14.6.1 < 16": glob "7.1.4" ignore "^5.0.4" js-yaml "4.1.0" - jsonc-parser "3.0.0" + jsonc-parser "3.2.0" minimatch "3.0.5" npm-run-path "^4.0.1" open "^8.4.0" semver "7.3.4" string-width "^4.2.3" + strong-log-transformer "^2.1.0" tar-stream "~2.2.0" tmp "~0.2.1" tsconfig-paths "^3.9.0" @@ -17109,22 +17159,22 @@ office-ui-fabric-react@7.180.3: prop-types "^15.7.2" tslib "^1.10.0" -office-ui-fabric-react@^7.180.3, office-ui-fabric-react@^7.197.6: - version "7.197.6" - resolved "https://registry.yarnpkg.com/office-ui-fabric-react/-/office-ui-fabric-react-7.197.6.tgz#19e7015f4d5e055152bc0524d75e19a3bc597692" - integrity sha512-xnyRDq3wNELTvrnUH1OwSlw6SNnFbAImR9mQZMVllY/XVX9OMkQEwk6lhzmTwhL1P03BlKBnWjQAIW1punlhZQ== +office-ui-fabric-react@^7.180.3, office-ui-fabric-react@^7.199.3: + version "7.199.3" + resolved "https://registry.yarnpkg.com/office-ui-fabric-react/-/office-ui-fabric-react-7.199.3.tgz#6a298ce73312f65e007282b73038f6a6854cddf2" + integrity sha512-JEsCWeLyuiR+TzueacaKp0wVMQd2glTEFulAcniA1c0iApAQpLAq6exupTUSTVVdNFNStScGxYjt/XryqeDQBQ== dependencies: "@fluentui/date-time-utilities" "^7.9.1" - "@fluentui/react-focus" "^7.18.12" - "@fluentui/react-window-provider" "^1.0.4" + "@fluentui/react-focus" "^7.18.16" + "@fluentui/react-window-provider" "^1.0.5" "@microsoft/load-themed-styles" "^1.10.26" - "@uifabric/foundation" "^7.10.11" - "@uifabric/icons" "^7.8.6" - "@uifabric/merge-styles" "^7.20.0" - "@uifabric/react-hooks" "^7.16.2" + "@uifabric/foundation" "^7.10.15" + "@uifabric/icons" "^7.9.4" + "@uifabric/merge-styles" "^7.20.1" + "@uifabric/react-hooks" "^7.16.3" "@uifabric/set-version" "^7.0.24" - "@uifabric/styling" "^7.22.3" - "@uifabric/utilities" "^7.38.0" + "@uifabric/styling" "^7.25.0" + "@uifabric/utilities" "^7.38.1" prop-types "^15.7.2" tslib "^1.10.0" @@ -17699,13 +17749,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -18465,9 +18508,9 @@ postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0. source-map "^0.6.1" postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.4, postcss@^8.4.7: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + version "8.4.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.17.tgz#f87863ec7cd353f81f7ab2dec5d67d861bbb1be5" + integrity sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -18574,10 +18617,10 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" - integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== +pretty-format@^29.0.0, pretty-format@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.2.tgz#b1f6b75be7d699be1a051f5da36e8ae9e76a8e6a" + integrity sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" @@ -19182,7 +19225,7 @@ react-inspector@^4.0.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4, react-is@^16.8.6: +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.4, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -19228,34 +19271,20 @@ react-refresh@^0.11.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== -react-router-dom@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.1.2.tgz#06701b834352f44d37fbb6311f870f84c76b9c18" - integrity sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew== +react-router-dom@6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.4.1.tgz#99c9b7c4967890701c888517475aa5d54d25760e" + integrity sha512-MY7NJCrGNVJtGp8ODMOBHu20UaIkmwD2V3YsAOUQoCXFk7Ppdwf55RdcGyrSj+ycSL9Uiwrb3gTLYSnzcRoXww== dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.1.2" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" + "@remix-run/router" "1.0.1" + react-router "6.4.1" -react-router@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz#6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418" - integrity sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A== +react-router@6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.4.1.tgz#dd9cc4dfa264751d143a4b6c9d4faa60ab3ce26c" + integrity sha512-OJASKp5AykDWFewgWUim1vlLr7yfD4vO/h+bSgcP/ix8Md+LMHuAjovA74MQfsfhQJGGN1nHRhwS5qQQbbBt3A== dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.3.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" + "@remix-run/router" "1.0.1" react-scripts@5.0.1: version "5.0.1" @@ -19936,11 +19965,6 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - resolve-url-loader@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" @@ -20104,9 +20128,9 @@ rollup-plugin-terser@^7.0.0: terser "^5.0.0" rollup@^2.43.1: - version "2.79.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" - integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== optionalDependencies: fsevents "~2.3.2" @@ -20162,9 +20186,9 @@ rxjs@6.5.3: tslib "^1.9.0" rxjs@^7.1.0, rxjs@^7.5.5: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + version "7.5.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" + integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== dependencies: tslib "^2.1.0" @@ -20188,6 +20212,15 @@ safe-json-stringify@~1: resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -20367,9 +20400,9 @@ semver@7.3.4: lru-cache "^6.0.0" semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -20747,9 +20780,9 @@ socks-proxy-agent@^7.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" - integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: ip "^2.0.0" smart-buffer "^4.2.0" @@ -21692,9 +21725,9 @@ terser@^4.1.2, terser@^4.6.12, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.15.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" - integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== + version "5.15.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" + integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -21796,16 +21829,6 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-invariant@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== - -tiny-warning@^1.0.0, tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - tinycolor2@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" @@ -22017,7 +22040,7 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -22168,20 +22191,25 @@ typeorm@0.2.25: yargonaut "^1.1.2" yargs "^13.2.1" -typescript@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" - integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== +typescript@4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== -typescript@4.8.3, "typescript@^3 || ^4": +typescript@4.8.3: version "4.8.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== +"typescript@^3 || ^4": + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + uglify-js@^3.1.4: - version "3.17.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.1.tgz#1258a2a488147a8266b3034499ce6959978ba7f4" - integrity sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q== + version "3.17.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.3.tgz#f0feedf019c4510f164099e8d7e72ff2d7304377" + integrity sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg== uid-number@0.0.6: version "0.0.6" @@ -22415,9 +22443,9 @@ upath@^2.0.1: integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -22673,11 +22701,6 @@ validate-npm-package-name@^4.0.0: dependencies: builtins "^5.0.0" -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -23427,9 +23450,9 @@ ws@^7.4.6: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.4.2: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + version "8.9.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" + integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== xdg-basedir@^3.0.0: version "3.0.0" @@ -23583,11 +23606,11 @@ yargs@^16.0.0, yargs@^16.2.0: yargs-parser "^20.2.2" yargs@^17.0.1, yargs@^17.4.0: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + version "17.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" + integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" From a180eb01cb779bca4a622e8cd945d46bcb71b3ef Mon Sep 17 00:00:00 2001 From: yanguoyu <841185308@qq.com> Date: Tue, 11 Oct 2022 08:39:32 +0800 Subject: [PATCH 2/4] fix: Fix testcase --- .../services/tx/transaction-generator.test.ts | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/packages/neuron-wallet/tests/services/tx/transaction-generator.test.ts b/packages/neuron-wallet/tests/services/tx/transaction-generator.test.ts index 0527ce5def..3b7ed3f37a 100644 --- a/packages/neuron-wallet/tests/services/tx/transaction-generator.test.ts +++ b/packages/neuron-wallet/tests/services/tx/transaction-generator.test.ts @@ -249,7 +249,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -279,7 +279,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -308,7 +308,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -337,7 +337,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -494,7 +494,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -517,7 +517,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -540,7 +540,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -563,7 +563,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -607,7 +607,7 @@ describe('TransactionGenerator', () => { const tx: Transaction = await TransactionGenerator.generateSendingAllTx(walletId1, targetOutputs, fee) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -620,7 +620,7 @@ describe('TransactionGenerator', () => { expect(o.capacity).toEqual(tx.outputs![index].capacity) } }) - expect(outputCapacities + BigInt(tx.fee)).toEqual(totalCapacities) + expect(outputCapacities + BigInt(tx.fee!)).toEqual(totalCapacities) }) it('with feeRate 1000', async () => { @@ -628,7 +628,7 @@ describe('TransactionGenerator', () => { const tx: Transaction = await TransactionGenerator.generateSendingAllTx(walletId1, targetOutputs, '0', feeRate) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -647,7 +647,7 @@ describe('TransactionGenerator', () => { expect(o.capacity).toEqual(tx.outputs![index].capacity) } }) - expect(outputCapacities + BigInt(tx.fee)).toEqual(totalCapacities) + expect(outputCapacities + BigInt(tx.fee!)).toEqual(totalCapacities) }) it('full address with feeRate 1000, 43 capacity', async () => { @@ -678,7 +678,7 @@ describe('TransactionGenerator', () => { const expectedFee: bigint = TransactionFee.fee(expectedSize, BigInt(feeRate)) expect(tx.fee).toEqual(expectedFee.toString()) expect(tx.outputs[0].capacity).toEqual(toShannon('43')) - expect(outputCapacities + BigInt(tx.fee)).toEqual(totalCapacities) + expect(outputCapacities + BigInt(tx.fee!)).toEqual(totalCapacities) }) it('full address with feeRate 1000, 42 capacity', async () => { @@ -757,7 +757,7 @@ describe('TransactionGenerator', () => { ) const inputCapacities = tx - .inputs!.map(input => BigInt(input.capacity)) + .inputs!.map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx .outputs!.map(output => BigInt(output.capacity)) @@ -774,7 +774,7 @@ describe('TransactionGenerator', () => { } }) const totalCapacities: bigint = BigInt(toShannon('3000')) - expect(outputCapacities + BigInt(tx.fee)).toEqual(totalCapacities) + expect(outputCapacities + BigInt(tx.fee!)).toEqual(totalCapacities) }) }) @@ -1054,7 +1054,7 @@ describe('TransactionGenerator', () => { expect(tx.outputs[0].lock.codeHash).toEqual(SystemScriptInfo.SECP_CODE_HASH) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1171,7 +1171,7 @@ describe('TransactionGenerator', () => { expect(tx.outputs.length).toEqual(2) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1221,7 +1221,7 @@ describe('TransactionGenerator', () => { expect(tx.outputs.length).toEqual(2) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1278,7 +1278,7 @@ describe('TransactionGenerator', () => { expect(tx.outputs.length).toEqual(2) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1358,7 +1358,7 @@ describe('TransactionGenerator', () => { expect(tx.fee).toEqual(expectedTxFee) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1408,7 +1408,7 @@ describe('TransactionGenerator', () => { expect(tx.fee).toEqual(expectedTxFee) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1537,7 +1537,7 @@ describe('TransactionGenerator', () => { BigInt(targetOutput.capacity) + BigInt(toShannon('70')) + (BigInt(toShannon('70')) - BigInt(changeOutput!.capacity)) - - BigInt(tx.fee) + BigInt(tx.fee!) ).toString() ) }) @@ -1633,13 +1633,13 @@ describe('TransactionGenerator', () => { expect(tx.fee).toEqual(expectedTxFee) const expectedOutputCapacities: bigint[] = [ - BigInt(toShannon('150')) - BigInt(tx.fee), + BigInt(toShannon('150')) - BigInt(tx.fee!), BigInt(toShannon('142')) ] expect(tx.outputs.map(o => BigInt(o.capacity))).toEqual(expectedOutputCapacities) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1791,12 +1791,12 @@ describe('TransactionGenerator', () => { const expectedOutputCapacities: bigint[] = [ BigInt(toShannon('142')), BigInt(toShannon('142')), - BigInt(toShannon('1000')) - BigInt(tx.fee) + BigInt(toShannon('1000')) - BigInt(tx.fee!) ] expect(tx.outputs.map(o => BigInt(o.capacity))).toEqual(expectedOutputCapacities) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1867,7 +1867,7 @@ describe('TransactionGenerator', () => { expect(tx.fee).toEqual(expectedTxFee) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -1876,7 +1876,7 @@ describe('TransactionGenerator', () => { expect(inputCapacities - outputCapacities).toEqual(BigInt(expectedTxFee)) const expectedOutputCapacities: bigint[] = [ - BigInt(toShannon('143')) + BigInt(toShannon('142')) - BigInt(tx.fee), + BigInt(toShannon('143')) + BigInt(toShannon('142')) - BigInt(tx.fee!), BigInt(toShannon('142')) ] expect(tx.outputs.map(o => BigInt(o.capacity))).toEqual(expectedOutputCapacities) @@ -1972,13 +1972,13 @@ describe('TransactionGenerator', () => { expect(tx.fee).toEqual(expectedTxFee) const expectedOutputCapacities: bigint[] = [ - BigInt(toShannon('1000')) - BigInt(tx.fee), + BigInt(toShannon('1000')) - BigInt(tx.fee!), BigInt(toShannon('142')) ] expect(tx.outputs.map(o => BigInt(o.capacity))).toEqual(expectedOutputCapacities) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -2059,12 +2059,12 @@ describe('TransactionGenerator', () => { const expectedOutputCapacities: bigint[] = [ BigInt(toShannon('142')), BigInt(toShannon('142')), - BigInt(toShannon('1008')) - BigInt(toShannon('142')) - BigInt(tx.fee), + BigInt(toShannon('1008')) - BigInt(toShannon('142')) - BigInt(tx.fee!), ] expect(tx.outputs.map(o => BigInt(o.capacity))).toEqual(expectedOutputCapacities) const inputCapacities = tx.inputs - .map(input => BigInt(input.capacity)) + .map(input => BigInt(input.capacity!)) .reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs .map(output => BigInt(output.capacity)) @@ -2095,7 +2095,7 @@ describe('TransactionGenerator', () => { ) // check fee - const inputCapacities = tx.inputs.map(i => BigInt(i.capacity)).reduce((result, c) => result + c, BigInt(0)) + const inputCapacities = tx.inputs.map(i => BigInt(i.capacity!)).reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs.map(o => BigInt(o.capacity)).reduce((result, c) => result + c, BigInt(0)) expect(tx.fee).toEqual((inputCapacities - outputCapacities).toString()) @@ -2130,7 +2130,7 @@ describe('TransactionGenerator', () => { ) // check fee - const inputCapacities = tx.inputs.map(i => BigInt(i.capacity)).reduce((result, c) => result + c, BigInt(0)) + const inputCapacities = tx.inputs.map(i => BigInt(i.capacity!)).reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs.map(o => BigInt(o.capacity)).reduce((result, c) => result + c, BigInt(0)) expect(tx.fee).toEqual((inputCapacities - outputCapacities).toString()) @@ -2406,7 +2406,7 @@ describe('TransactionGenerator', () => { const senderDefaultLockOutput = tx.outputs.find( output => output.lockHash === senderDefaultLockInputEntity.lockHash )! - const capacityAfterFees = BigInt(chequeOutputEntity.capacity) - BigInt(tx.fee) + const capacityAfterFees = BigInt(chequeOutputEntity.capacity) - BigInt(tx.fee!) expect(senderDefaultLockOutput.capacity).toEqual(capacityAfterFees.toString()) }) it('use 6 relative epoch in cheque input since', () => { @@ -2536,7 +2536,7 @@ describe('TransactionGenerator', () => { const res = (await TransactionGenerator.generateSudtMigrateAcpTx(sudtCell, bobLockHash)) as Transaction expect(res.outputs).toHaveLength(3) expect(res.outputs[1].data).toEqual(BufferUtils.writeBigUInt128LE(BigInt(200))) - expect(res.outputs[2].capacity).toEqual((BigInt(secpCell.capacity) - BigInt(res.fee)).toString()) + expect(res.outputs[2].capacity).toEqual((BigInt(secpCell.capacity) - BigInt(res.fee!)).toString()) expect(res.inputs).toHaveLength(3) expect(res.inputs[2].lockHash).toBe(bobAnyoneCanPayLockScript.computeHash()) }) @@ -2571,7 +2571,7 @@ describe('TransactionGenerator', () => { const res = (await TransactionGenerator.generateSudtMigrateAcpTx(sudtCell)) as Transaction expect(res.outputs).toHaveLength(1) expect(res.outputs[0].data).toEqual(sudtCell.data) - expect(res.outputs[0].capacity).toEqual((BigInt(sudtCell.capacity) - BigInt(res.fee)).toString()) + expect(res.outputs[0].capacity).toEqual((BigInt(sudtCell.capacity) - BigInt(res.fee!)).toString()) }) it('account capacity is not enough', async () => { @@ -2615,7 +2615,7 @@ describe('TransactionGenerator', () => { ) // check fee - const inputCapacities = tx.inputs.map(i => BigInt(i.capacity)).reduce((result, c) => result + c, BigInt(0)) + const inputCapacities = tx.inputs.map(i => BigInt(i.capacity!)).reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs.map(o => BigInt(o.capacity)).reduce((result, c) => result + c, BigInt(0)) expect(tx.fee).toEqual((inputCapacities - outputCapacities).toString()) @@ -2629,7 +2629,7 @@ describe('TransactionGenerator', () => { expect(tx.outputs.length).toEqual(1) const output = tx.outputs[0] - expect(output.capacity).toEqual((BigInt(100 * 10 ** 8) - BigInt(tx.fee)).toString()) + expect(output.capacity).toEqual((BigInt(100 * 10 ** 8) - BigInt(tx.fee!)).toString()) expect(!!output.type).toBe(false) expect(assetAccountInfo.isAnyoneCanPayScript(output.lock)).toBe(true) expect(output.data).toEqual('0x') @@ -2649,7 +2649,7 @@ describe('TransactionGenerator', () => { ) // check fee - const inputCapacities = tx.inputs.map(i => BigInt(i.capacity)).reduce((result, c) => result + c, BigInt(0)) + const inputCapacities = tx.inputs.map(i => BigInt(i.capacity!)).reduce((result, c) => result + c, BigInt(0)) const outputCapacities = tx.outputs.map(o => BigInt(o.capacity)).reduce((result, c) => result + c, BigInt(0)) expect(tx.fee).toEqual((inputCapacities - outputCapacities).toString()) @@ -2657,7 +2657,7 @@ describe('TransactionGenerator', () => { expect(tx.outputs.length).toEqual(1) const output = tx.outputs[0] - expect(output.capacity).toEqual((BigInt(143 * 10 ** 8) - BigInt(tx.fee)).toString()) + expect(output.capacity).toEqual((BigInt(143 * 10 ** 8) - BigInt(tx.fee!)).toString()) expect(assetAccountInfo.isSudtScript(output.type!)).toBe(true) expect(assetAccountInfo.isAnyoneCanPayScript(output.lock)).toBe(true) expect(output.data).toEqual('0x' + '0'.repeat(32)) @@ -2720,7 +2720,7 @@ describe('TransactionGenerator', () => { const normalInputCellCapacity = tx.inputs .filter(input => input.lockHash === defaultLock.computeHash()) .reduce((sum, input) => { - return (sum += BigInt(input.capacity)) + return (sum += BigInt(input.capacity!)) }, BigInt(0)) const normalOutputCellCapacity = tx.outputs .filter(output => output.lockHash === defaultLock.computeHash()) @@ -2739,7 +2739,7 @@ describe('TransactionGenerator', () => { expect(totalLegacyACPCellsCount).toEqual(4) expect(totalMigratedACPCellsCount).toEqual(4) expect(normalInputCellCapacity.toString()).toEqual(toShannon('161')) - expect(normalOutputCellCapacity.toString()).toEqual((normalInputCellCapacity - BigInt(tx.fee)).toString()) + expect(normalOutputCellCapacity.toString()).toEqual((normalInputCellCapacity - BigInt(tx.fee!)).toString()) expect(acpCellCapacity.toString()).toEqual(toShannon('2400')) expect(totalMigratedSUDTCellCount).toEqual(2) expect(acpCellSudtAmount).toEqual(BigInt(200)) From f34652508c7367894a980e2cebe6e4f7d297850a Mon Sep 17 00:00:00 2001 From: yanguoyu <841185308@qq.com> Date: Tue, 11 Oct 2022 12:43:01 +0800 Subject: [PATCH 3/4] fix: Fix type --- .../src/components/HardwareSign/index.tsx | 4 ++-- .../components/ImportHardware/select-model.tsx | 4 +--- .../src/components/ImportKeystore/index.tsx | 2 +- .../src/components/NetworkEditor/hooks.ts | 4 ++-- .../src/components/NetworkEditor/index.tsx | 2 +- .../src/components/WalletEditor/hooks.ts | 4 ++-- .../src/components/WalletEditor/index.tsx | 2 +- .../src/components/WalletWizard/index.tsx | 10 +++------- packages/neuron-ui/src/containers/Main/hooks.ts | 7 +++---- .../stateProvider/actionCreators/settings.ts | 6 +++++- packages/neuron-ui/src/utils/hooks/index.ts | 15 +++++---------- 11 files changed, 26 insertions(+), 34 deletions(-) diff --git a/packages/neuron-ui/src/components/HardwareSign/index.tsx b/packages/neuron-ui/src/components/HardwareSign/index.tsx index 260cffc22e..3abd9d59f3 100644 --- a/packages/neuron-ui/src/components/HardwareSign/index.tsx +++ b/packages/neuron-ui/src/components/HardwareSign/index.tsx @@ -12,7 +12,7 @@ import { } from 'states' import { ControllerResponse } from 'services/remote/remoteApiWrapper' import Spinner from 'widgets/Spinner' -import { useNavigate } from 'react-router-dom' +import { NavigateFunction } from 'react-router-dom' import { ReactComponent as HardWalletIcon } from 'widgets/Icons/HardWallet.svg' import { connectDevice, @@ -43,7 +43,7 @@ export interface HardwareSignProps { offlineSignType?: OfflineSignType onDismiss: () => void signMessage?: (password: string) => Promise - navigate?: ReturnType + navigate?: NavigateFunction } const HardwareSign = ({ diff --git a/packages/neuron-ui/src/components/ImportHardware/select-model.tsx b/packages/neuron-ui/src/components/ImportHardware/select-model.tsx index 00ebeac0de..522919acff 100644 --- a/packages/neuron-ui/src/components/ImportHardware/select-model.tsx +++ b/packages/neuron-ui/src/components/ImportHardware/select-model.tsx @@ -1,7 +1,6 @@ import React, { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from 'widgets/Button' -import { useNavigate } from 'react-router-dom' import { CreateFirstWalletNav } from 'components/WalletWizard' import { useGoBack } from 'utils' import { AttentionOutline } from 'widgets/Icons/icon' @@ -44,8 +43,7 @@ const supportedHardwareModels = [ const SelectModel = ({ dispatch }: { dispatch: React.Dispatch }) => { const [t] = useTranslation() const [model, setModel] = useState() - const navigate = useNavigate() - const onBack = useGoBack(navigate) + const onBack = useGoBack() const onNext = useCallback(() => { dispatch({ model, diff --git a/packages/neuron-ui/src/components/ImportKeystore/index.tsx b/packages/neuron-ui/src/components/ImportKeystore/index.tsx index 58c7f44337..b74c12a77d 100644 --- a/packages/neuron-ui/src/components/ImportKeystore/index.tsx +++ b/packages/neuron-ui/src/components/ImportKeystore/index.tsx @@ -47,7 +47,7 @@ const ImportKeystore = () => { const navigate = useNavigate() const [fields, setFields] = useState(defaultFields) const [openingFile, setOpeningFile] = useState(false) - const goBack = useGoBack(navigate) + const goBack = useGoBack() const disabled = !!( !fields.name || diff --git a/packages/neuron-ui/src/components/NetworkEditor/hooks.ts b/packages/neuron-ui/src/components/NetworkEditor/hooks.ts index 7d068b9be8..c932da8068 100644 --- a/packages/neuron-ui/src/components/NetworkEditor/hooks.ts +++ b/packages/neuron-ui/src/components/NetworkEditor/hooks.ts @@ -1,5 +1,5 @@ import { useCallback } from 'react' -import { useNavigate } from 'react-router-dom' +import { NavigateFunction } from 'react-router-dom' import { StateDispatch, createNetwork, updateNetwork, addNotification } from 'states' import { ErrorCode, CONSTANTS } from 'utils' @@ -20,7 +20,7 @@ export const useOnSubmit = ({ name: string remote: string networks: Readonly - navigate: ReturnType + navigate: NavigateFunction dispatch: StateDispatch disabled: boolean setIsUpdating: React.Dispatch diff --git a/packages/neuron-ui/src/components/NetworkEditor/index.tsx b/packages/neuron-ui/src/components/NetworkEditor/index.tsx index 5c4584c6c0..a7162617ba 100644 --- a/packages/neuron-ui/src/components/NetworkEditor/index.tsx +++ b/packages/neuron-ui/src/components/NetworkEditor/index.tsx @@ -81,7 +81,7 @@ const NetworkEditor = () => { }, [setEditor, t, usedNetworkNames] ) - const goBack = useGoBack(navigate) + const goBack = useGoBack() const onSubmit = useOnSubmit({ id: id!, diff --git a/packages/neuron-ui/src/components/WalletEditor/hooks.ts b/packages/neuron-ui/src/components/WalletEditor/hooks.ts index 1eab1832fd..35a6f31f44 100644 --- a/packages/neuron-ui/src/components/WalletEditor/hooks.ts +++ b/packages/neuron-ui/src/components/WalletEditor/hooks.ts @@ -1,5 +1,5 @@ import { useState, useMemo, useCallback } from 'react' -import { useNavigate } from 'react-router-dom' +import { NavigateFunction } from 'react-router-dom' import { StateDispatch, updateWalletProperty } from 'states' import { ErrorCode, ResponseCode, RoutePath, CONSTANTS } from 'utils' import i18n from 'utils/i18n' @@ -43,7 +43,7 @@ export const useInputs = ({ name }: ReturnType) => { export const useOnSubmit = ( name: string = '', id: string = '', - navigate: ReturnType, + navigate: NavigateFunction, dispatch: StateDispatch, disabled: boolean ) => { diff --git a/packages/neuron-ui/src/components/WalletEditor/index.tsx b/packages/neuron-ui/src/components/WalletEditor/index.tsx index 357099dc6b..1c47ca8d51 100644 --- a/packages/neuron-ui/src/components/WalletEditor/index.tsx +++ b/packages/neuron-ui/src/components/WalletEditor/index.tsx @@ -46,7 +46,7 @@ const WalletEditor = () => { const hint = useHint(editor.name.value, usedNames, t) const disabled = hint !== null || editor.name.value === wallet.name - const goBack = useGoBack(navigate) + const goBack = useGoBack() const onSubmit = useOnSubmit(editor.name.value, wallet.id, navigate, dispatch, disabled) if (!wallet.id) { diff --git a/packages/neuron-ui/src/components/WalletWizard/index.tsx b/packages/neuron-ui/src/components/WalletWizard/index.tsx index 4283e093f3..5b2e12179f 100644 --- a/packages/neuron-ui/src/components/WalletWizard/index.tsx +++ b/packages/neuron-ui/src/components/WalletWizard/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useEffect, useMemo } from 'react' -import { Link, useNavigate, useLocation, useParams } from 'react-router-dom' +import { Link, useNavigate, useLocation, useParams, NavigateFunction } from 'react-router-dom' import { useTranslation } from 'react-i18next' import Button from 'widgets/Button' import withWizard, { WizardElementProps, WithWizardState } from 'components/withWizard' @@ -27,9 +27,7 @@ import styles from './walletWizard.module.scss' const { MAX_WALLET_NAME_LENGTH, MAX_PASSWORD_LENGTH } = CONSTANTS -const createWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( - navigate: ReturnType -) => { +const createWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => (navigate: NavigateFunction) => { return createWallet(params).then(res => { if (isSuccessResponse(res)) { navigate(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) @@ -44,9 +42,7 @@ const createWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( }) } -const importWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => ( - navigate: ReturnType -) => { +const importWalletWithMnemonic = (params: Controller.ImportMnemonicParams) => (navigate: NavigateFunction) => { return importMnemonic(params).then(res => { if (isSuccessResponse(res)) { navigate(window.neuron.role === 'main' ? RoutePath.Overview : RoutePath.SettingsWallets) diff --git a/packages/neuron-ui/src/containers/Main/hooks.ts b/packages/neuron-ui/src/containers/Main/hooks.ts index 94994377e5..ae512f82e2 100644 --- a/packages/neuron-ui/src/containers/Main/hooks.ts +++ b/packages/neuron-ui/src/containers/Main/hooks.ts @@ -1,5 +1,5 @@ import { useEffect } from 'react' -import { useNavigate, useLocation } from 'react-router-dom' +import { useLocation, NavigateFunction } from 'react-router-dom' import { NeuronWalletActions, StateDispatch, AppActions } from 'states/stateProvider/reducer' import { updateTransactionList, @@ -86,8 +86,7 @@ export const useOnCurrentWalletChange = ({ }: { walletID: string chain: State.Chain - navigate: ReturnType - + navigate: NavigateFunction dispatch: StateDispatch }) => { useEffect(() => { @@ -106,7 +105,7 @@ export const useSubscription = ({ walletID: string chain: State.Chain isAllowedToFetchList: boolean - navigate: ReturnType + navigate: NavigateFunction location: ReturnType dispatch: StateDispatch }) => { diff --git a/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts b/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts index db804ee777..1d52a7370d 100644 --- a/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts +++ b/packages/neuron-ui/src/states/stateProvider/actionCreators/settings.ts @@ -1,10 +1,14 @@ import { createNetwork as createRemoteNetwork, updateNetwork as updateRemoteNetwork } from 'services/remote' import { RoutePath, failureResToNotification } from 'utils' +import { NavigateFunction } from 'react-router-dom' import { addNotification, addPopup } from './app' import { AppActions, StateDispatch } from '../reducer' -export const createNetwork = (params: Controller.CreateNetworkParams) => (dispatch: StateDispatch, navigate: any) => { +export const createNetwork = (params: Controller.CreateNetworkParams) => ( + dispatch: StateDispatch, + navigate: NavigateFunction +) => { dispatch({ type: AppActions.UpdateLoadings, payload: { diff --git a/packages/neuron-ui/src/utils/hooks/index.ts b/packages/neuron-ui/src/utils/hooks/index.ts index f752bbc4af..2bc105ab5e 100644 --- a/packages/neuron-ui/src/utils/hooks/index.ts +++ b/packages/neuron-ui/src/utils/hooks/index.ts @@ -1,5 +1,5 @@ import { useState, useMemo, useCallback, useEffect, useRef } from 'react' -import { useNavigate } from 'react-router-dom' +import { NavigateFunction, useNavigate } from 'react-router-dom' import { TFunction, i18n as i18nType } from 'i18next' import { openContextMenu, requestPassword, deleteNetwork } from 'services/remote' import { syncRebuildNotification } from 'services/localCache' @@ -28,7 +28,8 @@ import { ErrorWithI18n, isErrorWithI18n } from 'exceptions' export * from './createSUDTAccount' export * from './tokenInfoList' -export const useGoBack = (navigate: ReturnType) => { +export const useGoBack = () => { + const navigate = useNavigate() return useCallback(() => { navigate(-1) }, [navigate]) @@ -323,13 +324,7 @@ export const useOnLocaleChange = (i18n: i18nType) => { }, [i18n]) } -export const useOnHandleWallet = ({ - navigate, - dispatch, -}: { - navigate: ReturnType - dispatch: StateDispatch -}) => +export const useOnHandleWallet = ({ navigate, dispatch }: { navigate: NavigateFunction; dispatch: StateDispatch }) => useCallback( (e: React.SyntheticEvent) => { const { @@ -404,7 +399,7 @@ export const useToggleChoiceGroupBorder = (containerSelector: string, borderClas } }, [containerSelector, borderClassName]) -export const useOnHandleNetwork = ({ navigate }: { navigate: ReturnType }) => +export const useOnHandleNetwork = ({ navigate }: { navigate: NavigateFunction }) => useCallback( (e: React.SyntheticEvent) => { const { From b7e6de21097e6e9dd29323a0f77350f34f7e4679 Mon Sep 17 00:00:00 2001 From: yanguoyu <841185308@qq.com> Date: Tue, 11 Oct 2022 15:01:40 +0800 Subject: [PATCH 4/4] fix: Update node_module cache --- .github/workflows/unit_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 073316eee2..bc7fcf2f0f 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -40,7 +40,7 @@ jobs: path: | node_modules */*/node_modules - key: 2022-09-09-${{ runner.os }}-${{ hashFiles('**/yarn.lock')}} + key: 2022-10-11-${{ runner.os }}-${{ hashFiles('**/yarn.lock')}} - name: Install libudev if: matrix.os == 'ubuntu-20.04'