@plasmicpkgs/antd5 0.0.189 → 0.0.190
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/.tsbuildinfo +1 -1
- package/dist/antd.esm.js +10 -6
- package/dist/antd.esm.js.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/skinny/registerUpload.cjs.js +10 -6
- package/skinny/registerUpload.cjs.js.map +1 -1
- package/skinny/registerUpload.esm.js +10 -6
- package/skinny/registerUpload.esm.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/antd5",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.190",
|
|
4
4
|
"description": "Plasmic registration calls for antd components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -108,5 +108,5 @@
|
|
|
108
108
|
"publishConfig": {
|
|
109
109
|
"access": "public"
|
|
110
110
|
},
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "e0516f10c0a328e24f2f684b3e414184ea39915e"
|
|
112
112
|
}
|
|
@@ -48,7 +48,7 @@ function getThumbUrl(file) {
|
|
|
48
48
|
return `data:${file.type};base64,${file.contents}`;
|
|
49
49
|
}
|
|
50
50
|
function UploadWrapper(props) {
|
|
51
|
-
const _a = props, { files, dragAndDropFiles, onFilesChange } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange"]);
|
|
51
|
+
const _a = props, { files, dragAndDropFiles, onFilesChange, maxCount } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange", "maxCount"]);
|
|
52
52
|
const filesRef = React.useRef();
|
|
53
53
|
filesRef.current = files;
|
|
54
54
|
const [previewFileId, setPreviewFileId] = React.useState();
|
|
@@ -66,16 +66,18 @@ function UploadWrapper(props) {
|
|
|
66
66
|
lastModified: file.lastModified
|
|
67
67
|
};
|
|
68
68
|
onFilesChange == null ? void 0 : onFilesChange([
|
|
69
|
-
...(_a2 = filesRef.current) != null ? _a2 : [],
|
|
69
|
+
...((_a2 = filesRef.current) != null ? _a2 : []).slice(0, (maxCount || Infinity) - 1),
|
|
70
70
|
__spreadProps(__spreadValues({}, metadata), {
|
|
71
71
|
status: "uploading"
|
|
72
72
|
})
|
|
73
73
|
]);
|
|
74
74
|
const reader = new FileReader();
|
|
75
75
|
reader.onload = () => {
|
|
76
|
-
var _a3;
|
|
76
|
+
var _a3, _b;
|
|
77
|
+
if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
|
|
78
|
+
return;
|
|
77
79
|
onFilesChange == null ? void 0 : onFilesChange([
|
|
78
|
-
...((
|
|
80
|
+
...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
|
|
79
81
|
__spreadProps(__spreadValues({}, metadata), {
|
|
80
82
|
contents: reader.result.replace(
|
|
81
83
|
/^data:[^;]+;base64,/,
|
|
@@ -86,9 +88,11 @@ function UploadWrapper(props) {
|
|
|
86
88
|
]);
|
|
87
89
|
};
|
|
88
90
|
reader.onerror = (error) => {
|
|
89
|
-
var _a3;
|
|
91
|
+
var _a3, _b;
|
|
92
|
+
if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
|
|
93
|
+
return;
|
|
90
94
|
onFilesChange == null ? void 0 : onFilesChange([
|
|
91
|
-
...((
|
|
95
|
+
...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
|
|
92
96
|
__spreadProps(__spreadValues({}, metadata), {
|
|
93
97
|
status: "error"
|
|
94
98
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerUpload.cjs.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["useRef","useState","_a","useMemo","Upload","React","Modal","registerComponentHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerUpload.cjs.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, maxCount, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []).slice(0, (maxCount || Infinity) - 1),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["useRef","useState","_a","useMemo","Upload","React","Modal","registerComponentHelper"],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ function getThumbUrl(file) {
|
|
|
42
42
|
return `data:${file.type};base64,${file.contents}`;
|
|
43
43
|
}
|
|
44
44
|
function UploadWrapper(props) {
|
|
45
|
-
const _a = props, { files, dragAndDropFiles, onFilesChange } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange"]);
|
|
45
|
+
const _a = props, { files, dragAndDropFiles, onFilesChange, maxCount } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange", "maxCount"]);
|
|
46
46
|
const filesRef = useRef();
|
|
47
47
|
filesRef.current = files;
|
|
48
48
|
const [previewFileId, setPreviewFileId] = useState();
|
|
@@ -60,16 +60,18 @@ function UploadWrapper(props) {
|
|
|
60
60
|
lastModified: file.lastModified
|
|
61
61
|
};
|
|
62
62
|
onFilesChange == null ? void 0 : onFilesChange([
|
|
63
|
-
...(_a2 = filesRef.current) != null ? _a2 : [],
|
|
63
|
+
...((_a2 = filesRef.current) != null ? _a2 : []).slice(0, (maxCount || Infinity) - 1),
|
|
64
64
|
__spreadProps(__spreadValues({}, metadata), {
|
|
65
65
|
status: "uploading"
|
|
66
66
|
})
|
|
67
67
|
]);
|
|
68
68
|
const reader = new FileReader();
|
|
69
69
|
reader.onload = () => {
|
|
70
|
-
var _a3;
|
|
70
|
+
var _a3, _b;
|
|
71
|
+
if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
|
|
72
|
+
return;
|
|
71
73
|
onFilesChange == null ? void 0 : onFilesChange([
|
|
72
|
-
...((
|
|
74
|
+
...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
|
|
73
75
|
__spreadProps(__spreadValues({}, metadata), {
|
|
74
76
|
contents: reader.result.replace(
|
|
75
77
|
/^data:[^;]+;base64,/,
|
|
@@ -80,9 +82,11 @@ function UploadWrapper(props) {
|
|
|
80
82
|
]);
|
|
81
83
|
};
|
|
82
84
|
reader.onerror = (error) => {
|
|
83
|
-
var _a3;
|
|
85
|
+
var _a3, _b;
|
|
86
|
+
if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
|
|
87
|
+
return;
|
|
84
88
|
onFilesChange == null ? void 0 : onFilesChange([
|
|
85
|
-
...((
|
|
89
|
+
...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
|
|
86
90
|
__spreadProps(__spreadValues({}, metadata), {
|
|
87
91
|
status: "error"
|
|
88
92
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerUpload.esm.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerUpload.esm.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, maxCount, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []).slice(0, (maxCount || Infinity) - 1),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
|