Jake Vanderwerf
2026-08-28 5b50afdcafd150186ea5c7b0e1cad98065590b35
assets/js/concise/UploadManager.js
@@ -1078,7 +1078,21 @@
   *********************************************************************/
   getWorker() {
      if (!this.workerState.worker && typeof OffscreenCanvas !== 'undefined') {
         this.workerState.worker = new Worker('worker.js');
         const workerCode = `
            self.onmessage = function(e) {
                const { id, imageBitmap, width, height, type, quality } = e.data;
                const canvas = new OffscreenCanvas(width, height);
                const ctx = canvas.getContext('2d');
                ctx.drawImage(imageBitmap, 0, 0, width, height);
                canvas.convertToBlob({ type, quality }).then(blob => {
                    self.postMessage({ id, blob });
                });
            };
        `;
         const blob = new Blob([workerCode], { type: 'application/javascript' });
         const url = URL.createObjectURL(blob);
         this.workerState.worker = new Worker(url);
         URL.revokeObjectURL(url); // Safe to revoke immediately after Worker is created
         this.workerState.worker.onmessage = (e) => this.handleWorkerMessage(e);
         this.workerState.worker.onerror = (e) => this.handleWorkerError(e);
      }
@@ -1789,7 +1803,7 @@
      if (target) {
         target.append(element.element);
         if (groupId) {
            await this.handleReorder(upload.field, groupId);
            this.handleReorder(upload.field, groupId);
         }
      }
      await this.stores.uploads.save(upload);
@@ -2043,7 +2057,7 @@
         await this.addToGroup(uploadId, targetGroupId);
      }
      await this.handleReorder(fieldId, targetGroupId);
      this.handleReorder(fieldId, targetGroupId);
      this.selectionHandlers.get(fieldId)?.clearSelection();
   }