Changeset 0.28.3.1 (#188)

This commit is contained in:
2026-03-14 14:43:55 +00:00
parent f68a58b073
commit 205a770c74
46 changed files with 720 additions and 406 deletions

View File

@@ -350,7 +350,7 @@ function _renderStrip() {
<span class="att-name" title="${esc(a.filename)}">${esc(name)}</span>
<span class="att-meta">${esc(size)}${label ? ' · ' + label : ''}</span>
</span>
<button class="att-remove" onclick="unstageFile('${a.localId}')" title="Remove">✕</button>
<button class="att-remove" data-action="unstageFile" data-args='${JSON.stringify([a.localId])}'" title="Remove">✕</button>
</div>`;
}).join('');
}
@@ -423,7 +423,7 @@ function renderMessageFiles(msgId) {
const visionHint = !hasVision
? '<span class="att-vision-hint" title="Current model does not support images">👁️‍🗨️</span>'
: '';
return `<div class="msg-att msg-att-image" onclick="openLightbox('${esc(att.id)}')">
return `<div class="msg-att msg-att-image" data-action="openLightbox" data-args='${JSON.stringify([esc(att.id)])}'">
<img class="msg-att-img" data-att-id="${esc(att.id)}" alt="${esc(att.filename)}"
style="max-width:${w}px" loading="lazy">
${visionHint}
@@ -433,7 +433,7 @@ function renderMessageFiles(msgId) {
// Document chip
const icon = _docIcon(att.content_type);
const size = formatFileSize(att.size_bytes);
return `<a class="msg-att msg-att-doc" href="#" onclick="downloadFile('${esc(att.id)}','${esc(att.filename)}');return false">
return `<a class="msg-att msg-att-doc" href="#" data-action="downloadFile" data-args='${JSON.stringify([esc(att.id), esc(att.filename)])}' data-prevent-default">
<span class="att-doc-icon">${icon}</span>
<span class="att-doc-info">
<span class="att-doc-name">${esc(att.filename)}</span>
@@ -839,22 +839,22 @@ function _hasDragFiles(e) {
}
// ── Exports ─────────────────────────────────
window._initFileListeners = _initFileListeners;
window._pollTimers = _pollTimers;
window._startPolling = _startPolling;
window._stopPolling = _stopPolling;
window.clearStaged = clearStaged;
window.closeLightbox = closeLightbox;
window.consumeStaged = consumeStaged;
window.getStagedFileIds = getStagedFileIds;
window.hasStagedFiles = hasStagedFiles;
window.initFiles = initFiles;
window.isSendBlocked = isSendBlocked;
window.loadAdminStorage = loadAdminStorage;
window.loadAuthImages = loadAuthImages;
window.loadChannelFiles = loadChannelFiles;
window.renderMessageFiles = renderMessageFiles;
window.unstageFile = unstageFile;
window.openLightbox = openLightbox;
window.downloadFile = downloadFile;
sb.register('_initFileListeners', _initFileListeners);
sb.register('_pollTimers', _pollTimers);
sb.register('_startPolling', _startPolling);
sb.register('_stopPolling', _stopPolling);
sb.register('clearStaged', clearStaged);
sb.register('closeLightbox', closeLightbox);
sb.register('consumeStaged', consumeStaged);
sb.register('getStagedFileIds', getStagedFileIds);
sb.register('hasStagedFiles', hasStagedFiles);
sb.register('initFiles', initFiles);
sb.register('isSendBlocked', isSendBlocked);
sb.register('loadAdminStorage', loadAdminStorage);
sb.register('loadAuthImages', loadAuthImages);
sb.register('loadChannelFiles', loadChannelFiles);
sb.register('renderMessageFiles', renderMessageFiles);
sb.register('unstageFile', unstageFile);
sb.register('openLightbox', openLightbox);
sb.register('downloadFile', downloadFile);
})();