adjust attachments to hopefully fix them?

This commit is contained in:
Frederik Spirgi
2026-09-23 11:06:46 +02:00
parent b8399155dd
commit 4380f1f3d8
11 changed files with 305 additions and 62 deletions
+14 -1
View File
@@ -59,6 +59,8 @@ export function createAttachmentComposer({onChange, onError}) {
onChange();
};
const upload = async item => {
if (item.uploading || item.metadata || !items.includes(item)) return;
item.uploading = true;
item.error = null;
item.controller = new AbortController();
render();
@@ -72,6 +74,8 @@ export function createAttachmentComposer({onChange, onError}) {
} catch (error) {
if (error.name !== "AbortError") item.error = error.message || "Upload failed";
}
item.uploading = false;
item.controller = null;
render();
};
const add = files => {
@@ -101,6 +105,15 @@ export function createAttachmentComposer({onChange, onError}) {
get attachments() { return items.filter(v => v.metadata).map(v => v.metadata); },
get pending() { return items.some(v => !v.metadata); },
setBusy(value) { busy = value; button.disabled = value; picker.disabled = value; render(); },
clear() { items.forEach(v => URL.revokeObjectURL(v.preview)); items = []; render(); }
clear() { items.forEach(v => URL.revokeObjectURL(v.preview)); items = []; render(); },
discard() {
for (const item of items) {
item.controller?.abort();
URL.revokeObjectURL(item.preview);
if (item.metadata) void fetch(`/attachments/${item.metadata.id}`, {method: "DELETE"});
}
items = [];
render();
}
};
}