(message, statusCode)
| 166 | }; |
| 167 | |
| 168 | const showUploadError = (message, statusCode) => { |
| 169 | const el = ensureUploadErrorEl(); |
| 170 | if (!el) return; |
| 171 | const reason = String(message || tx('share_upload_failed', null, 'Upload failed.')).trim() |
| 172 | || tx('share_upload_failed', null, 'Upload failed.'); |
| 173 | const code = Number.isFinite(statusCode) && statusCode > 0 ? Math.trunc(statusCode) : 0; |
| 174 | el.textContent = code > 0 |
| 175 | ? tx('share_upload_failed_http', { code, reason }, 'Upload failed (HTTP ' + code + '): ' + reason) |
| 176 | : tx('share_upload_failed_message', { reason }, 'Upload failed: ' + reason); |
| 177 | el.hidden = false; |
| 178 | }; |
| 179 | |
| 180 | const setBusy = (busy) => { |
| 181 | if (submitBtn) submitBtn.disabled = !!busy; |
no test coverage detected