@fctc/sme-widget-ui 1.8.8 → 1.8.9

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 CHANGED
@@ -16835,7 +16835,7 @@ var ButtonSelectFiles = ({
16835
16835
  id,
16836
16836
  widget,
16837
16837
  useUploadImage,
16838
- useUploadFileExcel
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 { mutate: onUploadImage, isPending } = useUploadImage();
16854
- const { mutate: onUploadFile } = useUploadFileExcel();
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 convertFileToBase64 = (file) => {
16909
- return new Promise((resolve, reject) => {
16910
- const reader = new FileReader();
16911
- reader.readAsDataURL(file);
16912
- reader.onload = () => resolve(reader.result);
16913
- reader.onerror = (error2) => reject(error2);
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 file = files[0];
16921
- try {
16922
- const base64 = await convertFileToBase64(file);
16923
- setSelectedFiles([...selectedFiles, { name: file.name, data: base64 }]);
16924
- } catch (error2) {
16925
- console.error("Error converting file:", error2);
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: [
package/dist/index.mjs CHANGED
@@ -16713,7 +16713,7 @@ var ButtonSelectFiles = ({
16713
16713
  id,
16714
16714
  widget,
16715
16715
  useUploadImage,
16716
- useUploadFileExcel
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 { mutate: onUploadImage, isPending } = useUploadImage();
16732
- const { mutate: onUploadFile } = useUploadFileExcel();
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 convertFileToBase64 = (file) => {
16787
- return new Promise((resolve, reject) => {
16788
- const reader = new FileReader();
16789
- reader.readAsDataURL(file);
16790
- reader.onload = () => resolve(reader.result);
16791
- reader.onerror = (error2) => reject(error2);
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 file = files[0];
16799
- try {
16800
- const base64 = await convertFileToBase64(file);
16801
- setSelectedFiles([...selectedFiles, { name: file.name, data: base64 }]);
16802
- } catch (error2) {
16803
- console.error("Error converting file:", error2);
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: [
@@ -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, useUploadFileExcel, }: any) => JSX.Element;
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
@@ -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, useUploadFileExcel, }: any) => JSX.Element;
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
- useUploadFileExcel
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 { mutate: onUploadImage, isPending } = useUploadImage();
16260
- const { mutate: onUploadFile } = useUploadFileExcel();
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 convertFileToBase64 = (file) => {
16315
- return new Promise((resolve, reject) => {
16316
- const reader = new FileReader();
16317
- reader.readAsDataURL(file);
16318
- reader.onload = () => resolve(reader.result);
16319
- reader.onerror = (error2) => reject(error2);
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 file = files[0];
16327
- try {
16328
- const base64 = await convertFileToBase64(file);
16329
- setSelectedFiles([...selectedFiles, { name: file.name, data: base64 }]);
16330
- } catch (error2) {
16331
- console.error("Error converting file:", error2);
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: [
package/dist/widgets.mjs CHANGED
@@ -16178,7 +16178,7 @@ var ButtonSelectFiles = ({
16178
16178
  id,
16179
16179
  widget,
16180
16180
  useUploadImage,
16181
- useUploadFileExcel
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 { mutate: onUploadImage, isPending } = useUploadImage();
16197
- const { mutate: onUploadFile } = useUploadFileExcel();
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 convertFileToBase64 = (file) => {
16252
- return new Promise((resolve, reject) => {
16253
- const reader = new FileReader();
16254
- reader.readAsDataURL(file);
16255
- reader.onload = () => resolve(reader.result);
16256
- reader.onerror = (error2) => reject(error2);
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 file = files[0];
16264
- try {
16265
- const base64 = await convertFileToBase64(file);
16266
- setSelectedFiles([...selectedFiles, { name: file.name, data: base64 }]);
16267
- } catch (error2) {
16268
- console.error("Error converting file:", error2);
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: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/sme-widget-ui",
3
- "version": "1.8.8",
3
+ "version": "1.8.9",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",