@faststore/components 4.3.0-dev.1 → 4.3.0-dev.2
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/cjs/index.js +10 -27
- package/dist/es/index.mjs +2962 -3555
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/molecules/FileUploadCard/FileUploadCard.d.ts +10 -1
- package/dist/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -1
- package/dist/molecules/FileUploadStatus/FileUploadStatus.d.ts +7 -1
- package/dist/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/index.ts +0 -6
- package/src/molecules/FileUploadCard/FileUploadCard.tsx +28 -13
- package/src/molecules/FileUploadStatus/FileUploadStatus.tsx +15 -0
- package/dist/hooks/useCSVParser.d.ts +0 -43
- package/dist/hooks/useCSVParser.d.ts.map +0 -1
- package/src/hooks/useCSVParser.ts +0 -367
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { regionSliderTypes, default as UIProvider, useUI, type Toast as ToastProps, } from './UIProvider';
|
|
2
|
-
export { useCSVParser } from './useCSVParser';
|
|
3
|
-
export type { CSVData, CSVParserError, CSVParserOptions, } from './useCSVParser';
|
|
4
2
|
export { useFadeEffect } from './useFadeEffect';
|
|
5
3
|
export { FileRejectionCode, useFileUpload } from './useFileUpload';
|
|
6
4
|
export { useOnClickOutside } from './useOnClickOutside';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,IAAI,UAAU,EACrB,KAAK,EACL,KAAK,KAAK,IAAI,UAAU,GACzB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,IAAI,UAAU,EACrB,KAAK,EACL,KAAK,KAAK,IAAI,UAAU,GACzB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -71,6 +71,11 @@ export interface FileUploadCardProps extends Omit<HTMLAttributes<HTMLDivElement>
|
|
|
71
71
|
* Status text when uploading in FileUploadStatus (e.g. from CMS).
|
|
72
72
|
*/
|
|
73
73
|
uploadingStatusText: string;
|
|
74
|
+
/**
|
|
75
|
+
* Status text when processing/polling in FileUploadStatus (e.g. from CMS).
|
|
76
|
+
* @default 'Importing...'
|
|
77
|
+
*/
|
|
78
|
+
processingStatusText?: string;
|
|
74
79
|
/**
|
|
75
80
|
* Status text when completed in FileUploadStatus (e.g. from CMS). Receives file size in bytes.
|
|
76
81
|
*/
|
|
@@ -94,6 +99,10 @@ export interface FileUploadCardProps extends Omit<HTMLAttributes<HTMLDivElement>
|
|
|
94
99
|
* Indicates if the file is being uploaded.
|
|
95
100
|
*/
|
|
96
101
|
isUploading?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Indicates if the OES operation is polling/processing after upload.
|
|
104
|
+
*/
|
|
105
|
+
isProcessing?: boolean;
|
|
97
106
|
/**
|
|
98
107
|
* Indicates if there was an error during file upload.
|
|
99
108
|
*/
|
|
@@ -107,6 +116,6 @@ export interface FileUploadCardProps extends Omit<HTMLAttributes<HTMLDivElement>
|
|
|
107
116
|
*/
|
|
108
117
|
errorMessage?: string;
|
|
109
118
|
}
|
|
110
|
-
declare const FileUploadCard: ({ testId, isOpen, onDismiss, onFileSelect, onDownloadTemplate, onSearch, accept, multiple, title, fileInputAriaLabel, dropzoneAriaLabel, dropzoneTitle, selectFileButtonLabel, downloadTemplateButtonLabel, removeButtonAriaLabel, searchButtonLabel, uploadingStatusText, getCompletedStatusText, errorMessages, formatterFileSize, formatterFileName, isUploading, hasError, errorType: errorTypeProp, errorMessage, ...otherProps }: FileUploadCardProps) => React.JSX.Element;
|
|
119
|
+
declare const FileUploadCard: ({ testId, isOpen, onDismiss, onFileSelect, onDownloadTemplate, onSearch, accept, multiple, title, fileInputAriaLabel, dropzoneAriaLabel, dropzoneTitle, selectFileButtonLabel, downloadTemplateButtonLabel, removeButtonAriaLabel, searchButtonLabel, uploadingStatusText, processingStatusText, getCompletedStatusText, errorMessages, formatterFileSize, formatterFileName, isUploading, isProcessing, hasError, errorType: errorTypeProp, errorMessage, ...otherProps }: FileUploadCardProps) => React.JSX.Element;
|
|
111
120
|
export default FileUploadCard;
|
|
112
121
|
//# sourceMappingURL=FileUploadCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadCard.d.ts","sourceRoot":"","sources":["../../../src/molecules/FileUploadCard/FileUploadCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAI1D,OAAyB,EACvB,mBAAmB,EAEpB,MAAM,sCAAsC,CAAA;AAE7C,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IACtC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IACpD;;OAEG;IACH,aAAa,EAAE,OAAO,CACpB,MAAM,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE,CAAA;IACD;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,QAAA,MAAM,cAAc,GAAI,
|
|
1
|
+
{"version":3,"file":"FileUploadCard.d.ts","sourceRoot":"","sources":["../../../src/molecules/FileUploadCard/FileUploadCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAI1D,OAAyB,EACvB,mBAAmB,EAEpB,MAAM,sCAAsC,CAAA;AAE7C,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IACtC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IACpD;;OAEG;IACH,aAAa,EAAE,OAAO,CACpB,MAAM,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE,CAAA;IACD;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,QAAA,MAAM,cAAc,GAAI,4cA6BrB,mBAAmB,sBAsQrB,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HTMLAttributes, default as React } from 'react';
|
|
2
2
|
export declare enum FileUploadState {
|
|
3
3
|
Uploading = "uploading",
|
|
4
|
+
Processing = "processing",
|
|
4
5
|
Completed = "completed",
|
|
5
6
|
Error = "error"
|
|
6
7
|
}
|
|
@@ -78,6 +79,11 @@ export interface FileUploadStatusProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
78
79
|
* Status text when state is Uploading (e.g. from CMS).
|
|
79
80
|
*/
|
|
80
81
|
uploadingStatusText: string;
|
|
82
|
+
/**
|
|
83
|
+
* Status text when state is Processing/polling (e.g. from CMS).
|
|
84
|
+
* @default 'Importing...'
|
|
85
|
+
*/
|
|
86
|
+
processingStatusText?: string;
|
|
81
87
|
/**
|
|
82
88
|
* Status text when state is Completed (e.g. from CMS). May include file size.
|
|
83
89
|
*/
|
|
@@ -87,6 +93,6 @@ export interface FileUploadStatusProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
87
93
|
*/
|
|
88
94
|
fileName?: string;
|
|
89
95
|
}
|
|
90
|
-
declare const FileUploadStatus: ({ testId, file, state, errorType, errorMessage, onRemove, onSearch, onDownloadTemplate, onSelectFile, removeButtonAriaLabel, searchButtonLabel, downloadTemplateButtonLabel, selectFileButtonLabel, errorMessages, uploadingStatusText, completedStatusText, fileName, ...otherProps }: FileUploadStatusProps) => React.JSX.Element;
|
|
96
|
+
declare const FileUploadStatus: ({ testId, file, state, errorType, errorMessage, onRemove, onSearch, onDownloadTemplate, onSelectFile, removeButtonAriaLabel, searchButtonLabel, downloadTemplateButtonLabel, selectFileButtonLabel, errorMessages, uploadingStatusText, processingStatusText, completedStatusText, fileName, ...otherProps }: FileUploadStatusProps) => React.JSX.Element;
|
|
91
97
|
export default FileUploadStatus;
|
|
92
98
|
//# sourceMappingURL=FileUploadStatus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadStatus.d.ts","sourceRoot":"","sources":["../../../src/molecules/FileUploadStatus/FileUploadStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,gBAAgB,sBAAsB;IACtC,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,eAAe,sBAAsB;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IACV;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,aAAa,EAAE,OAAO,CACpB,MAAM,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE,CAAA;IACD;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB,GAAI,
|
|
1
|
+
{"version":3,"file":"FileUploadStatus.d.ts","sourceRoot":"","sources":["../../../src/molecules/FileUploadStatus/FileUploadStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,gBAAgB,sBAAsB;IACtC,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,eAAe,sBAAsB;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IACV;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,aAAa,EAAE,OAAO,CACpB,MAAM,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE,CAAA;IACD;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB,GAAI,8SAoBvB,qBAAqB,sBAqJvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
package/package.json
CHANGED
package/src/hooks/index.ts
CHANGED
|
@@ -4,12 +4,6 @@ export {
|
|
|
4
4
|
useUI,
|
|
5
5
|
type Toast as ToastProps,
|
|
6
6
|
} from './UIProvider'
|
|
7
|
-
export { useCSVParser } from './useCSVParser'
|
|
8
|
-
export type {
|
|
9
|
-
CSVData,
|
|
10
|
-
CSVParserError,
|
|
11
|
-
CSVParserOptions,
|
|
12
|
-
} from './useCSVParser'
|
|
13
7
|
export { useFadeEffect } from './useFadeEffect'
|
|
14
8
|
export { FileRejectionCode, useFileUpload } from './useFileUpload'
|
|
15
9
|
export { useOnClickOutside } from './useOnClickOutside'
|
|
@@ -80,6 +80,11 @@ export interface FileUploadCardProps
|
|
|
80
80
|
* Status text when uploading in FileUploadStatus (e.g. from CMS).
|
|
81
81
|
*/
|
|
82
82
|
uploadingStatusText: string
|
|
83
|
+
/**
|
|
84
|
+
* Status text when processing/polling in FileUploadStatus (e.g. from CMS).
|
|
85
|
+
* @default 'Importing...'
|
|
86
|
+
*/
|
|
87
|
+
processingStatusText?: string
|
|
83
88
|
/**
|
|
84
89
|
* Status text when completed in FileUploadStatus (e.g. from CMS). Receives file size in bytes.
|
|
85
90
|
*/
|
|
@@ -102,6 +107,10 @@ export interface FileUploadCardProps
|
|
|
102
107
|
* Indicates if the file is being uploaded.
|
|
103
108
|
*/
|
|
104
109
|
isUploading?: boolean
|
|
110
|
+
/**
|
|
111
|
+
* Indicates if the OES operation is polling/processing after upload.
|
|
112
|
+
*/
|
|
113
|
+
isProcessing?: boolean
|
|
105
114
|
/**
|
|
106
115
|
* Indicates if there was an error during file upload.
|
|
107
116
|
*/
|
|
@@ -134,11 +143,13 @@ const FileUploadCard = ({
|
|
|
134
143
|
removeButtonAriaLabel,
|
|
135
144
|
searchButtonLabel,
|
|
136
145
|
uploadingStatusText,
|
|
146
|
+
processingStatusText,
|
|
137
147
|
getCompletedStatusText,
|
|
138
148
|
errorMessages,
|
|
139
149
|
formatterFileSize,
|
|
140
150
|
formatterFileName,
|
|
141
151
|
isUploading = false,
|
|
152
|
+
isProcessing = false,
|
|
142
153
|
hasError = false,
|
|
143
154
|
errorType: errorTypeProp,
|
|
144
155
|
errorMessage,
|
|
@@ -146,6 +157,7 @@ const FileUploadCard = ({
|
|
|
146
157
|
}: FileUploadCardProps) => {
|
|
147
158
|
const fileInputRef = useRef<HTMLInputElement>(null)
|
|
148
159
|
const containerRef = useRef<HTMLDivElement>(null)
|
|
160
|
+
const fileTypeErrorRef = useRef<FileUploadErrorType | undefined>(undefined)
|
|
149
161
|
const [dragActive, setDragActive] = useState(false)
|
|
150
162
|
const [selectedFile, setSelectedFile] = useState<File | null>(null)
|
|
151
163
|
const [uploadState, setUploadState] = useState<FileUploadState>(
|
|
@@ -174,6 +186,7 @@ const FileUploadCard = ({
|
|
|
174
186
|
|
|
175
187
|
useEffect(() => {
|
|
176
188
|
if (!selectedFile) return
|
|
189
|
+
if (fileTypeErrorRef.current) return
|
|
177
190
|
|
|
178
191
|
if (hasError) {
|
|
179
192
|
setUploadState(FileUploadState.Error)
|
|
@@ -187,9 +200,15 @@ const FileUploadCard = ({
|
|
|
187
200
|
return
|
|
188
201
|
}
|
|
189
202
|
|
|
203
|
+
if (isProcessing) {
|
|
204
|
+
setUploadState(FileUploadState.Processing)
|
|
205
|
+
setErrorType(undefined)
|
|
206
|
+
return
|
|
207
|
+
}
|
|
208
|
+
|
|
190
209
|
setUploadState(FileUploadState.Completed)
|
|
191
210
|
setErrorType(undefined)
|
|
192
|
-
}, [hasError, selectedFile, isUploading, errorTypeProp])
|
|
211
|
+
}, [hasError, selectedFile, isUploading, isProcessing, errorTypeProp])
|
|
193
212
|
|
|
194
213
|
const isValidFileType = (file: File): boolean => {
|
|
195
214
|
const fileName = file.name.toLowerCase()
|
|
@@ -216,18 +235,15 @@ const FileUploadCard = ({
|
|
|
216
235
|
setSelectedFile(file)
|
|
217
236
|
|
|
218
237
|
if (!isValidFileType(file)) {
|
|
238
|
+
fileTypeErrorRef.current = FileUploadErrorType.Unsupported
|
|
219
239
|
setUploadState(FileUploadState.Error)
|
|
220
240
|
setErrorType(FileUploadErrorType.Unsupported)
|
|
221
241
|
return
|
|
222
242
|
}
|
|
223
243
|
|
|
244
|
+
fileTypeErrorRef.current = undefined
|
|
224
245
|
setErrorType(undefined)
|
|
225
|
-
|
|
226
|
-
if (isUploading) {
|
|
227
|
-
setUploadState(FileUploadState.Uploading)
|
|
228
|
-
} else {
|
|
229
|
-
setUploadState(FileUploadState.Completed)
|
|
230
|
-
}
|
|
246
|
+
setUploadState(FileUploadState.Uploading)
|
|
231
247
|
|
|
232
248
|
if (onFileSelect) {
|
|
233
249
|
onFileSelect(files)
|
|
@@ -258,18 +274,15 @@ const FileUploadCard = ({
|
|
|
258
274
|
setSelectedFile(file)
|
|
259
275
|
|
|
260
276
|
if (!isValidFileType(file)) {
|
|
277
|
+
fileTypeErrorRef.current = FileUploadErrorType.Unsupported
|
|
261
278
|
setUploadState(FileUploadState.Error)
|
|
262
279
|
setErrorType(FileUploadErrorType.Unsupported)
|
|
263
280
|
return
|
|
264
281
|
}
|
|
265
282
|
|
|
283
|
+
fileTypeErrorRef.current = undefined
|
|
266
284
|
setErrorType(undefined)
|
|
267
|
-
|
|
268
|
-
if (isUploading) {
|
|
269
|
-
setUploadState(FileUploadState.Uploading)
|
|
270
|
-
} else {
|
|
271
|
-
setUploadState(FileUploadState.Completed)
|
|
272
|
-
}
|
|
285
|
+
setUploadState(FileUploadState.Uploading)
|
|
273
286
|
|
|
274
287
|
if (onFileSelect) {
|
|
275
288
|
onFileSelect(files)
|
|
@@ -300,6 +313,7 @@ const FileUploadCard = ({
|
|
|
300
313
|
}
|
|
301
314
|
|
|
302
315
|
const handleRemoveFile = () => {
|
|
316
|
+
fileTypeErrorRef.current = undefined
|
|
303
317
|
setSelectedFile(null)
|
|
304
318
|
setUploadState(FileUploadState.Uploading)
|
|
305
319
|
setErrorType(undefined)
|
|
@@ -351,6 +365,7 @@ const FileUploadCard = ({
|
|
|
351
365
|
downloadTemplateButtonLabel={downloadTemplateButtonLabel}
|
|
352
366
|
selectFileButtonLabel={selectFileButtonLabel}
|
|
353
367
|
uploadingStatusText={uploadingStatusText}
|
|
368
|
+
processingStatusText={processingStatusText}
|
|
354
369
|
completedStatusText={getCompletedStatusText(selectedFile.size)}
|
|
355
370
|
fileName={
|
|
356
371
|
formatterFileName
|
|
@@ -5,6 +5,7 @@ import { Button, Icon } from '../..'
|
|
|
5
5
|
|
|
6
6
|
export enum FileUploadState {
|
|
7
7
|
Uploading = 'uploading',
|
|
8
|
+
Processing = 'processing',
|
|
8
9
|
Completed = 'completed',
|
|
9
10
|
Error = 'error',
|
|
10
11
|
}
|
|
@@ -83,6 +84,11 @@ export interface FileUploadStatusProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
83
84
|
* Status text when state is Uploading (e.g. from CMS).
|
|
84
85
|
*/
|
|
85
86
|
uploadingStatusText: string
|
|
87
|
+
/**
|
|
88
|
+
* Status text when state is Processing/polling (e.g. from CMS).
|
|
89
|
+
* @default 'Importing...'
|
|
90
|
+
*/
|
|
91
|
+
processingStatusText?: string
|
|
86
92
|
/**
|
|
87
93
|
* Status text when state is Completed (e.g. from CMS). May include file size.
|
|
88
94
|
*/
|
|
@@ -109,6 +115,7 @@ const FileUploadStatus = ({
|
|
|
109
115
|
selectFileButtonLabel,
|
|
110
116
|
errorMessages,
|
|
111
117
|
uploadingStatusText,
|
|
118
|
+
processingStatusText,
|
|
112
119
|
completedStatusText,
|
|
113
120
|
fileName,
|
|
114
121
|
...otherProps
|
|
@@ -134,6 +141,8 @@ const FileUploadStatus = ({
|
|
|
134
141
|
switch (state) {
|
|
135
142
|
case FileUploadState.Uploading:
|
|
136
143
|
return uploadingStatusText
|
|
144
|
+
case FileUploadState.Processing:
|
|
145
|
+
return processingStatusText ?? 'Importing...'
|
|
137
146
|
case FileUploadState.Completed:
|
|
138
147
|
return completedStatusText
|
|
139
148
|
default:
|
|
@@ -149,6 +158,12 @@ const FileUploadStatus = ({
|
|
|
149
158
|
<Icon name="CircleNotch" width={24} height={24} strokeWidth={5} />
|
|
150
159
|
</div>
|
|
151
160
|
)
|
|
161
|
+
case FileUploadState.Processing:
|
|
162
|
+
return (
|
|
163
|
+
<div data-fs-file-upload-status-icon-processing>
|
|
164
|
+
<Icon name="CircleNotch" width={24} height={24} strokeWidth={5} />
|
|
165
|
+
</div>
|
|
166
|
+
)
|
|
152
167
|
case FileUploadState.Completed:
|
|
153
168
|
return (
|
|
154
169
|
<div data-fs-file-upload-status-icon-completed>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export interface WorkerCSVData {
|
|
2
|
-
data: Array<{
|
|
3
|
-
sku: string;
|
|
4
|
-
quantity: number;
|
|
5
|
-
}>;
|
|
6
|
-
fileName: string;
|
|
7
|
-
totalRows: number;
|
|
8
|
-
fileSize: number;
|
|
9
|
-
}
|
|
10
|
-
export interface WorkerCSVOptions {
|
|
11
|
-
skuColumnNames?: string[];
|
|
12
|
-
quantityColumnNames?: string[];
|
|
13
|
-
delimiter?: string;
|
|
14
|
-
skipEmptyLines?: boolean;
|
|
15
|
-
chunkSize?: number;
|
|
16
|
-
onProgress?: (progress: {
|
|
17
|
-
processed: number;
|
|
18
|
-
total: number;
|
|
19
|
-
percentage: number;
|
|
20
|
-
}) => void;
|
|
21
|
-
}
|
|
22
|
-
export type CSVData = WorkerCSVData;
|
|
23
|
-
export type CSVParserOptions = WorkerCSVOptions;
|
|
24
|
-
export type CSVParserError = {
|
|
25
|
-
message: string;
|
|
26
|
-
type: 'PARSE_ERROR' | 'VALIDATION_ERROR' | 'FILE_ERROR';
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Hook to parse CSV files containing SKU and Quantity columns.
|
|
30
|
-
* Utilizes PapaParse's native Web Worker for efficient parsing of large files.
|
|
31
|
-
* Supports both comma (,) and semicolon (;) delimiters - automatically detects which one is used.
|
|
32
|
-
* @param options CSV parsing options
|
|
33
|
-
* @returns Object containing parsing state and functions
|
|
34
|
-
*/
|
|
35
|
-
export declare function useCSVParser(options?: CSVParserOptions): {
|
|
36
|
-
error: CSVParserError | null;
|
|
37
|
-
isParsing: boolean;
|
|
38
|
-
isGeneratingTemplate: boolean;
|
|
39
|
-
onParseFile: (file: File) => Promise<CSVData | null>;
|
|
40
|
-
onGenerateTemplate: () => Promise<string | null>;
|
|
41
|
-
onClearError: () => void;
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=useCSVParser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCSVParser.d.ts","sourceRoot":"","sources":["../../src/hooks/useCSVParser.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9C,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;KACnB,KAAK,IAAI,CAAA;CACX;AAED,MAAM,MAAM,OAAO,GAAG,aAAa,CAAA;AACnC,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAA;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,aAAa,GAAG,kBAAkB,GAAG,YAAY,CAAA;CACxD,CAAA;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB;;;;wBAWtC,IAAI,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;8BAsBI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;EA8BxE"}
|