chore(deps): update react router from v5 to v6 (#280)
* chore(deps): update react router from v5 to v6 * fix: correctly choose navigate target if there is no history
This commit is contained in:
@@ -2,7 +2,7 @@ import { Utils } from '@ethersphere/bee-js'
|
||||
import { ManifestJs } from '@ethersphere/manifest-js'
|
||||
import { useSnackbar } from 'notistack'
|
||||
import { ReactElement, useContext, useState } from 'react'
|
||||
import { useHistory } from 'react-router-dom'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import ExpandableListItemInput from '../../components/ExpandableListItemInput'
|
||||
import { History } from '../../components/History'
|
||||
import { Context, defaultUploadOrigin } from '../../providers/File'
|
||||
@@ -20,7 +20,7 @@ export function Download(): ReactElement {
|
||||
const { setUploadOrigin } = useContext(Context)
|
||||
|
||||
const { enqueueSnackbar } = useSnackbar()
|
||||
const history = useHistory()
|
||||
const navigate = useNavigate()
|
||||
|
||||
const validateChange = (value: string) => {
|
||||
if (Utils.isHexString(value, 64) || Utils.isHexString(value, 128) || !value.trim().length) {
|
||||
@@ -54,7 +54,7 @@ export function Download(): ReactElement {
|
||||
const indexDocument = await manifestJs.getIndexDocumentPath(identifier)
|
||||
putHistory(HISTORY_KEYS.DOWNLOAD_HISTORY, identifier, determineHistoryName(identifier, indexDocument))
|
||||
setUploadOrigin(defaultUploadOrigin)
|
||||
history.push(ROUTES.HASH.replace(':hash', identifier))
|
||||
navigate(ROUTES.HASH.replace(':hash', identifier))
|
||||
} catch (error: unknown) {
|
||||
let message = typeof error === 'object' && error !== null && Reflect.get(error, 'message')
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { createStyles, makeStyles, Tab, Tabs, Theme } from '@material-ui/core'
|
||||
import { ReactElement } from 'react'
|
||||
import { useHistory } from 'react-router-dom'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import { ROUTES } from '../../routes'
|
||||
|
||||
interface Props {
|
||||
@@ -24,10 +24,10 @@ const useStyles = makeStyles((theme: Theme) =>
|
||||
|
||||
export function FileNavigation({ active }: Props): ReactElement {
|
||||
const classes = useStyles()
|
||||
const history = useHistory()
|
||||
const navigate = useNavigate()
|
||||
|
||||
function onChange(event: React.ChangeEvent<Record<string, never>>, newValue: number) {
|
||||
history.push(newValue === 1 ? ROUTES.DOWNLOAD : ROUTES.UPLOAD)
|
||||
navigate(newValue === 1 ? ROUTES.DOWNLOAD : ROUTES.UPLOAD)
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
+11
-13
@@ -4,7 +4,7 @@ import { saveAs } from 'file-saver'
|
||||
import JSZip from 'jszip'
|
||||
import { useSnackbar } from 'notistack'
|
||||
import { ReactElement, useContext, useEffect, useState } from 'react'
|
||||
import { RouteComponentProps, useHistory } from 'react-router-dom'
|
||||
import { useParams, useNavigate } from 'react-router-dom'
|
||||
import { HistoryHeader } from '../../components/HistoryHeader'
|
||||
import { Loading } from '../../components/Loading'
|
||||
import TroubleshootConnectionCard from '../../components/TroubleshootConnectionCard'
|
||||
@@ -19,17 +19,14 @@ import { AssetPreview } from './AssetPreview'
|
||||
import { AssetSummary } from './AssetSummary'
|
||||
import { DownloadActionBar } from './DownloadActionBar'
|
||||
|
||||
interface MatchParams {
|
||||
hash: string
|
||||
}
|
||||
|
||||
export function Share(props: RouteComponentProps<MatchParams>): ReactElement {
|
||||
export function Share(): ReactElement {
|
||||
const { apiUrl, beeApi } = useContext(SettingsContext)
|
||||
const { status } = useContext(BeeContext)
|
||||
|
||||
const reference = props.match.params.hash
|
||||
const { hash } = useParams()
|
||||
const reference = hash! // eslint-disable-line
|
||||
|
||||
const history = useHistory()
|
||||
const navigate = useNavigate()
|
||||
const { enqueueSnackbar } = useSnackbar()
|
||||
|
||||
const [loading, setLoading] = useState(true)
|
||||
@@ -71,16 +68,17 @@ export function Share(props: RouteComponentProps<MatchParams>): ReactElement {
|
||||
}
|
||||
|
||||
function onClose() {
|
||||
// POP means there is no history - nowhere to go back yet
|
||||
if (history.action === 'POP') {
|
||||
history.push(ROUTES.UPLOAD)
|
||||
if (navigate.length > 0) {
|
||||
// There is at least one different route in browser history that we can return to
|
||||
navigate(-1)
|
||||
} else {
|
||||
history.goBack()
|
||||
// This is the first page user opened, navigate to upload page instead of going back
|
||||
navigate(ROUTES.UPLOAD)
|
||||
}
|
||||
}
|
||||
|
||||
function onUpdateFeed() {
|
||||
history.push(ROUTES.FEEDS_UPDATE.replace(':hash', reference))
|
||||
navigate(ROUTES.FEEDS_UPDATE.replace(':hash', reference))
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Box } from '@material-ui/core'
|
||||
import { useSnackbar } from 'notistack'
|
||||
import { ReactElement, useContext, useEffect, useState } from 'react'
|
||||
import { useHistory } from 'react-router-dom'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import { DocumentationText } from '../../components/DocumentationText'
|
||||
import { HistoryHeader } from '../../components/HistoryHeader'
|
||||
import { ProgressIndicator } from '../../components/ProgressIndicator'
|
||||
@@ -36,7 +36,7 @@ export function Upload(): ReactElement {
|
||||
const { status } = useContext(BeeContext)
|
||||
|
||||
const { enqueueSnackbar } = useSnackbar()
|
||||
const history = useHistory()
|
||||
const navigate = useNavigate()
|
||||
|
||||
useEffect(() => {
|
||||
refresh()
|
||||
@@ -46,7 +46,7 @@ export function Upload(): ReactElement {
|
||||
|
||||
if (!files.length) {
|
||||
setFiles([])
|
||||
history.replace(ROUTES.UPLOAD)
|
||||
navigate(ROUTES.UPLOAD, { replace: true })
|
||||
|
||||
return <></>
|
||||
}
|
||||
@@ -80,12 +80,12 @@ export function Upload(): ReactElement {
|
||||
putHistory(HISTORY_KEYS.UPLOAD_HISTORY, hash.reference, getAssetNameFromFiles(files))
|
||||
|
||||
if (uploadOrigin.origin === 'UPLOAD') {
|
||||
history.replace(ROUTES.HASH.replace(':hash', hash.reference))
|
||||
navigate(ROUTES.HASH.replace(':hash', hash.reference), { replace: true })
|
||||
} else {
|
||||
updateFeed(beeApi, identity as Identity, hash.reference, stamp.batchID, password as string).then(() => {
|
||||
persistIdentity(identities, identity as Identity)
|
||||
setIdentities([...identities])
|
||||
history.replace(ROUTES.FEEDS_PAGE.replace(':uuid', uploadOrigin.uuid as string))
|
||||
navigate(ROUTES.FEEDS_PAGE.replace(':uuid', uploadOrigin.uuid as string), { replace: true })
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -3,7 +3,7 @@ import { DropzoneArea } from 'material-ui-dropzone'
|
||||
import { useSnackbar } from 'notistack'
|
||||
import { ReactElement, useContext, useState } from 'react'
|
||||
import { FilePlus, FolderPlus, PlusCircle } from 'react-feather'
|
||||
import { useHistory } from 'react-router-dom'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import { DocumentationText } from '../../components/DocumentationText'
|
||||
import { SwarmButton } from '../../components/SwarmButton'
|
||||
import { Context, UploadOrigin } from '../../providers/File'
|
||||
@@ -51,7 +51,7 @@ const useStyles = makeStyles((theme: Theme) =>
|
||||
export function UploadArea({ uploadOrigin, showHelp }: Props): ReactElement {
|
||||
const { setFiles, setUploadOrigin } = useContext(Context)
|
||||
const classes = useStyles()
|
||||
const history = useHistory()
|
||||
const navigate = useNavigate()
|
||||
const { enqueueSnackbar } = useSnackbar()
|
||||
const [strictWebsiteMode, setStrictWebsiteMode] = useState(false)
|
||||
const [version, setVersion] = useState(0)
|
||||
@@ -115,7 +115,7 @@ export function UploadArea({ uploadOrigin, showHelp }: Props): ReactElement {
|
||||
|
||||
if (files.length) {
|
||||
setUploadOrigin(uploadOrigin)
|
||||
history.push(ROUTES.UPLOAD_IN_PROGRESS)
|
||||
navigate(ROUTES.UPLOAD_IN_PROGRESS)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user