Skip to content

Commit 309c0d2

Browse files
committed
refactor(renterd): split out uploads manager context
1 parent 5ec9f3b commit 309c0d2

File tree

11 files changed

+118
-97
lines changed

11 files changed

+118
-97
lines changed

apps/renterd/components/Files/FilesStatsMenuShared/FilesStatsMenuCount.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import { useObjectStats } from '@siafoundation/renterd-react'
33
import { useFilesManager } from '../../../contexts/filesManager'
44
import { useFilesDirectory } from '../../../contexts/filesDirectory'
55
import { useFilesFlat } from '../../../contexts/filesFlat'
6+
import { useUploadsManager } from '../../../contexts/uploadsManager'
67

78
export function FilesStatsMenuCount() {
8-
const { isViewingABucket, uploadsList, activeExplorerMode } =
9-
useFilesManager()
9+
const { isViewingABucket, activeExplorerMode } = useFilesManager()
10+
const { uploadsList } = useUploadsManager()
1011
const { datasetPageTotal: directoryPageTotal } = useFilesDirectory()
1112
const { datasetPageTotal: flatPageTotal } = useFilesFlat()
1213
const datasetPageTotal =

apps/renterd/components/FilesDirectory/FilesExplorer.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ import { EmptyState } from './EmptyState'
44
import { useCanUpload } from '../Files/useCanUpload'
55
import { useFilesManager } from '../../contexts/filesManager'
66
import { pluralize } from '@siafoundation/units'
7+
import { useUploadsManager } from '../../contexts/uploadsManager'
78

89
export function FilesExplorer() {
910
const {
10-
uploadFiles,
1111
sortField,
1212
sortDirection,
1313
sortableColumns,
1414
toggleSort,
1515
isViewingBuckets,
1616
visibleColumns,
1717
} = useFilesManager()
18+
const { uploadFiles } = useUploadsManager()
1819
const {
1920
datasetPage,
2021
datasetPageTotal,

apps/renterd/config/providers.tsx

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { FilesManagerProvider } from '../contexts/filesManager'
1111
import { FilesDirectoryProvider } from '../contexts/filesDirectory'
1212
import { UploadsProvider } from '../contexts/uploads'
1313
import { AlertsProvider } from '../contexts/alerts'
14+
import { UploadsManagerProvider } from '../contexts/uploadsManager'
1415

1516
type Props = {
1617
children: React.ReactNode
@@ -25,20 +26,22 @@ export function Providers({ children }: Props) {
2526
<ContractsProvider>
2627
<HostsProvider>
2728
<FilesManagerProvider>
28-
<UploadsProvider>
29-
<FilesDirectoryProvider>
30-
<FilesFlatProvider>
31-
<KeysProvider>
32-
<AlertsProvider>
33-
{/* this is here so that dialogs can use all the other providers,
29+
<UploadsManagerProvider>
30+
<UploadsProvider>
31+
<FilesDirectoryProvider>
32+
<FilesFlatProvider>
33+
<KeysProvider>
34+
<AlertsProvider>
35+
{/* this is here so that dialogs can use all the other providers,
3436
and the other providers can trigger dialogs */}
35-
<Dialogs />
36-
{children}
37-
</AlertsProvider>
38-
</KeysProvider>
39-
</FilesFlatProvider>
40-
</FilesDirectoryProvider>
41-
</UploadsProvider>
37+
<Dialogs />
38+
{children}
39+
</AlertsProvider>
40+
</KeysProvider>
41+
</FilesFlatProvider>
42+
</FilesDirectoryProvider>
43+
</UploadsProvider>
44+
</UploadsManagerProvider>
4245
</FilesManagerProvider>
4346
</HostsProvider>
4447
</ContractsProvider>

apps/renterd/contexts/filesManager/dataset.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
import { useFilesManager } from '.'
1414
import { useEffect } from 'react'
1515
import { Maybe } from '@siafoundation/types'
16+
import { useUploadsManager } from '../uploadsManager'
1617

1718
type Props = {
1819
id: string
@@ -27,13 +28,13 @@ export function useDataset({ id, objects }: Props) {
2728
activeBucket,
2829
activeBucketName,
2930
fileNamePrefixFilter,
30-
uploadsList,
3131
sortDirection,
3232
sortField,
3333
activeDirectoryPath,
3434
buckets,
3535
setActiveDirectory,
3636
} = useFilesManager()
37+
const { uploadsList } = useUploadsManager()
3738
const { dataset: allContracts } = useContracts()
3839
const response = useSWR<Maybe<ObjectData[]>>(
3940
objects.isValidating || buckets.isValidating

apps/renterd/contexts/filesManager/index.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import {
1818
getKeyFromPath,
1919
pathSegmentsToPath,
2020
} from '../../lib/paths'
21-
import { useUploads } from './uploads'
2221
import { useDownloads } from './downloads'
2322
import { useBuckets } from '@siafoundation/renterd-react'
2423
import { routes } from '../../config/routes'
@@ -94,9 +93,6 @@ function useFilesManagerMain() {
9493
[router, activeDirectory]
9594
)
9695

97-
const { uploadFiles, uploadsMap, uploadsList } = useUploads({
98-
activeDirectoryPath,
99-
})
10096
const { downloadFiles, downloadsList, getFileUrl, downloadCancel } =
10197
useDownloads()
10298

@@ -223,9 +219,6 @@ function useFilesManagerMain() {
223219
setActiveDirectoryAndFileNamePrefix,
224220
activeDirectoryPath,
225221
navigateToModeSpecificFiltering,
226-
uploadFiles,
227-
uploadsMap,
228-
uploadsList,
229222
downloadFiles,
230223
downloadsList,
231224
downloadCancel,

apps/renterd/contexts/filesManager/types.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { Bucket } from '@siafoundation/renterd-types'
22
import { FullPath } from '../../lib/paths'
33
import { MultiSelect, TableColumn } from '@siafoundation/design-system'
4-
import { MultipartUpload } from '../../lib/multipartUpload'
54
import { MouseEvent } from 'react'
65

76
export type ObjectType = 'bucket' | 'directory' | 'file'
@@ -81,17 +80,3 @@ export const sortOptions: { id: SortField; label: string; category: string }[] =
8180
]
8281

8382
export type ExplorerMode = 'directory' | 'flat'
84-
85-
export type UploadStatus = 'queued' | 'uploading' | 'processing'
86-
87-
export type ObjectUploadData = ObjectData & {
88-
multipartId?: string
89-
multipartUpload?: MultipartUpload
90-
uploadStatus: UploadStatus
91-
uploadAbort?: () => Promise<void>
92-
uploadFile?: File
93-
remote?: boolean
94-
createdAt: string
95-
}
96-
97-
export type UploadsMap = Record<string, ObjectUploadData>

apps/renterd/contexts/uploads/useLocalUploads.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import {
66
import { useMemo } from 'react'
77
import { columnsDefaultVisible, defaultSortField, sortOptions } from './types'
88
import { columns } from './columns'
9-
import { useFilesManager } from '../filesManager'
10-
import { ObjectUploadData } from '../filesManager/types'
9+
import { ObjectUploadData } from '../uploadsManager/types'
1110
import { Maybe } from '@siafoundation/types'
11+
import { useUploadsManager } from '../uploadsManager'
1212

1313
const defaultLimit = 500
1414

1515
export function useLocalUploads() {
16-
const { uploadsList } = useFilesManager()
16+
const { uploadsList } = useUploadsManager()
1717
const { limit, offset } = usePaginationOffset(defaultLimit)
1818

1919
const datasetPage = useMemo<Maybe<ObjectUploadData[]>>(() => {

apps/renterd/contexts/uploads/useRemoteUploads.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,17 @@ import { columnsDefaultVisible, defaultSortField, sortOptions } from './types'
1212
import { columns } from './columns'
1313
import { join, getFilename } from '../../lib/paths'
1414
import { useFilesManager } from '../filesManager'
15-
import { ObjectUploadData } from '../filesManager/types'
15+
import { ObjectUploadData } from '../uploadsManager/types'
1616
import { MultipartUploadListUploadsPayload } from '@siafoundation/renterd-types'
1717
import { maybeFromNullishArrayResponse } from '@siafoundation/react-core'
1818
import { Maybe, Nullable } from '@siafoundation/types'
19+
import { useUploadsManager } from '../uploadsManager'
1920

2021
const defaultLimit = 500
2122

2223
export function useRemoteUploads() {
23-
const { uploadsMap, activeBucket } = useFilesManager()
24+
const { activeBucket } = useFilesManager()
25+
const { uploadsMap } = useUploadsManager()
2426
const { limit, marker } = usePaginationMarker(defaultLimit)
2527
const markers = useMarkersFromParam(marker)
2628

0 commit comments

Comments
 (0)