cloudmr-ux 1.6.7 → 1.6.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.d.ts CHANGED
@@ -274,7 +274,7 @@ interface UploadWindowProps {
274
274
  upload: (file: File, fileAlias: string, fileDatabase: string) => Promise<number>;
275
275
  open: boolean;
276
276
  setOpen: React.Dispatch<React.SetStateAction<boolean>>;
277
- fileExtension?: string;
277
+ fileExtension?: string | string[];
278
278
  template?: {
279
279
  showFileName?: boolean;
280
280
  showDatabase?: boolean;
package/dist/index.js CHANGED
@@ -317,6 +317,16 @@ function CmrUploadWindow({
317
317
  const handleClose = () => {
318
318
  setOpen(false);
319
319
  };
320
+ const checkExtension = (filename, allowed) => {
321
+ if (!filename)
322
+ return false;
323
+ const name = filename.toLowerCase();
324
+ if (Array.isArray(allowed)) {
325
+ return allowed.some((ext) => name.endsWith(ext.startsWith(".") ? ext : "." + ext));
326
+ } else {
327
+ return name.endsWith(allowed.startsWith(".") ? allowed : "." + allowed);
328
+ }
329
+ };
320
330
  const getExtension = (fileName) => {
321
331
  if (fileName == void 0)
322
332
  return;
@@ -464,8 +474,10 @@ function CmrUploadWindow({
464
474
  let draggedFiles = e.dataTransfer.files;
465
475
  if (draggedFiles.length > 1) {
466
476
  setUploadBoxWarning("Only one file can be uploaded at a time");
467
- } else if (fileExtension != void 0 && draggedFiles.length != 0 && getExtension(draggedFiles[0].name) != fileExtension) {
468
- setUploadBoxWarning(`Only accepting files with extension ${fileExtension}`);
477
+ } else if (fileExtension != void 0 && draggedFiles.length !== 0 && !checkExtension(draggedFiles[0].name, fileExtension)) {
478
+ setUploadBoxWarning(
479
+ `Only accepting files with extension(s): ${Array.isArray(fileExtension) ? fileExtension.join(", ") : fileExtension}`
480
+ );
469
481
  }
470
482
  }
471
483
  e.dataTransfer.dropEffect = "copy";
@@ -481,10 +493,12 @@ function CmrUploadWindow({
481
493
  setWarningText("Only one file can be uploaded at a time");
482
494
  setTimeout(() => setInfoOpen(false), 2500);
483
495
  return;
484
- } else if (fileExtension != void 0 && `.${getExtension(files[0].name)}` != fileExtension) {
496
+ } else if (fileExtension !== void 0 && !checkExtension(files[0].name, fileExtension)) {
485
497
  setInfoOpen(true);
486
498
  setInfoStyle("warning");
487
- setWarningText(`Only accepting files with extension ${fileExtension}`);
499
+ setWarningText(
500
+ `Only accepting files with extension(s): ${Array.isArray(fileExtension) ? fileExtension.join(", ") : fileExtension}`
501
+ );
488
502
  setTimeout(() => setInfoOpen(false), 2500);
489
503
  return;
490
504
  }
@@ -551,7 +565,7 @@ function CmrUploadWindow({
551
565
  type: "file",
552
566
  id: "file-window",
553
567
  multiple: true,
554
- accept: fileExtension == void 0 ? "*" : fileExtension,
568
+ accept: fileExtension === void 0 ? "*" : Array.isArray(fileExtension) ? fileExtension.join(",") : fileExtension,
555
569
  style: { display: "none" },
556
570
  onChange: loadSelectedFiles
557
571
  }
package/dist/index.mjs CHANGED
@@ -269,6 +269,16 @@ function CmrUploadWindow({
269
269
  const handleClose = () => {
270
270
  setOpen(false);
271
271
  };
272
+ const checkExtension = (filename, allowed) => {
273
+ if (!filename)
274
+ return false;
275
+ const name = filename.toLowerCase();
276
+ if (Array.isArray(allowed)) {
277
+ return allowed.some((ext) => name.endsWith(ext.startsWith(".") ? ext : "." + ext));
278
+ } else {
279
+ return name.endsWith(allowed.startsWith(".") ? allowed : "." + allowed);
280
+ }
281
+ };
272
282
  const getExtension = (fileName) => {
273
283
  if (fileName == void 0)
274
284
  return;
@@ -416,8 +426,10 @@ function CmrUploadWindow({
416
426
  let draggedFiles = e.dataTransfer.files;
417
427
  if (draggedFiles.length > 1) {
418
428
  setUploadBoxWarning("Only one file can be uploaded at a time");
419
- } else if (fileExtension != void 0 && draggedFiles.length != 0 && getExtension(draggedFiles[0].name) != fileExtension) {
420
- setUploadBoxWarning(`Only accepting files with extension ${fileExtension}`);
429
+ } else if (fileExtension != void 0 && draggedFiles.length !== 0 && !checkExtension(draggedFiles[0].name, fileExtension)) {
430
+ setUploadBoxWarning(
431
+ `Only accepting files with extension(s): ${Array.isArray(fileExtension) ? fileExtension.join(", ") : fileExtension}`
432
+ );
421
433
  }
422
434
  }
423
435
  e.dataTransfer.dropEffect = "copy";
@@ -433,10 +445,12 @@ function CmrUploadWindow({
433
445
  setWarningText("Only one file can be uploaded at a time");
434
446
  setTimeout(() => setInfoOpen(false), 2500);
435
447
  return;
436
- } else if (fileExtension != void 0 && `.${getExtension(files[0].name)}` != fileExtension) {
448
+ } else if (fileExtension !== void 0 && !checkExtension(files[0].name, fileExtension)) {
437
449
  setInfoOpen(true);
438
450
  setInfoStyle("warning");
439
- setWarningText(`Only accepting files with extension ${fileExtension}`);
451
+ setWarningText(
452
+ `Only accepting files with extension(s): ${Array.isArray(fileExtension) ? fileExtension.join(", ") : fileExtension}`
453
+ );
440
454
  setTimeout(() => setInfoOpen(false), 2500);
441
455
  return;
442
456
  }
@@ -503,7 +517,7 @@ function CmrUploadWindow({
503
517
  type: "file",
504
518
  id: "file-window",
505
519
  multiple: true,
506
- accept: fileExtension == void 0 ? "*" : fileExtension,
520
+ accept: fileExtension === void 0 ? "*" : Array.isArray(fileExtension) ? fileExtension.join(",") : fileExtension,
507
521
  style: { display: "none" },
508
522
  onChange: loadSelectedFiles
509
523
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudmr-ux",
3
- "version": "1.6.7",
3
+ "version": "1.6.9",
4
4
  "author": "erosmontin@gmail.com",
5
5
  "license": "MIT",
6
6
  "repository": "erosmontin/cloudmr-ux",