-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathReplaceFileFactory.tsx
More file actions
49 lines (43 loc) · 1.78 KB
/
Copy pathReplaceFileFactory.tsx
File metadata and controls
49 lines (43 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import { ReactElement } from 'react'
import { useSearchParams } from 'react-router-dom'
import { FileJSDataverseRepository } from '@/files/infrastructure/FileJSDataverseRepository'
import { DatasetJSDataverseRepository } from '@/dataset/infrastructure/repositories/DatasetJSDataverseRepository'
import { ReplaceFile, ReplaceFileReferrer } from './ReplaceFile'
import { QueryParamKey } from '../Route.enum'
import { searchParamVersionToDomainVersion } from '@/router'
const fileRepository = new FileJSDataverseRepository()
const datasetRepository = new DatasetJSDataverseRepository()
export class ReplaceFileFactory {
static create(): ReactElement {
return <ReplaceFileWithParams />
}
}
function ReplaceFileWithParams() {
const [searchParams] = useSearchParams()
if (
searchParams.get(QueryParamKey.FILE_ID) === null ||
searchParams.get(QueryParamKey.PERSISTENT_ID) === null ||
searchParams.get(QueryParamKey.DATASET_VERSION) === null
) {
// TODO - show new Not Found Page here after is done.
throw new Error('Missing required query parameters')
}
const fileId = Number(searchParams.get(QueryParamKey.FILE_ID) as string)
const datasetId = searchParams.get(QueryParamKey.PERSISTENT_ID) as string
const datasetVersionSearchParam = searchParams.get(QueryParamKey.DATASET_VERSION) as string
const datasetVersionNumber = searchParamVersionToDomainVersion(
datasetVersionSearchParam
) as string
const referrer =
(searchParams.get(QueryParamKey.REFERRER) as ReplaceFileReferrer | null) ?? undefined
return (
<ReplaceFile
fileRepository={fileRepository}
datasetRepository={datasetRepository}
fileIdFromParams={fileId}
datasetPidFromParams={datasetId}
datasetVersionFromParams={datasetVersionNumber}
referrer={referrer}
/>
)
}