@fctc/sme-widget-ui 1.8.8 → 1.8.10
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/index.js +44 -52
- package/dist/index.mjs +44 -52
- package/dist/widgets.d.mts +2 -2
- package/dist/widgets.d.ts +2 -2
- package/dist/widgets.js +44 -52
- package/dist/widgets.mjs +44 -52
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -16835,7 +16835,7 @@ var ButtonSelectFiles = ({
|
|
|
16835
16835
|
id,
|
|
16836
16836
|
widget,
|
|
16837
16837
|
useUploadImage,
|
|
16838
|
-
|
|
16838
|
+
useUploadFile
|
|
16839
16839
|
}) => {
|
|
16840
16840
|
const { t: t3 } = useI18n();
|
|
16841
16841
|
const ALLOWED_TYPES = [
|
|
@@ -16850,42 +16850,8 @@ var ButtonSelectFiles = ({
|
|
|
16850
16850
|
];
|
|
16851
16851
|
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
16852
16852
|
const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
|
|
16853
|
-
const
|
|
16854
|
-
const { mutate
|
|
16855
|
-
const handleUploadImage = async ({ formData }) => {
|
|
16856
|
-
console.log("data", formData);
|
|
16857
|
-
if (widget !== "many2many_binary") {
|
|
16858
|
-
onUploadImage(
|
|
16859
|
-
{ formData },
|
|
16860
|
-
{
|
|
16861
|
-
onSuccess: (data) => {
|
|
16862
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16863
|
-
const files = [...selectedFiles, formatData];
|
|
16864
|
-
setSelectedFiles(files);
|
|
16865
|
-
y2.success(t3("upload_success"));
|
|
16866
|
-
},
|
|
16867
|
-
onError: () => {
|
|
16868
|
-
y2.error(t3("upload_failure"));
|
|
16869
|
-
}
|
|
16870
|
-
}
|
|
16871
|
-
);
|
|
16872
|
-
} else {
|
|
16873
|
-
onUploadFile(
|
|
16874
|
-
{ formData },
|
|
16875
|
-
{
|
|
16876
|
-
onSuccess: (data) => {
|
|
16877
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16878
|
-
const files = [...selectedFiles, formatData];
|
|
16879
|
-
setSelectedFiles(files);
|
|
16880
|
-
y2.success(t3("upload_success"));
|
|
16881
|
-
},
|
|
16882
|
-
onError: () => {
|
|
16883
|
-
y2.error(t3("upload_failure"));
|
|
16884
|
-
}
|
|
16885
|
-
}
|
|
16886
|
-
);
|
|
16887
|
-
}
|
|
16888
|
-
};
|
|
16853
|
+
const isBinary = widget === "many2many_binary";
|
|
16854
|
+
const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
|
|
16889
16855
|
const validateFile = (file) => {
|
|
16890
16856
|
if (!ALLOWED_TYPES.includes(file.type)) {
|
|
16891
16857
|
setUploadError(t3("file_accept_single"));
|
|
@@ -16905,24 +16871,50 @@ var ButtonSelectFiles = ({
|
|
|
16905
16871
|
}
|
|
16906
16872
|
return true;
|
|
16907
16873
|
};
|
|
16908
|
-
const
|
|
16909
|
-
|
|
16910
|
-
|
|
16911
|
-
|
|
16912
|
-
|
|
16913
|
-
|
|
16914
|
-
|
|
16874
|
+
const handleUpload = async (formData) => {
|
|
16875
|
+
mutate(
|
|
16876
|
+
{ formData },
|
|
16877
|
+
{
|
|
16878
|
+
onSuccess: (data) => {
|
|
16879
|
+
let newFiles = [];
|
|
16880
|
+
if (isBinary) {
|
|
16881
|
+
newFiles = Array.isArray(data) ? data : [data];
|
|
16882
|
+
} else {
|
|
16883
|
+
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16884
|
+
newFiles = formatData ? [formatData] : [];
|
|
16885
|
+
}
|
|
16886
|
+
setSelectedFiles((prev2) => {
|
|
16887
|
+
return [...prev2, ...newFiles];
|
|
16888
|
+
});
|
|
16889
|
+
y2.success(instance.t("upload_success"));
|
|
16890
|
+
},
|
|
16891
|
+
onError: () => {
|
|
16892
|
+
y2.error(instance.t("upload_failure"));
|
|
16893
|
+
}
|
|
16894
|
+
}
|
|
16895
|
+
);
|
|
16915
16896
|
};
|
|
16916
16897
|
const handleOnChange = async (event) => {
|
|
16917
16898
|
const files = Array.from(event.target.files ?? []);
|
|
16899
|
+
setUploadError(void 0);
|
|
16918
16900
|
event.target.value = "";
|
|
16919
16901
|
if (files.length === 0) return;
|
|
16920
|
-
const
|
|
16921
|
-
|
|
16922
|
-
|
|
16923
|
-
|
|
16924
|
-
|
|
16925
|
-
|
|
16902
|
+
const validFiles = files.filter((file) => validateFile(file));
|
|
16903
|
+
if (validFiles.length === 0) return;
|
|
16904
|
+
if (isBinary) {
|
|
16905
|
+
const formData = new FormData();
|
|
16906
|
+
validFiles.forEach((file) => formData.append("ufile", file));
|
|
16907
|
+
formData.append("model", String(model));
|
|
16908
|
+
formData.append("id", id ? String(id) : String(0));
|
|
16909
|
+
await handleUpload(formData);
|
|
16910
|
+
} else {
|
|
16911
|
+
const file = validFiles[0];
|
|
16912
|
+
const formData = new FormData();
|
|
16913
|
+
formData.append("ufile", file);
|
|
16914
|
+
formData.append("thread_model", String(model));
|
|
16915
|
+
formData.append("thread_id", id ? String(id) : String(0));
|
|
16916
|
+
formData.append("is_pending", "true");
|
|
16917
|
+
await handleUpload(formData);
|
|
16926
16918
|
}
|
|
16927
16919
|
};
|
|
16928
16920
|
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
@@ -31940,7 +31932,7 @@ var FileUploadField = (props) => {
|
|
|
31940
31932
|
idForm,
|
|
31941
31933
|
widget,
|
|
31942
31934
|
useUploadImage,
|
|
31943
|
-
|
|
31935
|
+
useUploadFile,
|
|
31944
31936
|
isBase64File,
|
|
31945
31937
|
string,
|
|
31946
31938
|
isEditTable,
|
|
@@ -32014,7 +32006,7 @@ var FileUploadField = (props) => {
|
|
|
32014
32006
|
model,
|
|
32015
32007
|
widget,
|
|
32016
32008
|
useUploadImage,
|
|
32017
|
-
|
|
32009
|
+
useUploadFile
|
|
32018
32010
|
}
|
|
32019
32011
|
),
|
|
32020
32012
|
error2 && !isEditTable && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { className: "text-[#de4747] text-sm mt-1", children: error2.message })
|
package/dist/index.mjs
CHANGED
|
@@ -16713,7 +16713,7 @@ var ButtonSelectFiles = ({
|
|
|
16713
16713
|
id,
|
|
16714
16714
|
widget,
|
|
16715
16715
|
useUploadImage,
|
|
16716
|
-
|
|
16716
|
+
useUploadFile
|
|
16717
16717
|
}) => {
|
|
16718
16718
|
const { t: t3 } = useI18n();
|
|
16719
16719
|
const ALLOWED_TYPES = [
|
|
@@ -16728,42 +16728,8 @@ var ButtonSelectFiles = ({
|
|
|
16728
16728
|
];
|
|
16729
16729
|
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
16730
16730
|
const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
|
|
16731
|
-
const
|
|
16732
|
-
const { mutate
|
|
16733
|
-
const handleUploadImage = async ({ formData }) => {
|
|
16734
|
-
console.log("data", formData);
|
|
16735
|
-
if (widget !== "many2many_binary") {
|
|
16736
|
-
onUploadImage(
|
|
16737
|
-
{ formData },
|
|
16738
|
-
{
|
|
16739
|
-
onSuccess: (data) => {
|
|
16740
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16741
|
-
const files = [...selectedFiles, formatData];
|
|
16742
|
-
setSelectedFiles(files);
|
|
16743
|
-
y2.success(t3("upload_success"));
|
|
16744
|
-
},
|
|
16745
|
-
onError: () => {
|
|
16746
|
-
y2.error(t3("upload_failure"));
|
|
16747
|
-
}
|
|
16748
|
-
}
|
|
16749
|
-
);
|
|
16750
|
-
} else {
|
|
16751
|
-
onUploadFile(
|
|
16752
|
-
{ formData },
|
|
16753
|
-
{
|
|
16754
|
-
onSuccess: (data) => {
|
|
16755
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16756
|
-
const files = [...selectedFiles, formatData];
|
|
16757
|
-
setSelectedFiles(files);
|
|
16758
|
-
y2.success(t3("upload_success"));
|
|
16759
|
-
},
|
|
16760
|
-
onError: () => {
|
|
16761
|
-
y2.error(t3("upload_failure"));
|
|
16762
|
-
}
|
|
16763
|
-
}
|
|
16764
|
-
);
|
|
16765
|
-
}
|
|
16766
|
-
};
|
|
16731
|
+
const isBinary = widget === "many2many_binary";
|
|
16732
|
+
const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
|
|
16767
16733
|
const validateFile = (file) => {
|
|
16768
16734
|
if (!ALLOWED_TYPES.includes(file.type)) {
|
|
16769
16735
|
setUploadError(t3("file_accept_single"));
|
|
@@ -16783,24 +16749,50 @@ var ButtonSelectFiles = ({
|
|
|
16783
16749
|
}
|
|
16784
16750
|
return true;
|
|
16785
16751
|
};
|
|
16786
|
-
const
|
|
16787
|
-
|
|
16788
|
-
|
|
16789
|
-
|
|
16790
|
-
|
|
16791
|
-
|
|
16792
|
-
|
|
16752
|
+
const handleUpload = async (formData) => {
|
|
16753
|
+
mutate(
|
|
16754
|
+
{ formData },
|
|
16755
|
+
{
|
|
16756
|
+
onSuccess: (data) => {
|
|
16757
|
+
let newFiles = [];
|
|
16758
|
+
if (isBinary) {
|
|
16759
|
+
newFiles = Array.isArray(data) ? data : [data];
|
|
16760
|
+
} else {
|
|
16761
|
+
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16762
|
+
newFiles = formatData ? [formatData] : [];
|
|
16763
|
+
}
|
|
16764
|
+
setSelectedFiles((prev2) => {
|
|
16765
|
+
return [...prev2, ...newFiles];
|
|
16766
|
+
});
|
|
16767
|
+
y2.success(instance.t("upload_success"));
|
|
16768
|
+
},
|
|
16769
|
+
onError: () => {
|
|
16770
|
+
y2.error(instance.t("upload_failure"));
|
|
16771
|
+
}
|
|
16772
|
+
}
|
|
16773
|
+
);
|
|
16793
16774
|
};
|
|
16794
16775
|
const handleOnChange = async (event) => {
|
|
16795
16776
|
const files = Array.from(event.target.files ?? []);
|
|
16777
|
+
setUploadError(void 0);
|
|
16796
16778
|
event.target.value = "";
|
|
16797
16779
|
if (files.length === 0) return;
|
|
16798
|
-
const
|
|
16799
|
-
|
|
16800
|
-
|
|
16801
|
-
|
|
16802
|
-
|
|
16803
|
-
|
|
16780
|
+
const validFiles = files.filter((file) => validateFile(file));
|
|
16781
|
+
if (validFiles.length === 0) return;
|
|
16782
|
+
if (isBinary) {
|
|
16783
|
+
const formData = new FormData();
|
|
16784
|
+
validFiles.forEach((file) => formData.append("ufile", file));
|
|
16785
|
+
formData.append("model", String(model));
|
|
16786
|
+
formData.append("id", id ? String(id) : String(0));
|
|
16787
|
+
await handleUpload(formData);
|
|
16788
|
+
} else {
|
|
16789
|
+
const file = validFiles[0];
|
|
16790
|
+
const formData = new FormData();
|
|
16791
|
+
formData.append("ufile", file);
|
|
16792
|
+
formData.append("thread_model", String(model));
|
|
16793
|
+
formData.append("thread_id", id ? String(id) : String(0));
|
|
16794
|
+
formData.append("is_pending", "true");
|
|
16795
|
+
await handleUpload(formData);
|
|
16804
16796
|
}
|
|
16805
16797
|
};
|
|
16806
16798
|
return /* @__PURE__ */ jsxs44(Fragment14, { children: [
|
|
@@ -31818,7 +31810,7 @@ var FileUploadField = (props) => {
|
|
|
31818
31810
|
idForm,
|
|
31819
31811
|
widget,
|
|
31820
31812
|
useUploadImage,
|
|
31821
|
-
|
|
31813
|
+
useUploadFile,
|
|
31822
31814
|
isBase64File,
|
|
31823
31815
|
string,
|
|
31824
31816
|
isEditTable,
|
|
@@ -31892,7 +31884,7 @@ var FileUploadField = (props) => {
|
|
|
31892
31884
|
model,
|
|
31893
31885
|
widget,
|
|
31894
31886
|
useUploadImage,
|
|
31895
|
-
|
|
31887
|
+
useUploadFile
|
|
31896
31888
|
}
|
|
31897
31889
|
),
|
|
31898
31890
|
error2 && !isEditTable && /* @__PURE__ */ jsx87("p", { className: "text-[#de4747] text-sm mt-1", children: error2.message })
|
package/dist/widgets.d.mts
CHANGED
|
@@ -280,7 +280,7 @@ declare const FeeField: (props: IInputFieldProps) => JSX.Element;
|
|
|
280
280
|
|
|
281
281
|
interface IFileUploadProps extends IInputFieldProps {
|
|
282
282
|
useUploadImage?: any;
|
|
283
|
-
|
|
283
|
+
useUploadFile?: any;
|
|
284
284
|
useGetImage?: any;
|
|
285
285
|
isBase64File?: any;
|
|
286
286
|
downloadFunction?: (url: string, filename: string) => void;
|
|
@@ -497,7 +497,7 @@ declare const LoadingSmall: () => JSX.Element;
|
|
|
497
497
|
|
|
498
498
|
declare const RenderFiles: ({ selectedFiles, setSelectedFiles, useGetImage }: any) => JSX.Element;
|
|
499
499
|
|
|
500
|
-
declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage,
|
|
500
|
+
declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage, useUploadFile, }: any) => JSX.Element;
|
|
501
501
|
|
|
502
502
|
interface VideoPlayerProps {
|
|
503
503
|
src: string;
|
package/dist/widgets.d.ts
CHANGED
|
@@ -280,7 +280,7 @@ declare const FeeField: (props: IInputFieldProps) => JSX.Element;
|
|
|
280
280
|
|
|
281
281
|
interface IFileUploadProps extends IInputFieldProps {
|
|
282
282
|
useUploadImage?: any;
|
|
283
|
-
|
|
283
|
+
useUploadFile?: any;
|
|
284
284
|
useGetImage?: any;
|
|
285
285
|
isBase64File?: any;
|
|
286
286
|
downloadFunction?: (url: string, filename: string) => void;
|
|
@@ -497,7 +497,7 @@ declare const LoadingSmall: () => JSX.Element;
|
|
|
497
497
|
|
|
498
498
|
declare const RenderFiles: ({ selectedFiles, setSelectedFiles, useGetImage }: any) => JSX.Element;
|
|
499
499
|
|
|
500
|
-
declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage,
|
|
500
|
+
declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage, useUploadFile, }: any) => JSX.Element;
|
|
501
501
|
|
|
502
502
|
interface VideoPlayerProps {
|
|
503
503
|
src: string;
|
package/dist/widgets.js
CHANGED
|
@@ -16241,7 +16241,7 @@ var ButtonSelectFiles = ({
|
|
|
16241
16241
|
id,
|
|
16242
16242
|
widget,
|
|
16243
16243
|
useUploadImage,
|
|
16244
|
-
|
|
16244
|
+
useUploadFile
|
|
16245
16245
|
}) => {
|
|
16246
16246
|
const { t: t3 } = useI18n();
|
|
16247
16247
|
const ALLOWED_TYPES = [
|
|
@@ -16256,42 +16256,8 @@ var ButtonSelectFiles = ({
|
|
|
16256
16256
|
];
|
|
16257
16257
|
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
16258
16258
|
const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
|
|
16259
|
-
const
|
|
16260
|
-
const { mutate
|
|
16261
|
-
const handleUploadImage = async ({ formData }) => {
|
|
16262
|
-
console.log("data", formData);
|
|
16263
|
-
if (widget !== "many2many_binary") {
|
|
16264
|
-
onUploadImage(
|
|
16265
|
-
{ formData },
|
|
16266
|
-
{
|
|
16267
|
-
onSuccess: (data) => {
|
|
16268
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16269
|
-
const files = [...selectedFiles, formatData];
|
|
16270
|
-
setSelectedFiles(files);
|
|
16271
|
-
y2.success(t3("upload_success"));
|
|
16272
|
-
},
|
|
16273
|
-
onError: () => {
|
|
16274
|
-
y2.error(t3("upload_failure"));
|
|
16275
|
-
}
|
|
16276
|
-
}
|
|
16277
|
-
);
|
|
16278
|
-
} else {
|
|
16279
|
-
onUploadFile(
|
|
16280
|
-
{ formData },
|
|
16281
|
-
{
|
|
16282
|
-
onSuccess: (data) => {
|
|
16283
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16284
|
-
const files = [...selectedFiles, formatData];
|
|
16285
|
-
setSelectedFiles(files);
|
|
16286
|
-
y2.success(t3("upload_success"));
|
|
16287
|
-
},
|
|
16288
|
-
onError: () => {
|
|
16289
|
-
y2.error(t3("upload_failure"));
|
|
16290
|
-
}
|
|
16291
|
-
}
|
|
16292
|
-
);
|
|
16293
|
-
}
|
|
16294
|
-
};
|
|
16259
|
+
const isBinary = widget === "many2many_binary";
|
|
16260
|
+
const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
|
|
16295
16261
|
const validateFile = (file) => {
|
|
16296
16262
|
if (!ALLOWED_TYPES.includes(file.type)) {
|
|
16297
16263
|
setUploadError(t3("file_accept_single"));
|
|
@@ -16311,24 +16277,50 @@ var ButtonSelectFiles = ({
|
|
|
16311
16277
|
}
|
|
16312
16278
|
return true;
|
|
16313
16279
|
};
|
|
16314
|
-
const
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16320
|
-
|
|
16280
|
+
const handleUpload = async (formData) => {
|
|
16281
|
+
mutate(
|
|
16282
|
+
{ formData },
|
|
16283
|
+
{
|
|
16284
|
+
onSuccess: (data) => {
|
|
16285
|
+
let newFiles = [];
|
|
16286
|
+
if (isBinary) {
|
|
16287
|
+
newFiles = Array.isArray(data) ? data : [data];
|
|
16288
|
+
} else {
|
|
16289
|
+
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16290
|
+
newFiles = formatData ? [formatData] : [];
|
|
16291
|
+
}
|
|
16292
|
+
setSelectedFiles((prev2) => {
|
|
16293
|
+
return [...prev2, ...newFiles];
|
|
16294
|
+
});
|
|
16295
|
+
y2.success(instance.t("upload_success"));
|
|
16296
|
+
},
|
|
16297
|
+
onError: () => {
|
|
16298
|
+
y2.error(instance.t("upload_failure"));
|
|
16299
|
+
}
|
|
16300
|
+
}
|
|
16301
|
+
);
|
|
16321
16302
|
};
|
|
16322
16303
|
const handleOnChange = async (event) => {
|
|
16323
16304
|
const files = Array.from(event.target.files ?? []);
|
|
16305
|
+
setUploadError(void 0);
|
|
16324
16306
|
event.target.value = "";
|
|
16325
16307
|
if (files.length === 0) return;
|
|
16326
|
-
const
|
|
16327
|
-
|
|
16328
|
-
|
|
16329
|
-
|
|
16330
|
-
|
|
16331
|
-
|
|
16308
|
+
const validFiles = files.filter((file) => validateFile(file));
|
|
16309
|
+
if (validFiles.length === 0) return;
|
|
16310
|
+
if (isBinary) {
|
|
16311
|
+
const formData = new FormData();
|
|
16312
|
+
validFiles.forEach((file) => formData.append("ufile", file));
|
|
16313
|
+
formData.append("model", String(model));
|
|
16314
|
+
formData.append("id", id ? String(id) : String(0));
|
|
16315
|
+
await handleUpload(formData);
|
|
16316
|
+
} else {
|
|
16317
|
+
const file = validFiles[0];
|
|
16318
|
+
const formData = new FormData();
|
|
16319
|
+
formData.append("ufile", file);
|
|
16320
|
+
formData.append("thread_model", String(model));
|
|
16321
|
+
formData.append("thread_id", id ? String(id) : String(0));
|
|
16322
|
+
formData.append("is_pending", "true");
|
|
16323
|
+
await handleUpload(formData);
|
|
16332
16324
|
}
|
|
16333
16325
|
};
|
|
16334
16326
|
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
@@ -31346,7 +31338,7 @@ var FileUploadField = (props) => {
|
|
|
31346
31338
|
idForm,
|
|
31347
31339
|
widget,
|
|
31348
31340
|
useUploadImage,
|
|
31349
|
-
|
|
31341
|
+
useUploadFile,
|
|
31350
31342
|
isBase64File,
|
|
31351
31343
|
string,
|
|
31352
31344
|
isEditTable,
|
|
@@ -31420,7 +31412,7 @@ var FileUploadField = (props) => {
|
|
|
31420
31412
|
model,
|
|
31421
31413
|
widget,
|
|
31422
31414
|
useUploadImage,
|
|
31423
|
-
|
|
31415
|
+
useUploadFile
|
|
31424
31416
|
}
|
|
31425
31417
|
),
|
|
31426
31418
|
error2 && !isEditTable && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("p", { className: "text-[#de4747] text-sm mt-1", children: error2.message })
|
package/dist/widgets.mjs
CHANGED
|
@@ -16178,7 +16178,7 @@ var ButtonSelectFiles = ({
|
|
|
16178
16178
|
id,
|
|
16179
16179
|
widget,
|
|
16180
16180
|
useUploadImage,
|
|
16181
|
-
|
|
16181
|
+
useUploadFile
|
|
16182
16182
|
}) => {
|
|
16183
16183
|
const { t: t3 } = useI18n();
|
|
16184
16184
|
const ALLOWED_TYPES = [
|
|
@@ -16193,42 +16193,8 @@ var ButtonSelectFiles = ({
|
|
|
16193
16193
|
];
|
|
16194
16194
|
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
16195
16195
|
const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
|
|
16196
|
-
const
|
|
16197
|
-
const { mutate
|
|
16198
|
-
const handleUploadImage = async ({ formData }) => {
|
|
16199
|
-
console.log("data", formData);
|
|
16200
|
-
if (widget !== "many2many_binary") {
|
|
16201
|
-
onUploadImage(
|
|
16202
|
-
{ formData },
|
|
16203
|
-
{
|
|
16204
|
-
onSuccess: (data) => {
|
|
16205
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16206
|
-
const files = [...selectedFiles, formatData];
|
|
16207
|
-
setSelectedFiles(files);
|
|
16208
|
-
y2.success(t3("upload_success"));
|
|
16209
|
-
},
|
|
16210
|
-
onError: () => {
|
|
16211
|
-
y2.error(t3("upload_failure"));
|
|
16212
|
-
}
|
|
16213
|
-
}
|
|
16214
|
-
);
|
|
16215
|
-
} else {
|
|
16216
|
-
onUploadFile(
|
|
16217
|
-
{ formData },
|
|
16218
|
-
{
|
|
16219
|
-
onSuccess: (data) => {
|
|
16220
|
-
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16221
|
-
const files = [...selectedFiles, formatData];
|
|
16222
|
-
setSelectedFiles(files);
|
|
16223
|
-
y2.success(t3("upload_success"));
|
|
16224
|
-
},
|
|
16225
|
-
onError: () => {
|
|
16226
|
-
y2.error(t3("upload_failure"));
|
|
16227
|
-
}
|
|
16228
|
-
}
|
|
16229
|
-
);
|
|
16230
|
-
}
|
|
16231
|
-
};
|
|
16196
|
+
const isBinary = widget === "many2many_binary";
|
|
16197
|
+
const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
|
|
16232
16198
|
const validateFile = (file) => {
|
|
16233
16199
|
if (!ALLOWED_TYPES.includes(file.type)) {
|
|
16234
16200
|
setUploadError(t3("file_accept_single"));
|
|
@@ -16248,24 +16214,50 @@ var ButtonSelectFiles = ({
|
|
|
16248
16214
|
}
|
|
16249
16215
|
return true;
|
|
16250
16216
|
};
|
|
16251
|
-
const
|
|
16252
|
-
|
|
16253
|
-
|
|
16254
|
-
|
|
16255
|
-
|
|
16256
|
-
|
|
16257
|
-
|
|
16217
|
+
const handleUpload = async (formData) => {
|
|
16218
|
+
mutate(
|
|
16219
|
+
{ formData },
|
|
16220
|
+
{
|
|
16221
|
+
onSuccess: (data) => {
|
|
16222
|
+
let newFiles = [];
|
|
16223
|
+
if (isBinary) {
|
|
16224
|
+
newFiles = Array.isArray(data) ? data : [data];
|
|
16225
|
+
} else {
|
|
16226
|
+
const formatData = data?.data?.["ir.attachment"]?.[0];
|
|
16227
|
+
newFiles = formatData ? [formatData] : [];
|
|
16228
|
+
}
|
|
16229
|
+
setSelectedFiles((prev2) => {
|
|
16230
|
+
return [...prev2, ...newFiles];
|
|
16231
|
+
});
|
|
16232
|
+
y2.success(instance.t("upload_success"));
|
|
16233
|
+
},
|
|
16234
|
+
onError: () => {
|
|
16235
|
+
y2.error(instance.t("upload_failure"));
|
|
16236
|
+
}
|
|
16237
|
+
}
|
|
16238
|
+
);
|
|
16258
16239
|
};
|
|
16259
16240
|
const handleOnChange = async (event) => {
|
|
16260
16241
|
const files = Array.from(event.target.files ?? []);
|
|
16242
|
+
setUploadError(void 0);
|
|
16261
16243
|
event.target.value = "";
|
|
16262
16244
|
if (files.length === 0) return;
|
|
16263
|
-
const
|
|
16264
|
-
|
|
16265
|
-
|
|
16266
|
-
|
|
16267
|
-
|
|
16268
|
-
|
|
16245
|
+
const validFiles = files.filter((file) => validateFile(file));
|
|
16246
|
+
if (validFiles.length === 0) return;
|
|
16247
|
+
if (isBinary) {
|
|
16248
|
+
const formData = new FormData();
|
|
16249
|
+
validFiles.forEach((file) => formData.append("ufile", file));
|
|
16250
|
+
formData.append("model", String(model));
|
|
16251
|
+
formData.append("id", id ? String(id) : String(0));
|
|
16252
|
+
await handleUpload(formData);
|
|
16253
|
+
} else {
|
|
16254
|
+
const file = validFiles[0];
|
|
16255
|
+
const formData = new FormData();
|
|
16256
|
+
formData.append("ufile", file);
|
|
16257
|
+
formData.append("thread_model", String(model));
|
|
16258
|
+
formData.append("thread_id", id ? String(id) : String(0));
|
|
16259
|
+
formData.append("is_pending", "true");
|
|
16260
|
+
await handleUpload(formData);
|
|
16269
16261
|
}
|
|
16270
16262
|
};
|
|
16271
16263
|
return /* @__PURE__ */ jsxs44(Fragment14, { children: [
|
|
@@ -31283,7 +31275,7 @@ var FileUploadField = (props) => {
|
|
|
31283
31275
|
idForm,
|
|
31284
31276
|
widget,
|
|
31285
31277
|
useUploadImage,
|
|
31286
|
-
|
|
31278
|
+
useUploadFile,
|
|
31287
31279
|
isBase64File,
|
|
31288
31280
|
string,
|
|
31289
31281
|
isEditTable,
|
|
@@ -31357,7 +31349,7 @@ var FileUploadField = (props) => {
|
|
|
31357
31349
|
model,
|
|
31358
31350
|
widget,
|
|
31359
31351
|
useUploadImage,
|
|
31360
|
-
|
|
31352
|
+
useUploadFile
|
|
31361
31353
|
}
|
|
31362
31354
|
),
|
|
31363
31355
|
error2 && !isEditTable && /* @__PURE__ */ jsx87("p", { className: "text-[#de4747] text-sm mt-1", children: error2.message })
|