@mage-ui/components 1.0.162 → 1.0.164
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/components/controls/file-input/FileInputMultipleS3.d.mts +3 -0
- package/dist/components/controls/file-input/FileInputMultipleS3.d.mts.map +1 -1
- package/dist/components/controls/file-input/FileInputMultipleS3.mjs +1 -1
- package/dist/components/controls/file-input/FileInputMultipleS3.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -6,10 +6,13 @@ import { ReactElement } from "react";
|
|
|
6
6
|
//#region src/components/controls/file-input/FileInputMultipleS3.d.ts
|
|
7
7
|
type FileInputMultipleS3Handle = {
|
|
8
8
|
upload: () => Promise<UploadedS3File[] | null>;
|
|
9
|
+
setPendingFiles: (files: File[] | null) => void;
|
|
9
10
|
};
|
|
10
11
|
type FileInputMultipleS3Props<TBody extends S3InitBody = S3InitBody> = Omit<FileInputMultipleProps, 'onChange'> & S3UploadConfig<TBody> & {
|
|
11
12
|
autoUpload?: boolean;
|
|
13
|
+
accumulate?: boolean;
|
|
12
14
|
onChange?: (results: UploadedS3File[] | null) => void;
|
|
15
|
+
onSelect?: (files: File[] | null) => void;
|
|
13
16
|
};
|
|
14
17
|
declare const FileInputMultipleS3: <TBody extends S3InitBody = S3InitBody>(props: FileInputMultipleS3Props<TBody> & {
|
|
15
18
|
ref?: React.Ref<FileInputMultipleS3Handle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileInputMultipleS3.d.mts","names":[],"sources":["../../../../src/components/controls/file-input/FileInputMultipleS3.tsx"],"mappings":";;;;;;KAuBY,yBAAA;EACV,MAAA,QAAc,OAAA,CAAQ,cAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FileInputMultipleS3.d.mts","names":[],"sources":["../../../../src/components/controls/file-input/FileInputMultipleS3.tsx"],"mappings":";;;;;;KAuBY,yBAAA;EACV,MAAA,QAAc,OAAA,CAAQ,cAAA;EACtB,eAAA,GAAkB,KAAA,EAAO,IAAA;AAAA;AAAA,KAGf,wBAAA,eAAuC,UAAA,GAAa,UAAA,IAC9D,IAAA,CAAK,sBAAA,gBACH,cAAA,CAAe,KAAA;EACb,UAAA;EACA,UAAA;EACA,QAAA,IAAY,OAAA,EAAS,cAAA;EACrB,QAAA,IAAY,KAAA,EAAO,IAAA;AAAA;AAAA,cA2FZ,mBAAA,iBACG,UAAA,GAAa,UAAA,EAE3B,KAAA,EAAO,wBAAA,CAAyB,KAAA;EAC9B,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,yBAAA;AAAA,MAEf,YAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defaultGetErrorMessage as e,useS3Upload as t}from"../dropzone/use-s3-upload.mjs";import{FileInputMultiple as n}from"./FileInputMultiple.mjs";import{jsx as r}from"react/jsx-runtime";import{forwardRef as i,useImperativeHandle as a,useRef as o,useState as s}from"react";function c({onChange:i,autoUpload:
|
|
1
|
+
import{defaultGetErrorMessage as e,useS3Upload as t}from"../dropzone/use-s3-upload.mjs";import{FileInputMultiple as n}from"./FileInputMultiple.mjs";import{jsx as r}from"react/jsx-runtime";import{forwardRef as i,useImperativeHandle as a,useRef as o,useState as s}from"react";function c({onChange:i,onSelect:c,autoUpload:l=!0,accumulate:u=!1,initUrl:d,buildInitBody:f,register:p,getHeaders:m,getErrorMessage:h=e,resolveUploadedUrl:g,acceptedTypes:_,texts:v,error:y,disabled:b,...x},S){let[C,w]=s(null),[T,E]=s(!1),D=o(null),{upload:O}=t({initUrl:d,buildInitBody:f,register:p,getHeaders:m,getErrorMessage:h,resolveUploadedUrl:g,acceptedTypes:_,texts:v}),k=async e=>{E(!0);try{let t=[];for(let n of e)t.push(await O(n));return i?.(t),t}catch(e){return w(e instanceof Error?e.message:`Upload failed`),null}finally{E(!1)}};a(S,()=>({upload:()=>D.current?k(D.current):Promise.resolve(null),setPendingFiles:e=>{D.current=e}}));let A=async e=>{if(w(null),!e){D.current=null,c?.(null),i?.(null);return}let t=u?[...D.current??[],...e]:e;D.current=t,c?.(t),l&&await k(e)};return r(n,{...x,disabled:b??T,error:y??C??void 0,onChange:A})}const l=i(c);export{l as FileInputMultipleS3};
|
|
2
2
|
//# sourceMappingURL=FileInputMultipleS3.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileInputMultipleS3.mjs","names":[],"sources":["../../../../src/components/controls/file-input/FileInputMultipleS3.tsx"],"sourcesContent":["import {\n forwardRef,\n type ReactElement,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport {\n defaultGetErrorMessage,\n type S3InitBody,\n type S3UploadConfig,\n useS3Upload,\n} from '@/components/controls/dropzone/use-s3-upload';\n\nimport {\n FileInputMultiple,\n type FileInputMultipleProps,\n} from './FileInputMultiple';\nimport type { UploadedS3File } from './FileInputS3';\n\nexport type { UploadedS3File };\n\nexport type FileInputMultipleS3Handle = {\n upload: () => Promise<UploadedS3File[] | null>;\n};\n\nexport type FileInputMultipleS3Props<TBody extends S3InitBody = S3InitBody> =\n Omit<FileInputMultipleProps, 'onChange'> &\n S3UploadConfig<TBody> & {\n autoUpload?: boolean;\n onChange?: (results: UploadedS3File[] | null) => void;\n };\n\nfunction FileInputMultipleS3Inner<TBody extends S3InitBody = S3InitBody>(\n {\n onChange,\n autoUpload = true,\n initUrl,\n buildInitBody,\n register,\n getHeaders,\n getErrorMessage = defaultGetErrorMessage,\n resolveUploadedUrl,\n acceptedTypes,\n texts,\n error,\n disabled,\n ...fileInputMultipleProps\n }: FileInputMultipleS3Props<TBody>,\n ref: React.ForwardedRef<FileInputMultipleS3Handle>,\n) {\n const [uploadError, setUploadError] = useState<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n const pendingFilesRef = useRef<File[] | null>(null);\n\n const { upload } = useS3Upload<TBody>({\n initUrl,\n buildInitBody,\n register,\n getHeaders,\n getErrorMessage,\n resolveUploadedUrl,\n acceptedTypes,\n texts,\n });\n\n const doUpload = async (files: File[]): Promise<UploadedS3File[] | null> => {\n setIsUploading(true);\n try {\n const results: UploadedS3File[] = [];\n for (const file of files) {\n results.push(await upload(file));\n }\n onChange?.(results);\n return results;\n } catch (e) {\n setUploadError(e instanceof Error ? e.message : 'Upload failed');\n return null;\n } finally {\n setIsUploading(false);\n }\n };\n\n useImperativeHandle(ref, () => ({\n upload: () => {\n if (!pendingFilesRef.current) return Promise.resolve(null);\n return doUpload(pendingFilesRef.current);\n },\n }));\n\n const handleChange = async (files: File[] | null) => {\n setUploadError(null);\n pendingFilesRef.current =
|
|
1
|
+
{"version":3,"file":"FileInputMultipleS3.mjs","names":[],"sources":["../../../../src/components/controls/file-input/FileInputMultipleS3.tsx"],"sourcesContent":["import {\n forwardRef,\n type ReactElement,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport {\n defaultGetErrorMessage,\n type S3InitBody,\n type S3UploadConfig,\n useS3Upload,\n} from '@/components/controls/dropzone/use-s3-upload';\n\nimport {\n FileInputMultiple,\n type FileInputMultipleProps,\n} from './FileInputMultiple';\nimport type { UploadedS3File } from './FileInputS3';\n\nexport type { UploadedS3File };\n\nexport type FileInputMultipleS3Handle = {\n upload: () => Promise<UploadedS3File[] | null>;\n setPendingFiles: (files: File[] | null) => void;\n};\n\nexport type FileInputMultipleS3Props<TBody extends S3InitBody = S3InitBody> =\n Omit<FileInputMultipleProps, 'onChange'> &\n S3UploadConfig<TBody> & {\n autoUpload?: boolean;\n accumulate?: boolean;\n onChange?: (results: UploadedS3File[] | null) => void;\n onSelect?: (files: File[] | null) => void;\n };\n\nfunction FileInputMultipleS3Inner<TBody extends S3InitBody = S3InitBody>(\n {\n onChange,\n onSelect,\n autoUpload = true,\n accumulate = false,\n initUrl,\n buildInitBody,\n register,\n getHeaders,\n getErrorMessage = defaultGetErrorMessage,\n resolveUploadedUrl,\n acceptedTypes,\n texts,\n error,\n disabled,\n ...fileInputMultipleProps\n }: FileInputMultipleS3Props<TBody>,\n ref: React.ForwardedRef<FileInputMultipleS3Handle>,\n) {\n const [uploadError, setUploadError] = useState<string | null>(null);\n const [isUploading, setIsUploading] = useState(false);\n const pendingFilesRef = useRef<File[] | null>(null);\n\n const { upload } = useS3Upload<TBody>({\n initUrl,\n buildInitBody,\n register,\n getHeaders,\n getErrorMessage,\n resolveUploadedUrl,\n acceptedTypes,\n texts,\n });\n\n const doUpload = async (files: File[]): Promise<UploadedS3File[] | null> => {\n setIsUploading(true);\n try {\n const results: UploadedS3File[] = [];\n for (const file of files) {\n results.push(await upload(file));\n }\n onChange?.(results);\n return results;\n } catch (e) {\n setUploadError(e instanceof Error ? e.message : 'Upload failed');\n return null;\n } finally {\n setIsUploading(false);\n }\n };\n\n useImperativeHandle(ref, () => ({\n upload: () => {\n if (!pendingFilesRef.current) return Promise.resolve(null);\n return doUpload(pendingFilesRef.current);\n },\n setPendingFiles: (files) => {\n pendingFilesRef.current = files;\n },\n }));\n\n const handleChange = async (files: File[] | null) => {\n setUploadError(null);\n if (!files) {\n pendingFilesRef.current = null;\n onSelect?.(null);\n onChange?.(null);\n return;\n }\n const merged = accumulate\n ? [...(pendingFilesRef.current ?? []), ...files]\n : files;\n pendingFilesRef.current = merged;\n onSelect?.(merged);\n if (autoUpload) await doUpload(files);\n };\n\n return (\n <FileInputMultiple\n {...fileInputMultipleProps}\n disabled={disabled ?? isUploading}\n error={error ?? uploadError ?? undefined}\n onChange={handleChange}\n />\n );\n}\n\nexport const FileInputMultipleS3 = forwardRef(FileInputMultipleS3Inner) as <\n TBody extends S3InitBody = S3InitBody,\n>(\n props: FileInputMultipleS3Props<TBody> & {\n ref?: React.Ref<FileInputMultipleS3Handle>;\n },\n) => ReactElement;\n"],"mappings":"kRAqCA,SAAS,EACP,CACE,WACA,WACA,aAAa,GACb,aAAa,GACb,UACA,gBACA,WACA,aACA,kBAAkB,EAClB,qBACA,gBACA,QACA,QACA,WACA,GAAG,GAEL,EACA,CACA,GAAM,CAAC,EAAa,GAAkB,EAAwB,KAAK,CAC7D,CAAC,EAAa,GAAkB,EAAS,GAAM,CAC/C,EAAkB,EAAsB,KAAK,CAE7C,CAAE,UAAW,EAAmB,CACpC,UACA,gBACA,WACA,aACA,kBACA,qBACA,gBACA,QACD,CAAC,CAEI,EAAW,KAAO,IAAoD,CAC1E,EAAe,GAAK,CACpB,GAAI,CACF,IAAM,EAA4B,EAAE,CACpC,IAAK,IAAM,KAAQ,EACjB,EAAQ,KAAK,MAAM,EAAO,EAAK,CAAC,CAGlC,OADA,IAAW,EAAQ,CACZ,QACA,EAAG,CAEV,OADA,EAAe,aAAa,MAAQ,EAAE,QAAU,gBAAgB,CACzD,YACC,CACR,EAAe,GAAM,GAIzB,EAAoB,OAAY,CAC9B,WACO,EAAgB,QACd,EAAS,EAAgB,QAAQ,CADH,QAAQ,QAAQ,KAAK,CAG5D,gBAAkB,GAAU,CAC1B,EAAgB,QAAU,GAE7B,EAAE,CAEH,IAAM,EAAe,KAAO,IAAyB,CAEnD,GADA,EAAe,KAAK,CAChB,CAAC,EAAO,CACV,EAAgB,QAAU,KAC1B,IAAW,KAAK,CAChB,IAAW,KAAK,CAChB,OAEF,IAAM,EAAS,EACX,CAAC,GAAI,EAAgB,SAAW,EAAE,CAAG,GAAG,EAAM,CAC9C,EACJ,EAAgB,QAAU,EAC1B,IAAW,EAAO,CACd,GAAY,MAAM,EAAS,EAAM,EAGvC,OACE,EAAC,EAAD,CACE,GAAI,EACJ,SAAU,GAAY,EACtB,MAAO,GAAS,GAAe,IAAA,GAC/B,SAAU,EACV,CAAA,CAIN,MAAa,EAAsB,EAAW,EAAyB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mage-ui/components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.164",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [],
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"rimraf": "^6.1.3",
|
|
26
26
|
"tsdown": "^0.21.4",
|
|
27
27
|
"typescript": "^5.9.3",
|
|
28
|
-
"@mage-ui/
|
|
29
|
-
"@mage-ui/
|
|
28
|
+
"@mage-ui/styled-system": "1.0.8",
|
|
29
|
+
"@mage-ui/preset": "1.0.164"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@dnd-kit/core": "^6.3.1",
|