@aws-amplify/ui-react-storage 3.10.3 → 3.11.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/browser.js +1 -1
- package/dist/{createStorageBrowser-B75dAYRb.js → createStorageBrowser-CVfazB4S.js} +167 -169
- package/dist/esm/components/StorageBrowser/actions/handlers/listLocations.mjs +1 -1
- package/dist/esm/components/StorageBrowser/createStorageBrowser/StorageBrowserDefault.mjs +1 -1
- package/dist/esm/components/StorageBrowser/createStorageBrowser/createProvider.mjs +5 -3
- package/dist/esm/components/StorageBrowser/createStorageBrowser/createStorageBrowser.mjs +1 -1
- package/dist/esm/components/StorageBrowser/displayText/libraries/en/uploadView.mjs +3 -6
- package/dist/esm/components/StorageBrowser/fileItems/constants.mjs +11 -0
- package/dist/esm/components/StorageBrowser/fileItems/context.mjs +42 -0
- package/dist/esm/components/StorageBrowser/fileItems/fileItemsReducer.mjs +33 -0
- package/dist/esm/components/StorageBrowser/fileItems/utils.mjs +55 -0
- package/dist/esm/components/StorageBrowser/views/LocationActionView/CopyView/CopyViewProvider.mjs +3 -2
- package/dist/esm/components/StorageBrowser/views/LocationActionView/CreateFolderView/CreateFolderViewProvider.mjs +0 -1
- package/dist/esm/components/StorageBrowser/views/LocationActionView/DeleteView/DeleteViewProvider.mjs +4 -3
- package/dist/esm/components/StorageBrowser/views/LocationActionView/UploadView/useUploadView.mjs +13 -34
- package/dist/esm/components/StorageBrowser/views/LocationDetailView/LocationDetailViewProvider.mjs +0 -1
- package/dist/esm/components/StorageBrowser/views/LocationDetailView/useLocationDetailView.mjs +3 -3
- package/dist/esm/components/StorageBrowser/views/context/actionViews.mjs +1 -1
- package/dist/esm/components/StorageBrowser/views/context/primaryViews.mjs +1 -1
- package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/constants.mjs +9 -1
- package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/copyResolvers.mjs +4 -42
- package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/deleteResolvers.mjs +4 -42
- package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/utils.mjs +45 -5
- package/dist/esm/version.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/types/components/StorageBrowser/actions/index.d.ts +1 -1
- package/dist/types/components/StorageBrowser/createStorageBrowser/createProvider.d.ts +1 -1
- package/dist/types/components/StorageBrowser/createStorageBrowser/types.d.ts +21 -3
- package/dist/types/components/StorageBrowser/displayText/types.d.ts +1 -1
- package/dist/types/components/StorageBrowser/fileItems/constants.d.ts +4 -0
- package/dist/types/components/StorageBrowser/fileItems/context.d.ts +6 -0
- package/dist/types/components/StorageBrowser/fileItems/fileItemsReducer.d.ts +6 -0
- package/dist/types/components/StorageBrowser/fileItems/index.d.ts +3 -0
- package/dist/types/components/StorageBrowser/fileItems/types.d.ts +44 -0
- package/dist/types/components/StorageBrowser/fileItems/utils.d.ts +5 -0
- package/dist/types/components/StorageBrowser/validators/index.d.ts +1 -2
- package/dist/types/components/StorageBrowser/views/LocationActionView/UploadView/types.d.ts +1 -1
- package/dist/types/components/StorageBrowser/views/utils/index.d.ts +1 -1
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/__testUtils__/tasks.d.ts +6 -11
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/constants.d.ts +1 -0
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/copyResolvers.d.ts +2 -3
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/deleteResolvers.d.ts +2 -3
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/index.d.ts +3 -2
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/types.d.ts +10 -10
- package/dist/types/components/StorageBrowser/views/utils/tableResolvers/utils.d.ts +15 -7
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/components/StorageBrowser/files/context.mjs +0 -31
- package/dist/esm/components/StorageBrowser/files/utils.mjs +0 -52
- package/dist/esm/components/StorageBrowser/validators/isFileTooBig.mjs +0 -4
- package/dist/types/components/StorageBrowser/files/context.d.ts +0 -6
- package/dist/types/components/StorageBrowser/files/index.d.ts +0 -2
- package/dist/types/components/StorageBrowser/files/types.d.ts +0 -28
- package/dist/types/components/StorageBrowser/files/utils.d.ts +0 -7
- package/dist/types/components/StorageBrowser/validators/isFileTooBig.d.ts +0 -2
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var uiReactCore = require('@aws-amplify/ui-react-core');
|
|
|
9
9
|
var auth = require('aws-amplify/auth');
|
|
10
10
|
var storage = require('aws-amplify/storage');
|
|
11
11
|
var internal = require('@aws-amplify/ui-react/internal');
|
|
12
|
-
var createStorageBrowser = require('./createStorageBrowser-
|
|
12
|
+
var createStorageBrowser = require('./createStorageBrowser-CVfazB4S.js');
|
|
13
13
|
require('@aws-amplify/storage/internals');
|
|
14
14
|
require('aws-amplify');
|
|
15
15
|
require('aws-amplify/utils');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ActionInputConfig, CopyHandler, CopyHandlerData, CopyHandlerInput, CopyHandlerOutput, CreateFolderHandler, CreateFolderHandlerData, CreateFolderHandlerInput, CreateFolderHandlerOptions, CreateFolderHandlerOutput, DefaultHandlers, DownloadHandler, DownloadHandlerData, DownloadHandlerInput, DownloadHandlerOptions, DownloadHandlerOutput, DeleteHandler, DeleteHandlerData, DeleteHandlerInput, DeleteHandlerOptions, DeleteHandlerOutput, FileData, FileDataItem, FileItem, FolderData, ListHandler, ListHandlerInput, ListHandlerOptions, ListHandlerOutput, ListLocationItemsHandler, ListLocationItemsHandlerInput, ListLocationItemsHandlerOptions, ListLocationItemsHandlerOutput, ListLocationsExcludeOptions, ListLocations, ListLocationsInput, ListLocationsOutput, ListLocationsHandler, ListLocationsHandlerInput, ListLocationsHandlerOptions, ListLocationsHandlerOutput, LocationData, LocationItemData, LocationItemType, LocationPermissions, LocationType, TaskData, TaskHandler, TaskHandlerInput, TaskHandlerOptions, TaskHandlerOutput, TaskResult, TaskResultStatus, UploadHandler, UploadHandlerData, UploadHandlerInput, UploadHandlerOptions, UploadHandlerOutput, } from './handlers';
|
|
1
|
+
export type { ActionInputConfig, CopyHandler, CopyHandlerData, CopyHandlerInput, CopyHandlerOutput, CreateFolderHandler, CreateFolderHandlerData, CreateFolderHandlerInput, CreateFolderHandlerOptions, CreateFolderHandlerOutput, DefaultHandlers, DownloadHandler, DownloadHandlerData, DownloadHandlerInput, DownloadHandlerOptions, DownloadHandlerOutput, DeleteHandler, DeleteHandlerData, DeleteHandlerInput, DeleteHandlerOptions, DeleteHandlerOutput, FileData, FileDataItem, FileItem, FolderData, ListHandler, ListHandlerInput, ListHandlerOptions, ListHandlerOutput, ListLocationItemsHandler, ListLocationItemsHandlerInput, ListLocationItemsHandlerOptions, ListLocationItemsHandlerOutput, ListLocationsExcludeOptions, ListLocations, ListLocationsInput, ListLocationsOutput, ListLocationsHandler, ListLocationsHandlerInput, ListLocationsHandlerOptions, ListLocationsHandlerOutput, LocationData, LocationItemData, LocationItemType, LocationPermissions, LocationType, OptionalFileData, TaskData, TaskHandler, TaskHandlerInput, TaskHandlerOptions, TaskHandlerOutput, TaskResult, TaskResultStatus, UploadHandler, UploadHandlerData, UploadHandlerInput, UploadHandlerOptions, UploadHandlerOutput, } from './handlers';
|
|
2
2
|
export { copyHandler, createFileDataItem, createFolderHandler, defaultHandlers, downloadHandler, getFileKey, isFileDataItem, isFileItem, isMultipartUpload, listLocationItemsHandler, listLocationsHandler, uploadHandler, } from './handlers';
|
|
3
3
|
export type { ExtendedActionConfigs, ActionViewConfig, ActionViewConfigs, ActionConfigsProviderProps, ActionHandler, CustomActionConfigs, DefaultActionConfigs, } from './configs';
|
|
4
4
|
export { ActionConfigsProvider, defaultActionConfigs, defaultActionViewConfigs, getActionConfigs, isDefaultActionViewType, useActionConfigs, } from './configs';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CreateStorageBrowserInput, StorageBrowserProviderProps } from './types';
|
|
3
|
-
export default function createProvider({ actions, components, config, }: CreateStorageBrowserInput): (props: StorageBrowserProviderProps) => React.JSX.Element;
|
|
3
|
+
export default function createProvider({ actions, components, config, options, }: CreateStorageBrowserInput): (props: StorageBrowserProviderProps) => React.JSX.Element;
|
|
@@ -86,6 +86,20 @@ export interface StorageBrowserActions {
|
|
|
86
86
|
default?: DefaultActionConfigs;
|
|
87
87
|
custom?: CustomActionConfigs;
|
|
88
88
|
}
|
|
89
|
+
export interface StorageBrowserOptions {
|
|
90
|
+
/**
|
|
91
|
+
* @description Overrides default file validation called when selecting files to be uploaded
|
|
92
|
+
* @param {File} file — The file to validate
|
|
93
|
+
* @returns {boolean} — Returns true if `file` is valid, false otherwise
|
|
94
|
+
* @example
|
|
95
|
+
* ```tsx
|
|
96
|
+
* const MAX_FILE_SIZE = 10 * 1000 * 1000 * 1000; // 10 GB in bytes
|
|
97
|
+
*
|
|
98
|
+
* const myValidateFile = (file: File) => file.size < MAX_FILE_SIZE;
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
validateFile?: (file: File) => boolean;
|
|
102
|
+
}
|
|
89
103
|
/**
|
|
90
104
|
* @description configuration and options for `createStorageBrowser`
|
|
91
105
|
*/
|
|
@@ -107,6 +121,10 @@ export interface CreateStorageBrowserInput {
|
|
|
107
121
|
* @description Overrides default `components` used within `StorageBrowser`
|
|
108
122
|
*/
|
|
109
123
|
components?: StorageBrowserComponents;
|
|
124
|
+
/**
|
|
125
|
+
* @description Additional options and overrides for `StorageBrowser`
|
|
126
|
+
*/
|
|
127
|
+
options?: StorageBrowserOptions;
|
|
110
128
|
}
|
|
111
129
|
/**
|
|
112
130
|
* `StorageBrowser` component properties
|
|
@@ -162,17 +180,17 @@ export interface StorageBrowserProviderProps<TViews = {}> extends StoreProviderP
|
|
|
162
180
|
*/
|
|
163
181
|
views?: TViews;
|
|
164
182
|
/**
|
|
165
|
-
* @deprecated will be removed in a future major
|
|
183
|
+
* @deprecated will be removed in a future major version. Prefer `value` for controlled behavior or `defaultValue` for initializing `actionType`
|
|
166
184
|
* @description initial `actionType`, does not update
|
|
167
185
|
*/
|
|
168
186
|
actionType?: string;
|
|
169
187
|
/**
|
|
170
|
-
* @deprecated will be removed in a future major
|
|
188
|
+
* @deprecated will be removed in a future major version. Prefer `value` for controlled behavior or `defaultValue` for initializing `actionType`
|
|
171
189
|
* @description initial `location` data, does not update
|
|
172
190
|
*/
|
|
173
191
|
location?: LocationData;
|
|
174
192
|
/**
|
|
175
|
-
* @deprecated will be removed in a future major
|
|
193
|
+
* @deprecated will be removed in a future major version. Prefer `value` for controlled behavior or `defaultValue` for initializing `actionType`
|
|
176
194
|
* @description initial `location` subpath to establish navigation state, does not update
|
|
177
195
|
*/
|
|
178
196
|
path?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StatusCounts, Task } from '../tasks';
|
|
2
2
|
import type { CopyHandlerData, CreateFolderHandlerData, DeleteHandlerData, FolderData, LocationData, LocationItemData, TaskData, UploadHandlerData, LocationPermissions } from '../actions';
|
|
3
3
|
import type { MessageType } from '../components';
|
|
4
|
-
import type { FileItems } from '../
|
|
4
|
+
import type { FileItems } from '../fileItems';
|
|
5
5
|
import type { LocationState } from '../store';
|
|
6
6
|
/**
|
|
7
7
|
* Common list view display text values
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FileItemsContextType, FileItemsProviderProps } from './types';
|
|
3
|
+
export declare const FileItemsContext: React.Context<FileItemsContextType>, useFileItems: (params?: {
|
|
4
|
+
errorMessage?: string | undefined;
|
|
5
|
+
} | undefined) => FileItemsContextType;
|
|
6
|
+
export declare function FileItemsProvider({ children, validateFile, }: FileItemsProviderProps): React.JSX.Element;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { FileItem, LocationItemType } from '../actions';
|
|
2
|
+
/**
|
|
3
|
+
* native OS file picker type. to restrict selectable file types, define the picker types
|
|
4
|
+
* followed by accepted file types as strings
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* type JPEGOnly = ['FOLDER', '.jpeg'];
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export type SelectionType = LocationItemType | [LocationItemType, ...string[]];
|
|
11
|
+
export type FileItemsActionType = {
|
|
12
|
+
type: 'ADD_FILES';
|
|
13
|
+
files?: File[];
|
|
14
|
+
} | {
|
|
15
|
+
type: 'ADD_FILE_ITEMS';
|
|
16
|
+
validFiles?: File[];
|
|
17
|
+
invalidFiles?: File[];
|
|
18
|
+
} | {
|
|
19
|
+
type: 'REMOVE_FILE_ITEM';
|
|
20
|
+
id: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'SELECT_FILES';
|
|
23
|
+
selectionType?: SelectionType;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'RESET_FILE_ITEMS';
|
|
26
|
+
};
|
|
27
|
+
export type FileItemsActionDispatchType = Exclude<FileItemsActionType, {
|
|
28
|
+
type: 'ADD_FILE_ITEMS';
|
|
29
|
+
}>;
|
|
30
|
+
export type HandleFileItemsAction = (input: FileItemsActionDispatchType) => void;
|
|
31
|
+
export interface ResolvedFiles {
|
|
32
|
+
validFiles: File[] | undefined;
|
|
33
|
+
invalidFiles: File[] | undefined;
|
|
34
|
+
}
|
|
35
|
+
export type FileItems = FileItem[];
|
|
36
|
+
export interface FileItemsState {
|
|
37
|
+
validItems: FileItems | undefined;
|
|
38
|
+
invalidItems: FileItems | undefined;
|
|
39
|
+
}
|
|
40
|
+
export type FileItemsContextType = [FileItemsState, HandleFileItemsAction];
|
|
41
|
+
export interface FileItemsProviderProps {
|
|
42
|
+
children?: React.ReactNode;
|
|
43
|
+
validateFile?: (file: File) => boolean;
|
|
44
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { FileItems, ResolvedFiles, SelectionType } from './types';
|
|
2
|
+
export declare const defaultValidateFile: (file: File) => boolean;
|
|
3
|
+
export declare const resolveFiles: (files: File[] | undefined, validateFile?: ((file: File) => boolean) | undefined) => ResolvedFiles;
|
|
4
|
+
export declare const processFileItems: (prevItems: FileItems | undefined, files: File[] | undefined) => FileItems | undefined;
|
|
5
|
+
export declare const parseFileSelectParams: (value?: SelectionType) => [selectType: import("@aws-amplify/ui-react/dist/types/components/FileSelect/FileSelect").SelectType, options?: import("@aws-amplify/ui-react/internal").FileSelectOptions | undefined];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
+
export { assertAccountId } from './assertAccountId';
|
|
1
2
|
export { assertLocationData, assertPrefix } from './assertLocationData';
|
|
2
3
|
export { assertRegisterAuthListener } from './assertRegisterAuthListener';
|
|
3
|
-
export { assertAccountId } from './assertAccountId';
|
|
4
|
-
export { isFileTooBig } from './isFileTooBig';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LocationData, UploadHandlerData } from '../../../actions';
|
|
2
|
-
import type { FileItems } from '../../../
|
|
2
|
+
import type { FileItems } from '../../../fileItems';
|
|
3
3
|
import type { ActionViewType, ActionViewProps, ActionViewState } from '../types';
|
|
4
4
|
export interface UploadViewState extends ActionViewState<UploadHandlerData> {
|
|
5
5
|
isOverwritingEnabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { COPY_TABLE_RESOLVERS, FILE_DATA_ITEM_TABLE_KEYS, DELETE_TABLE_RESOLVERS, UPLOAD_TABLE_KEYS, UPLOAD_TABLE_RESOLVERS, } from './tableResolvers';
|
package/dist/types/components/StorageBrowser/views/utils/tableResolvers/__testUtils__/tasks.d.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import type { TaskStatus } from '../../../../tasks';
|
|
2
|
-
import type {
|
|
3
|
-
type
|
|
4
|
-
type
|
|
5
|
-
[K in
|
|
6
|
-
status: K;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
type MockDeleteTasks = {
|
|
10
|
-
[K in MockCopyOrDeleteTaskStatus]: Omit<DeleteActionTask, 'status'> & {
|
|
2
|
+
import type { FileDataTask, UploadActionTask } from '../types';
|
|
3
|
+
type MockFileDataTaskStatus = Exclude<TaskStatus, 'OVERWRITE_PREVENTED'>;
|
|
4
|
+
type MockFileDataTasks = {
|
|
5
|
+
[K in MockFileDataTaskStatus]: Omit<FileDataTask, 'status'> & {
|
|
11
6
|
status: K;
|
|
12
7
|
};
|
|
13
8
|
};
|
|
@@ -16,8 +11,8 @@ type MockUploadTasks = {
|
|
|
16
11
|
status: K;
|
|
17
12
|
};
|
|
18
13
|
};
|
|
19
|
-
export declare const MOCK_COPY_TASKS:
|
|
20
|
-
export declare const MOCK_DELETE_TASKS:
|
|
14
|
+
export declare const MOCK_COPY_TASKS: MockFileDataTasks;
|
|
15
|
+
export declare const MOCK_DELETE_TASKS: MockFileDataTasks;
|
|
21
16
|
export declare const MOCK_UPLOAD_TASKS_SINGLE_PART: MockUploadTasks;
|
|
22
17
|
export declare const MOCK_UPLOAD_TASKS_MULTIPART: MockUploadTasks;
|
|
23
18
|
export {};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const COPY_TABLE_RESOLVERS: CopyTaskTableResolvers;
|
|
1
|
+
import type { FileDataTaskTableResolvers } from './types';
|
|
2
|
+
export declare const COPY_TABLE_RESOLVERS: FileDataTaskTableResolvers;
|
package/dist/types/components/StorageBrowser/views/utils/tableResolvers/deleteResolvers.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const DELETE_TABLE_RESOLVERS: DeleteTableResolvers;
|
|
1
|
+
import type { FileDataTaskTableResolvers } from './types';
|
|
2
|
+
export declare const DELETE_TABLE_RESOLVERS: FileDataTaskTableResolvers;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { COPY_TABLE_RESOLVERS } from './copyResolvers';
|
|
2
2
|
export { UPLOAD_TABLE_KEYS, UPLOAD_TABLE_RESOLVERS } from './uploadResolvers';
|
|
3
|
-
export {
|
|
3
|
+
export { DELETE_TABLE_RESOLVERS } from './deleteResolvers';
|
|
4
|
+
export { FILE_DATA_ITEM_TABLE_KEYS } from './constants';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CopyHandlerData, DeleteHandlerData, UploadHandlerData } from '../../../actions';
|
|
1
|
+
import type { CopyHandlerData, DeleteHandlerData, UploadHandlerData, TaskData, OptionalFileData } from '../../../actions';
|
|
2
2
|
import type { CopyViewDisplayText, DeleteViewDisplayText, UploadViewDisplayText } from '../../../displayText';
|
|
3
3
|
import type { Task } from '../../../tasks';
|
|
4
4
|
import type { DataTableResolvers } from '../../hooks/useResolveTableData';
|
|
@@ -8,6 +8,10 @@ export interface DeleteActionTask extends Task<DeleteHandlerData> {
|
|
|
8
8
|
}
|
|
9
9
|
export interface UploadActionTask extends Task<UploadHandlerData> {
|
|
10
10
|
}
|
|
11
|
+
export interface FileDataTask extends Task<TaskData & OptionalFileData & {
|
|
12
|
+
fileKey: string;
|
|
13
|
+
}> {
|
|
14
|
+
}
|
|
11
15
|
interface ActionTableResolverProps<TDisplayText, TTask> {
|
|
12
16
|
displayText: TDisplayText;
|
|
13
17
|
isProcessing: boolean;
|
|
@@ -20,17 +24,13 @@ export interface DeleteTableResolverProps extends ActionTableResolverProps<Delet
|
|
|
20
24
|
export interface UploadTableResolverProps extends ActionTableResolverProps<UploadViewDisplayText, UploadActionTask> {
|
|
21
25
|
isMultipartUpload: (file: File) => boolean;
|
|
22
26
|
}
|
|
23
|
-
type
|
|
24
|
-
export type
|
|
25
|
-
export type
|
|
26
|
-
export
|
|
27
|
-
export interface CopyTaskTableResolvers extends DataTableResolvers<CopyTableKey, CopyTableResolverProps, CopyActionTask> {
|
|
28
|
-
}
|
|
29
|
-
export interface DeleteTableResolvers extends DataTableResolvers<DeleteTableKey, DeleteTableResolverProps, DeleteActionTask> {
|
|
27
|
+
export type FileDataTaskTableResolverProps = CopyTableResolverProps | DeleteTableResolverProps;
|
|
28
|
+
export type ActionTableKey = 'name' | 'folder' | 'type' | 'size' | 'status' | 'cancel';
|
|
29
|
+
export type UploadTableKey = ActionTableKey | 'progress';
|
|
30
|
+
export interface FileDataTaskTableResolvers extends DataTableResolvers<ActionTableKey, FileDataTaskTableResolverProps, FileDataTask> {
|
|
30
31
|
}
|
|
31
32
|
export interface UploadTableResolvers extends DataTableResolvers<UploadTableKey, UploadTableResolverProps, UploadActionTask> {
|
|
32
33
|
}
|
|
33
|
-
export type
|
|
34
|
-
export type GetDeleteCell = DeleteTableResolvers['getCell'];
|
|
34
|
+
export type GetFileDataCell = FileDataTaskTableResolvers['getCell'];
|
|
35
35
|
export type GetUploadCell = UploadTableResolvers['getCell'];
|
|
36
36
|
export {};
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import type { DataTableButtonDataCell, DataTableNumberDataCell } from '../../../components';
|
|
2
|
-
import type {
|
|
1
|
+
import type { DataTableButtonDataCell, DataTableNumberDataCell, WithKey } from '../../../components';
|
|
2
|
+
import type { FileDataTask, GetFileDataCell, UploadActionTask, ActionTableKey } from './types';
|
|
3
3
|
export declare const getFileType: (value: string, fallback?: string) => string;
|
|
4
4
|
export declare const getCellName: (value: string) => string;
|
|
5
5
|
export declare const getUploadCellFolder: ({ data: { file: { webkitRelativePath }, }, }: UploadActionTask, fallback?: string) => string;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const getDeleteCellFolder: ({ data: { fileKey, key }, }: DeleteActionTask) => string;
|
|
6
|
+
export declare const getFileDataCellFolder: (task: FileDataTask) => string;
|
|
8
7
|
export declare const getUploadCellProgress: ({ progress, status, }: UploadActionTask) => DataTableNumberDataCell['content'];
|
|
9
8
|
export declare const getFileSize: (value: number | undefined, fallback?: string) => string;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
export declare const getFileDataCancelCellContent: <TInput extends WithKey<import("../../hooks/useResolveTableData/types").CellData<import("./types").FileDataTaskTableResolverProps, FileDataTask>, ActionTableKey>, TCallback extends TInput["props"]["onTaskRemove"] extends (item: infer TItem) => void ? (item: TItem) => void : never>(data: TInput) => DataTableButtonDataCell['content'];
|
|
10
|
+
/**
|
|
11
|
+
* Generates a unique key for a table cell based on the key and item id
|
|
12
|
+
*/
|
|
13
|
+
export declare const getFileDataCellKey: ({ key, item, }: WithKey<{
|
|
14
|
+
item: FileDataTask;
|
|
15
|
+
}, ActionTableKey>) => string;
|
|
16
|
+
export declare const name: GetFileDataCell;
|
|
17
|
+
export declare const folder: GetFileDataCell;
|
|
18
|
+
export declare const type: GetFileDataCell;
|
|
19
|
+
export declare const size: GetFileDataCell;
|
|
20
|
+
export declare const cancel: GetFileDataCell;
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.11.0";
|
package/package.json
CHANGED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { noop } from '@aws-amplify/ui';
|
|
3
|
-
import { createContextUtilities } from '@aws-amplify/ui-react-core';
|
|
4
|
-
import { useFileSelect } from '@aws-amplify/ui-react/internal';
|
|
5
|
-
import { filesReducer, parseFileSelectParams } from './utils.mjs';
|
|
6
|
-
|
|
7
|
-
const defaultValue = [undefined, noop];
|
|
8
|
-
const { FilesContext, useFiles } = createContextUtilities({
|
|
9
|
-
contextName: 'Files',
|
|
10
|
-
defaultValue,
|
|
11
|
-
});
|
|
12
|
-
function FilesProvider({ children, }) {
|
|
13
|
-
const [items, dispatch] = React__default.useReducer(filesReducer, []);
|
|
14
|
-
const [fileInput, handleFileSelect] = useFileSelect((nextFiles) => {
|
|
15
|
-
dispatch({ type: 'ADD_FILE_ITEMS', files: nextFiles });
|
|
16
|
-
});
|
|
17
|
-
const handleFilesAction = React__default.useCallback((action) => {
|
|
18
|
-
if (action.type === 'SELECT_FILES') {
|
|
19
|
-
handleFileSelect(...parseFileSelectParams(action.selectionType));
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
dispatch(action);
|
|
23
|
-
}
|
|
24
|
-
}, [handleFileSelect]);
|
|
25
|
-
const value = React__default.useMemo(() => [items, handleFilesAction], [items, handleFilesAction]);
|
|
26
|
-
return (React__default.createElement(FilesContext.Provider, { value: value },
|
|
27
|
-
fileInput,
|
|
28
|
-
children));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export { FilesContext, FilesProvider, useFiles };
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { isUndefined, isString, isEmpty } from '@aws-amplify/ui';
|
|
2
|
-
|
|
3
|
-
const compareFileItems = (prev, next) => prev.key.localeCompare(next.key);
|
|
4
|
-
const resolveFiles = (prevItems, files) => {
|
|
5
|
-
if (!files?.length)
|
|
6
|
-
return prevItems;
|
|
7
|
-
// construct `nextItems` and filter out existing `file` entries
|
|
8
|
-
const nextItems = files.reduce((items, file) => {
|
|
9
|
-
const { name, webkitRelativePath } = file;
|
|
10
|
-
return prevItems.some(({ file: existing }) => existing.name === name &&
|
|
11
|
-
existing.webkitRelativePath === webkitRelativePath)
|
|
12
|
-
? items
|
|
13
|
-
: items.concat({
|
|
14
|
-
key: isEmpty(webkitRelativePath) ? name : webkitRelativePath,
|
|
15
|
-
id: crypto.randomUUID(),
|
|
16
|
-
file,
|
|
17
|
-
});
|
|
18
|
-
}, []);
|
|
19
|
-
if (!nextItems.length)
|
|
20
|
-
return prevItems;
|
|
21
|
-
if (!prevItems.length) {
|
|
22
|
-
return nextItems.sort(compareFileItems);
|
|
23
|
-
}
|
|
24
|
-
return prevItems.concat(nextItems).sort(compareFileItems);
|
|
25
|
-
};
|
|
26
|
-
const filesReducer = (prevItems, input) => {
|
|
27
|
-
switch (input.type) {
|
|
28
|
-
case 'ADD_FILE_ITEMS': {
|
|
29
|
-
return resolveFiles(prevItems, input.files);
|
|
30
|
-
}
|
|
31
|
-
case 'REMOVE_FILE_ITEM': {
|
|
32
|
-
const filteredItems = prevItems.filter(({ id }) => id !== input.id);
|
|
33
|
-
return filteredItems.length === prevItems.length
|
|
34
|
-
? prevItems
|
|
35
|
-
: filteredItems;
|
|
36
|
-
}
|
|
37
|
-
case 'RESET_FILE_ITEMS': {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
// TODO: clear message
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
const parseFileSelectParams = (value) => {
|
|
44
|
-
if (isUndefined(value))
|
|
45
|
-
return ['FILE', undefined];
|
|
46
|
-
if (isString(value))
|
|
47
|
-
return [value, undefined];
|
|
48
|
-
const [selectType, ...rest] = value;
|
|
49
|
-
return [selectType, !rest?.length ? undefined : { accept: rest.join() }];
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export { filesReducer, parseFileSelectParams, resolveFiles };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { FilesContextType, FilesProviderProps } from './types';
|
|
3
|
-
export declare const FilesContext: React.Context<FilesContextType>, useFiles: (params?: {
|
|
4
|
-
errorMessage?: string | undefined;
|
|
5
|
-
} | undefined) => FilesContextType;
|
|
6
|
-
export declare function FilesProvider({ children, }: FilesProviderProps): React.JSX.Element;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { FileItem, LocationItemType } from '../actions';
|
|
2
|
-
/**
|
|
3
|
-
* native OS file picker type. to restrict selectable file types, define the picker types
|
|
4
|
-
* followed by accepted file types as strings
|
|
5
|
-
* @example
|
|
6
|
-
* ```ts
|
|
7
|
-
* type JPEGOnly = ['FOLDER', '.jpeg'];
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
export type SelectionType = LocationItemType | [LocationItemType, ...string[]];
|
|
11
|
-
export type FilesActionType = {
|
|
12
|
-
type: 'ADD_FILE_ITEMS';
|
|
13
|
-
files?: File[];
|
|
14
|
-
} | {
|
|
15
|
-
type: 'REMOVE_FILE_ITEM';
|
|
16
|
-
id: string;
|
|
17
|
-
} | {
|
|
18
|
-
type: 'SELECT_FILES';
|
|
19
|
-
selectionType?: SelectionType;
|
|
20
|
-
} | {
|
|
21
|
-
type: 'RESET_FILE_ITEMS';
|
|
22
|
-
};
|
|
23
|
-
export type HandleFilesAction = (input: FilesActionType) => void;
|
|
24
|
-
export type FileItems = FileItem[];
|
|
25
|
-
export type FilesContextType = [FileItems | undefined, HandleFilesAction];
|
|
26
|
-
export interface FilesProviderProps {
|
|
27
|
-
children?: React.ReactNode;
|
|
28
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type React from 'react';
|
|
2
|
-
import type { FileItems, FilesActionType, SelectionType } from './types';
|
|
3
|
-
export declare const resolveFiles: (prevItems: FileItems, files: File[] | undefined) => FileItems;
|
|
4
|
-
export declare const filesReducer: React.Reducer<FileItems, Exclude<FilesActionType, {
|
|
5
|
-
type: 'SELECT_FILES';
|
|
6
|
-
}>>;
|
|
7
|
-
export declare const parseFileSelectParams: (value?: SelectionType) => [selectType: import("@aws-amplify/ui-react/dist/types/components/FileSelect/FileSelect").SelectType, options?: import("@aws-amplify/ui-react/internal").FileSelectOptions | undefined];
|