@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.
@@ -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,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EACV,OAAO,EACP,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,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"}
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,waA2BrB,mBAAmB,sBAkQrB,CAAA;AAED,eAAe,cAAc,CAAA"}
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,wRAmBvB,qBAAqB,sBA6IvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/components",
3
- "version": "4.3.0-dev.1",
3
+ "version": "4.3.0-dev.2",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/es/index.mjs",
6
6
  "typings": "dist/index.d.ts",
@@ -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"}