@aws-amplify/ui-react-storage 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/FileUploader/FileUploader.mjs +185 -0
- package/dist/esm/components/FileUploader/hooks/useFileUploader/actions.mjs +39 -0
- package/dist/esm/components/FileUploader/hooks/useFileUploader/reducer.mjs +93 -0
- package/dist/esm/components/FileUploader/hooks/useFileUploader/types.mjs +13 -0
- package/dist/esm/components/FileUploader/hooks/useFileUploader/useFileUploader.mjs +62 -0
- package/dist/esm/components/FileUploader/hooks/useUploadFiles/useUploadFiles.mjs +79 -0
- package/dist/esm/components/FileUploader/types.mjs +11 -0
- package/dist/esm/components/FileUploader/ui/Container/Container.mjs +8 -0
- package/dist/esm/components/FileUploader/ui/DropZone/DropZone.mjs +16 -0
- package/dist/esm/components/FileUploader/ui/FileList/FileControl.mjs +23 -0
- package/dist/esm/components/FileUploader/ui/FileList/FileDetails.mjs +12 -0
- package/dist/esm/components/FileUploader/ui/FileList/FileList.mjs +44 -0
- package/dist/esm/components/FileUploader/ui/FileList/FileRemoveButton.mjs +12 -0
- package/dist/esm/components/FileUploader/ui/FileList/FileStatusMessage.mjs +28 -0
- package/dist/esm/components/FileUploader/ui/FileList/FileThumbnail.mjs +12 -0
- package/dist/esm/components/FileUploader/ui/FileListFooter/FileListFooter.mjs +13 -0
- package/dist/esm/components/FileUploader/ui/FileListHeader/FileListHeader.mjs +14 -0
- package/dist/esm/components/FileUploader/ui/FilePicker/FilePicker.mjs +9 -0
- package/dist/esm/components/FileUploader/utils/checkMaxFileSize.mjs +12 -0
- package/dist/esm/components/FileUploader/utils/displayText.mjs +39 -0
- package/dist/esm/components/FileUploader/utils/filterAllowedFiles.mjs +27 -0
- package/dist/esm/components/FileUploader/utils/getInput.mjs +39 -0
- package/dist/esm/components/FileUploader/utils/resolveFile.mjs +20 -0
- package/dist/esm/components/FileUploader/utils/uploadFile.mjs +26 -0
- package/dist/esm/components/StorageManager/StorageManager.mjs +4 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/version.mjs +1 -1
- package/dist/index.js +721 -7
- package/dist/types/components/FileUploader/FileUploader.d.ts +15 -0
- package/dist/types/components/FileUploader/hooks/index.d.ts +2 -0
- package/dist/types/components/FileUploader/hooks/useFileUploader/actions.d.ts +22 -0
- package/dist/types/components/FileUploader/hooks/useFileUploader/index.d.ts +1 -0
- package/dist/types/components/FileUploader/hooks/useFileUploader/reducer.d.ts +2 -0
- package/dist/types/components/FileUploader/hooks/useFileUploader/types.d.ts +50 -0
- package/dist/types/components/FileUploader/hooks/useFileUploader/useFileUploader.d.ts +35 -0
- package/dist/types/components/FileUploader/hooks/useUploadFiles/index.d.ts +1 -0
- package/dist/types/components/FileUploader/hooks/useUploadFiles/useUploadFiles.d.ts +12 -0
- package/dist/types/components/FileUploader/index.d.ts +3 -0
- package/dist/types/components/FileUploader/types.d.ts +129 -0
- package/dist/types/components/FileUploader/ui/Container/Container.d.ts +6 -0
- package/dist/types/components/FileUploader/ui/Container/index.d.ts +1 -0
- package/dist/types/components/FileUploader/ui/DropZone/DropZone.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/DropZone/index.d.ts +2 -0
- package/dist/types/components/FileUploader/ui/DropZone/types.d.ts +13 -0
- package/dist/types/components/FileUploader/ui/FileList/FileControl.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/FileList/FileDetails.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/FileList/FileList.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/FileList/FileRemoveButton.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/FileList/FileStatusMessage.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/FileList/FileThumbnail.d.ts +3 -0
- package/dist/types/components/FileUploader/ui/FileList/index.d.ts +2 -0
- package/dist/types/components/FileUploader/ui/FileList/types.d.ts +51 -0
- package/dist/types/components/FileUploader/ui/FileListFooter/FileListFooter.d.ts +9 -0
- package/dist/types/components/FileUploader/ui/FileListFooter/index.d.ts +1 -0
- package/dist/types/components/FileUploader/ui/FileListHeader/FileListHeader.d.ts +10 -0
- package/dist/types/components/FileUploader/ui/FileListHeader/index.d.ts +1 -0
- package/dist/types/components/FileUploader/ui/FilePicker/FilePicker.d.ts +4 -0
- package/dist/types/components/FileUploader/ui/FilePicker/index.d.ts +1 -0
- package/dist/types/components/FileUploader/ui/index.d.ts +6 -0
- package/dist/types/components/FileUploader/utils/checkMaxFileSize.d.ts +5 -0
- package/dist/types/components/FileUploader/utils/displayText.d.ts +22 -0
- package/dist/types/components/FileUploader/utils/filterAllowedFiles.d.ts +1 -0
- package/dist/types/components/FileUploader/utils/getInput.d.ts +17 -0
- package/dist/types/components/FileUploader/utils/index.d.ts +5 -0
- package/dist/types/components/FileUploader/utils/resolveFile.d.ts +9 -0
- package/dist/types/components/FileUploader/utils/uploadFile.d.ts +32 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { FileUploaderProps, FileUploaderPathProps, FileUploaderHandle } from './types';
|
|
3
|
+
import { Container, DropZone, FileList, FileListHeader, FileListFooter, FilePicker } from './ui';
|
|
4
|
+
export declare const MISSING_REQUIRED_PROPS_MESSAGE = "`FileUploader` requires a `maxFileCount` prop to be provided.";
|
|
5
|
+
export declare const ACCESS_LEVEL_WITH_PATH_CALLBACK_MESSAGE = "`FileUploader` does not allow usage of a `path` callback prop with an `accessLevel` prop.";
|
|
6
|
+
export declare const ACCESS_LEVEL_DEPRECATION_MESSAGE = "`accessLevel` has been deprecated and will be removed in a future major version. See migration notes at https://ui.docs.amplify.aws/react/connected-components/storage/FileUploader";
|
|
7
|
+
declare const FileUploader: React.ForwardRefExoticComponent<(FileUploaderProps | FileUploaderPathProps) & React.RefAttributes<FileUploaderHandle>> & {
|
|
8
|
+
Container: typeof Container;
|
|
9
|
+
DropZone: typeof DropZone;
|
|
10
|
+
FileList: typeof FileList;
|
|
11
|
+
FileListHeader: typeof FileListHeader;
|
|
12
|
+
FileListFooter: typeof FileListFooter;
|
|
13
|
+
FilePicker: typeof FilePicker;
|
|
14
|
+
};
|
|
15
|
+
export { FileUploader };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FileStatus } from '../../types';
|
|
2
|
+
import { Action, AddFilesActionParams } from './types';
|
|
3
|
+
import { TaskEvent } from '../../utils';
|
|
4
|
+
export declare const addFilesAction: ({ files, status, getFileErrorMessage, }: AddFilesActionParams) => Action;
|
|
5
|
+
export declare const clearFilesAction: () => Action;
|
|
6
|
+
export declare const queueFilesAction: () => Action;
|
|
7
|
+
export declare const setProcessedKeyAction: (input: {
|
|
8
|
+
id: string;
|
|
9
|
+
processedKey: string;
|
|
10
|
+
}) => Action;
|
|
11
|
+
export declare const setUploadingFileAction: ({ id, uploadTask, }: TaskEvent) => Action;
|
|
12
|
+
export declare const setUploadProgressAction: ({ id, progress, }: {
|
|
13
|
+
id: string;
|
|
14
|
+
progress: number;
|
|
15
|
+
}) => Action;
|
|
16
|
+
export declare const setUploadStatusAction: ({ id, status, }: {
|
|
17
|
+
id: string;
|
|
18
|
+
status: FileStatus;
|
|
19
|
+
}) => Action;
|
|
20
|
+
export declare const removeUploadAction: ({ id }: {
|
|
21
|
+
id: string;
|
|
22
|
+
}) => Action;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useFileUploader, UseFileUploader } from './useFileUploader';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { FileStatus, StorageFiles } from '../../types';
|
|
2
|
+
import { UploadTask } from '../../utils';
|
|
3
|
+
export interface UseFileUploaderState {
|
|
4
|
+
files: StorageFiles;
|
|
5
|
+
}
|
|
6
|
+
export declare enum FileUploaderActionTypes {
|
|
7
|
+
ADD_FILES = "ADD_FILES",
|
|
8
|
+
CLEAR_FILES = "CLEAR_FILES",
|
|
9
|
+
QUEUE_FILES = "QUEUE_FILES",
|
|
10
|
+
SET_STATUS = "SET_STATUS",
|
|
11
|
+
SET_PROCESSED_FILE_KEY = "SET_PROCESSED_FILE_KEY",
|
|
12
|
+
SET_STATUS_UPLOADING = "SET_STATUS_UPLOADING",
|
|
13
|
+
SET_UPLOAD_PROGRESS = "SET_UPLOAD_PROGRESS",
|
|
14
|
+
REMOVE_UPLOAD = "REMOVE_UPLOAD"
|
|
15
|
+
}
|
|
16
|
+
export type GetFileErrorMessage = (file: File) => string;
|
|
17
|
+
export type Action = {
|
|
18
|
+
type: FileUploaderActionTypes.ADD_FILES;
|
|
19
|
+
files: File[];
|
|
20
|
+
status: FileStatus;
|
|
21
|
+
getFileErrorMessage: GetFileErrorMessage;
|
|
22
|
+
} | {
|
|
23
|
+
type: FileUploaderActionTypes.CLEAR_FILES;
|
|
24
|
+
} | {
|
|
25
|
+
type: FileUploaderActionTypes.SET_STATUS;
|
|
26
|
+
id: string;
|
|
27
|
+
status: FileStatus;
|
|
28
|
+
} | {
|
|
29
|
+
type: FileUploaderActionTypes.QUEUE_FILES;
|
|
30
|
+
} | {
|
|
31
|
+
type: FileUploaderActionTypes.SET_STATUS_UPLOADING;
|
|
32
|
+
id: string;
|
|
33
|
+
uploadTask?: UploadTask;
|
|
34
|
+
} | {
|
|
35
|
+
type: FileUploaderActionTypes.SET_UPLOAD_PROGRESS;
|
|
36
|
+
id: string;
|
|
37
|
+
progress: number;
|
|
38
|
+
} | {
|
|
39
|
+
type: FileUploaderActionTypes.SET_PROCESSED_FILE_KEY;
|
|
40
|
+
id: string;
|
|
41
|
+
processedKey: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: FileUploaderActionTypes.REMOVE_UPLOAD;
|
|
44
|
+
id: string;
|
|
45
|
+
};
|
|
46
|
+
export interface AddFilesActionParams {
|
|
47
|
+
files: File[];
|
|
48
|
+
status: FileStatus;
|
|
49
|
+
getFileErrorMessage: GetFileErrorMessage;
|
|
50
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { StorageFiles, FileStatus, DefaultFile } from '../../types';
|
|
2
|
+
import { GetFileErrorMessage } from './types';
|
|
3
|
+
import { TaskHandler } from '../../utils';
|
|
4
|
+
export interface UseFileUploader {
|
|
5
|
+
addFiles: (params: {
|
|
6
|
+
files: File[];
|
|
7
|
+
status: FileStatus;
|
|
8
|
+
getFileErrorMessage: GetFileErrorMessage;
|
|
9
|
+
}) => void;
|
|
10
|
+
clearFiles: () => void;
|
|
11
|
+
queueFiles: () => void;
|
|
12
|
+
setUploadingFile: TaskHandler;
|
|
13
|
+
setProcessedKey: (params: {
|
|
14
|
+
id: string;
|
|
15
|
+
processedKey: string;
|
|
16
|
+
}) => void;
|
|
17
|
+
setUploadProgress: (params: {
|
|
18
|
+
id: string;
|
|
19
|
+
progress: number;
|
|
20
|
+
}) => void;
|
|
21
|
+
setUploadSuccess: (params: {
|
|
22
|
+
id: string;
|
|
23
|
+
}) => void;
|
|
24
|
+
setUploadResumed: (params: {
|
|
25
|
+
id: string;
|
|
26
|
+
}) => void;
|
|
27
|
+
setUploadPaused: (params: {
|
|
28
|
+
id: string;
|
|
29
|
+
}) => void;
|
|
30
|
+
removeUpload: (params: {
|
|
31
|
+
id: string;
|
|
32
|
+
}) => void;
|
|
33
|
+
files: StorageFiles;
|
|
34
|
+
}
|
|
35
|
+
export declare function useFileUploader(defaultFiles?: Array<DefaultFile>): UseFileUploader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useUploadFiles, UseUploadFilesProps } from './useUploadFiles';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PathCallback } from '../../utils';
|
|
2
|
+
import { FileUploaderProps } from '../../types';
|
|
3
|
+
import { UseFileUploader } from '../useFileUploader';
|
|
4
|
+
export interface UseUploadFilesProps extends Pick<FileUploaderProps, 'isResumable' | 'onUploadSuccess' | 'onUploadError' | 'onUploadStart' | 'maxFileCount' | 'processFile' | 'useAccelerateEndpoint'>, Pick<UseFileUploader, 'setUploadingFile' | 'setUploadProgress' | 'setUploadSuccess' | 'files'> {
|
|
5
|
+
accessLevel?: FileUploaderProps['accessLevel'];
|
|
6
|
+
onProcessFileSuccess: (input: {
|
|
7
|
+
id: string;
|
|
8
|
+
processedKey: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
path?: string | PathCallback;
|
|
11
|
+
}
|
|
12
|
+
export declare function useUploadFiles({ accessLevel, files, isResumable, maxFileCount, onProcessFileSuccess, onUploadError, onUploadStart, onUploadSuccess, path, processFile, setUploadingFile, setUploadProgress, setUploadSuccess, useAccelerateEndpoint, }: UseUploadFilesProps): void;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { StorageAccessLevel } from '@aws-amplify/core';
|
|
3
|
+
import { ContainerProps, DropZoneProps, FileListHeaderProps, FileListFooterProps, FileListProps, FilePickerProps } from './ui';
|
|
4
|
+
import { FileUploaderDisplayText, PathCallback, UploadTask } from './utils';
|
|
5
|
+
export declare enum FileStatus {
|
|
6
|
+
ADDED = "added",
|
|
7
|
+
QUEUED = "queued",
|
|
8
|
+
UPLOADING = "uploading",
|
|
9
|
+
PAUSED = "paused",
|
|
10
|
+
ERROR = "error",
|
|
11
|
+
UPLOADED = "uploaded"
|
|
12
|
+
}
|
|
13
|
+
export interface StorageFile {
|
|
14
|
+
id: string;
|
|
15
|
+
file?: File;
|
|
16
|
+
status: FileStatus;
|
|
17
|
+
progress: number;
|
|
18
|
+
processedKey?: string;
|
|
19
|
+
uploadTask?: UploadTask;
|
|
20
|
+
key: string;
|
|
21
|
+
error: string;
|
|
22
|
+
isImage: boolean;
|
|
23
|
+
}
|
|
24
|
+
export type StorageFiles = StorageFile[];
|
|
25
|
+
export type DefaultFile = Pick<StorageFile, 'key'>;
|
|
26
|
+
export interface ProcessFileParams extends Record<string, any> {
|
|
27
|
+
file: File;
|
|
28
|
+
key: string;
|
|
29
|
+
useAccelerateEndpoint?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export type ProcessFile = (params: ProcessFileParams) => Promise<ProcessFileParams> | ProcessFileParams;
|
|
32
|
+
export interface FileUploaderHandle {
|
|
33
|
+
clearFiles: () => void;
|
|
34
|
+
}
|
|
35
|
+
export interface FileUploaderProps {
|
|
36
|
+
/**
|
|
37
|
+
* List of accepted File types, values of `['*']` or undefined allow any files
|
|
38
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept
|
|
39
|
+
*/
|
|
40
|
+
acceptedFileTypes?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Access level for file uploads
|
|
43
|
+
* @see https://docs.amplify.aws/lib/storage/configureaccess/q/platform/js/
|
|
44
|
+
*/
|
|
45
|
+
accessLevel: StorageAccessLevel;
|
|
46
|
+
/**
|
|
47
|
+
* Determines if the upload will automatically start after a file is selected, default value: true
|
|
48
|
+
*/
|
|
49
|
+
autoUpload?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Component overrides
|
|
52
|
+
*/
|
|
53
|
+
components?: {
|
|
54
|
+
Container?: React.ComponentType<ContainerProps>;
|
|
55
|
+
DropZone?: React.ComponentType<DropZoneProps>;
|
|
56
|
+
FileList?: React.ComponentType<FileListProps>;
|
|
57
|
+
FilePicker?: React.ComponentType<FilePickerProps>;
|
|
58
|
+
FileListHeader?: React.ComponentType<FileListHeaderProps>;
|
|
59
|
+
FileListFooter?: React.ComponentType<FileListFooterProps>;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* List of default files already uploaded
|
|
63
|
+
*/
|
|
64
|
+
defaultFiles?: DefaultFile[];
|
|
65
|
+
/**
|
|
66
|
+
* Overrides default display text
|
|
67
|
+
*/
|
|
68
|
+
displayText?: FileUploaderDisplayText;
|
|
69
|
+
/**
|
|
70
|
+
* Determines if upload can be paused / resumed
|
|
71
|
+
*/
|
|
72
|
+
isResumable?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Maximum total files to upload in each batch
|
|
75
|
+
*/
|
|
76
|
+
maxFileCount: number;
|
|
77
|
+
/**
|
|
78
|
+
* Maximum file size in bytes
|
|
79
|
+
*/
|
|
80
|
+
maxFileSize?: number;
|
|
81
|
+
/**
|
|
82
|
+
* When a file is removed
|
|
83
|
+
*/
|
|
84
|
+
onFileRemove?: (file: {
|
|
85
|
+
key: string;
|
|
86
|
+
}) => void;
|
|
87
|
+
/**
|
|
88
|
+
* Monitor upload errors
|
|
89
|
+
*/
|
|
90
|
+
onUploadError?: (error: string, file: {
|
|
91
|
+
key: string;
|
|
92
|
+
}) => void;
|
|
93
|
+
/**
|
|
94
|
+
* Monitor upload success
|
|
95
|
+
*/
|
|
96
|
+
onUploadSuccess?: (event: {
|
|
97
|
+
key?: string;
|
|
98
|
+
}) => void;
|
|
99
|
+
/**
|
|
100
|
+
* When a file begins uploading
|
|
101
|
+
*/
|
|
102
|
+
onUploadStart?: (event: {
|
|
103
|
+
key?: string;
|
|
104
|
+
}) => void;
|
|
105
|
+
/**
|
|
106
|
+
* Process file before upload
|
|
107
|
+
*/
|
|
108
|
+
processFile?: ProcessFile;
|
|
109
|
+
/**
|
|
110
|
+
* Determines if thumbnails show for image files
|
|
111
|
+
*/
|
|
112
|
+
showThumbnails?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Provided value is prefixed to the file `key` for each file
|
|
115
|
+
*/
|
|
116
|
+
path?: string;
|
|
117
|
+
useAccelerateEndpoint?: boolean;
|
|
118
|
+
}
|
|
119
|
+
export interface FileUploaderPathProps extends Omit<FileUploaderProps, 'accessLevel' | 'path'> {
|
|
120
|
+
/**
|
|
121
|
+
* S3 bucket key, allows either a `string` or a `PathCallback`:
|
|
122
|
+
* - `string`: `path` is prefixed to the file `key` for each file
|
|
123
|
+
* - `PathCallback`: callback provided an input containing the current `identityId`,
|
|
124
|
+
* resolved value is prefixed to the file `key` for each file
|
|
125
|
+
*/
|
|
126
|
+
path: string | PathCallback;
|
|
127
|
+
accessLevel?: never;
|
|
128
|
+
useAccelerateEndpoint?: boolean;
|
|
129
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Container, ContainerProps } from './Container';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FileUploaderDisplayText } from '../../utils/displayText';
|
|
3
|
+
export interface DropZoneProps {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
displayText: FileUploaderDisplayText;
|
|
6
|
+
inDropZone: boolean;
|
|
7
|
+
onDragEnter: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
8
|
+
onDragLeave: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
9
|
+
onDragOver: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
10
|
+
onDragStart: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
11
|
+
onDrop: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
12
|
+
testId?: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FileControlProps } from './types';
|
|
3
|
+
export declare function FileControl({ onPause, onResume, displayName, errorMessage, isImage, isResumable, loaderIsDeterminate, onRemove, progress, showThumbnails, size, status, displayText, thumbnailUrl, }: FileControlProps): JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FileListProps } from './types';
|
|
3
|
+
export declare function FileList({ displayText, files, hasMaxFilesError, isResumable, onCancelUpload, onDeleteUpload, onResume, onPause, showThumbnails, maxFileCount, }: FileListProps): JSX.Element | null;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { FileUploaderDisplayTextDefault, TaskHandler } from '../../utils';
|
|
2
|
+
import { FileStatus, StorageFile } from '../../types';
|
|
3
|
+
export interface FileListProps {
|
|
4
|
+
displayText: FileUploaderDisplayTextDefault;
|
|
5
|
+
files: StorageFile[];
|
|
6
|
+
isResumable: boolean;
|
|
7
|
+
onCancelUpload: TaskHandler;
|
|
8
|
+
onDeleteUpload: (params: {
|
|
9
|
+
id: string;
|
|
10
|
+
}) => void;
|
|
11
|
+
onPause: TaskHandler;
|
|
12
|
+
onResume: TaskHandler;
|
|
13
|
+
showThumbnails: boolean;
|
|
14
|
+
hasMaxFilesError: boolean;
|
|
15
|
+
maxFileCount: number;
|
|
16
|
+
}
|
|
17
|
+
export interface FileControlProps {
|
|
18
|
+
displayText: FileUploaderDisplayTextDefault;
|
|
19
|
+
displayName: string;
|
|
20
|
+
errorMessage: string;
|
|
21
|
+
isImage: boolean;
|
|
22
|
+
isResumable: boolean;
|
|
23
|
+
isUploading: boolean;
|
|
24
|
+
loaderIsDeterminate: boolean;
|
|
25
|
+
onRemove: () => void;
|
|
26
|
+
onPause: () => void;
|
|
27
|
+
onResume: () => void;
|
|
28
|
+
progress: number;
|
|
29
|
+
showThumbnails: boolean;
|
|
30
|
+
size?: number;
|
|
31
|
+
status: FileStatus;
|
|
32
|
+
thumbnailUrl: string;
|
|
33
|
+
}
|
|
34
|
+
export interface FileStatusMessageProps extends Pick<FileUploaderDisplayTextDefault, 'getUploadingText' | 'getPausedText' | 'uploadSuccessfulText'> {
|
|
35
|
+
status: FileStatus;
|
|
36
|
+
errorMessage: string;
|
|
37
|
+
percentage: number;
|
|
38
|
+
}
|
|
39
|
+
export interface UploadDetailsProps {
|
|
40
|
+
displayName: string;
|
|
41
|
+
fileSize?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface FileThumbnailProps {
|
|
44
|
+
isImage: boolean;
|
|
45
|
+
fileName: string;
|
|
46
|
+
url: string;
|
|
47
|
+
}
|
|
48
|
+
export interface FileRemoveButtonProps {
|
|
49
|
+
altText: string;
|
|
50
|
+
onClick: () => void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FileUploaderDisplayTextDefault } from '../../utils';
|
|
3
|
+
export interface FileListFooterProps {
|
|
4
|
+
remainingFilesCount: number;
|
|
5
|
+
displayText: FileUploaderDisplayTextDefault;
|
|
6
|
+
onClearAll: () => void;
|
|
7
|
+
onUploadAll: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function FileListFooter({ displayText, remainingFilesCount, onClearAll, onUploadAll, }: FileListFooterProps): JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FileListFooter, FileListFooterProps } from './FileListFooter';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FileUploaderDisplayTextDefault } from '../../utils';
|
|
3
|
+
export interface FileListHeaderProps {
|
|
4
|
+
allUploadsSuccessful: boolean;
|
|
5
|
+
displayText: FileUploaderDisplayTextDefault;
|
|
6
|
+
fileCount: number;
|
|
7
|
+
remainingFilesCount: number;
|
|
8
|
+
selectedFilesCount?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function FileListHeader({ allUploadsSuccessful, displayText, fileCount, remainingFilesCount, selectedFilesCount, }: FileListHeaderProps): JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FileListHeader, FileListHeaderProps } from './FileListHeader';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FilePicker, FilePickerProps } from './FilePicker';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Container, ContainerProps } from './Container';
|
|
2
|
+
export { DropZone, DropZoneProps } from './DropZone';
|
|
3
|
+
export { FileList, FileListProps } from './FileList';
|
|
4
|
+
export { FileListHeader, FileListHeaderProps } from './FileListHeader';
|
|
5
|
+
export { FileListFooter, FileListFooterProps } from './FileListFooter';
|
|
6
|
+
export { FilePicker, FilePickerProps } from './FilePicker';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DisplayTextTemplate } from '@aws-amplify/ui';
|
|
2
|
+
export type FileUploaderDisplayText = DisplayTextTemplate<{
|
|
3
|
+
getFilesUploadedText?: (count: number) => string;
|
|
4
|
+
getFileSizeErrorText?: (sizeText: string) => string;
|
|
5
|
+
getRemainingFilesText?: (count: number) => string;
|
|
6
|
+
getSelectedFilesText?: (count: number) => string;
|
|
7
|
+
getUploadingText?: (percentage: number) => string;
|
|
8
|
+
getUploadButtonText?: (count: number) => string;
|
|
9
|
+
getMaxFilesErrorText?: (count: number) => string;
|
|
10
|
+
getErrorText?: (message: string) => string;
|
|
11
|
+
doneButtonText?: string;
|
|
12
|
+
clearAllButtonText?: string;
|
|
13
|
+
extensionNotAllowedText?: string;
|
|
14
|
+
browseFilesText?: string;
|
|
15
|
+
dropFilesText?: string;
|
|
16
|
+
pauseButtonText?: string;
|
|
17
|
+
resumeButtonText?: string;
|
|
18
|
+
uploadSuccessfulText?: string;
|
|
19
|
+
getPausedText?: (percentage: number) => string;
|
|
20
|
+
}>;
|
|
21
|
+
export type FileUploaderDisplayTextDefault = Required<FileUploaderDisplayText>;
|
|
22
|
+
export declare const defaultFileUploaderDisplayText: FileUploaderDisplayTextDefault;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const filterAllowedFiles: (files: File[], acceptedFileTypes?: string[]) => File[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StorageAccessLevel } from '@aws-amplify/core';
|
|
2
|
+
import { UploadDataWithPathInput, UploadDataInput } from 'aws-amplify/storage';
|
|
3
|
+
import { ProcessFile } from '../types';
|
|
4
|
+
import { PathCallback, PathInput } from './uploadFile';
|
|
5
|
+
export interface GetInputParams {
|
|
6
|
+
accessLevel: StorageAccessLevel | undefined;
|
|
7
|
+
file: File;
|
|
8
|
+
key: string;
|
|
9
|
+
onProcessFileSuccess: (input: {
|
|
10
|
+
processedKey: string;
|
|
11
|
+
}) => void;
|
|
12
|
+
onProgress: NonNullable<UploadDataWithPathInput['options']>['onProgress'];
|
|
13
|
+
path: string | PathCallback | undefined;
|
|
14
|
+
processFile: ProcessFile | undefined;
|
|
15
|
+
useAccelerateEndpoint?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const getInput: ({ accessLevel, file, key, onProcessFileSuccess, onProgress, path, processFile, useAccelerateEndpoint, }: GetInputParams) => () => Promise<PathInput | UploadDataInput>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { checkMaxFileSize } from './checkMaxFileSize';
|
|
2
|
+
export { defaultFileUploaderDisplayText, FileUploaderDisplayText, FileUploaderDisplayTextDefault, } from './displayText';
|
|
3
|
+
export { filterAllowedFiles } from './filterAllowedFiles';
|
|
4
|
+
export { getInput } from './getInput';
|
|
5
|
+
export { PathCallback, TaskEvent, TaskHandler, uploadFile, UploadTask, } from './uploadFile';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ProcessFile, ProcessFileParams } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Utility function that takes the processFile prop, along with a file a key
|
|
4
|
+
* and returns a Promise that resolves to { file, key, ..rest }
|
|
5
|
+
* regardless if processFile is defined and if it is sync or async
|
|
6
|
+
*/
|
|
7
|
+
export declare const resolveFile: ({ processFile, ...input }: ProcessFileParams & {
|
|
8
|
+
processFile?: ProcessFile | undefined;
|
|
9
|
+
}) => Promise<ProcessFileParams>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { UploadDataInput, UploadDataWithPathOutput, UploadDataWithPathInput, UploadDataOutput } from 'aws-amplify/storage';
|
|
2
|
+
/**
|
|
3
|
+
* Callback provided an input containing the current `identityId`
|
|
4
|
+
*
|
|
5
|
+
* @param {{identityId: string | undefined}} input - Input parameters
|
|
6
|
+
* @returns target S3 bucket key
|
|
7
|
+
*/
|
|
8
|
+
export type PathCallback = (input: {
|
|
9
|
+
identityId: string | undefined;
|
|
10
|
+
}) => string;
|
|
11
|
+
export type UploadTask = UploadDataOutput | UploadDataWithPathOutput;
|
|
12
|
+
export interface TaskEvent {
|
|
13
|
+
id: string;
|
|
14
|
+
uploadTask: UploadTask;
|
|
15
|
+
}
|
|
16
|
+
export type PathInput = Omit<UploadDataWithPathInput, 'path'> & {
|
|
17
|
+
path: string;
|
|
18
|
+
};
|
|
19
|
+
export type TaskHandler = (event: TaskEvent) => void;
|
|
20
|
+
export interface UploadFileProps {
|
|
21
|
+
input: () => Promise<PathInput | UploadDataInput>;
|
|
22
|
+
onComplete?: (result: Awaited<(UploadDataWithPathOutput | UploadDataOutput)['result']>) => void;
|
|
23
|
+
onError?: (event: {
|
|
24
|
+
key: string;
|
|
25
|
+
error: Error;
|
|
26
|
+
}) => void;
|
|
27
|
+
onStart?: (event: {
|
|
28
|
+
key: string;
|
|
29
|
+
uploadTask: UploadTask;
|
|
30
|
+
}) => void;
|
|
31
|
+
}
|
|
32
|
+
export declare function uploadFile({ input, onError, onStart, onComplete, }: UploadFileProps): Promise<UploadDataWithPathOutput | UploadDataOutput>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export { FileUploader, FileUploaderProps } from './FileUploader';
|
|
1
2
|
export { StorageImage, StorageImageProps } from './StorageImage';
|
|
2
3
|
export { StorageManager, StorageManagerProps, DropZoneProps, ContainerProps, FileListProps, FilePickerProps, FileListHeaderProps, FileListFooterProps, } from './StorageManager';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { StorageImage, StorageImageProps, StorageManager, StorageManagerProps, DropZoneProps, ContainerProps, FileListProps, FilePickerProps, FileListHeaderProps, FileListFooterProps, } from './components';
|
|
1
|
+
export { FileUploader, FileUploaderProps, StorageImage, StorageImageProps, StorageManager, StorageManagerProps, DropZoneProps, ContainerProps, FileListProps, FilePickerProps, FileListHeaderProps, FileListFooterProps, } from './components';
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.3.0";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/ui-react-storage",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/esm/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"typecheck": "tsc --noEmit"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@aws-amplify/ui": "6.
|
|
43
|
-
"@aws-amplify/ui-react": "6.2.
|
|
44
|
-
"@aws-amplify/ui-react-core": "3.0.
|
|
42
|
+
"@aws-amplify/ui": "6.3.0",
|
|
43
|
+
"@aws-amplify/ui-react": "6.2.2",
|
|
44
|
+
"@aws-amplify/ui-react-core": "3.0.20",
|
|
45
45
|
"lodash": "4.17.21",
|
|
46
46
|
"tslib": "^2.5.2"
|
|
47
47
|
},
|