23 lines
1.2 KiB
JavaScript
23 lines
1.2 KiB
JavaScript
|
|
// ═══════════════════════════════════════════════════════
|
||
|
|
// Byte Size Converter
|
||
|
|
// ═══════════════════════════════════════════════════════
|
||
|
|
async function convertBytes() {
|
||
|
|
const value = parseFloat(document.getElementById('byteValue').value);
|
||
|
|
if (isNaN(value)) return;
|
||
|
|
const unit = document.getElementById('byteUnit').value;
|
||
|
|
const mode = document.querySelector('input[name="byteMode"]:checked').value;
|
||
|
|
const d = await apiPost('/api/bytes/convert', { value, unit, mode });
|
||
|
|
if (d.success) {
|
||
|
|
const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
||
|
|
document.getElementById('byteResults').innerHTML = units.map(u =>
|
||
|
|
`<div class="result-row">
|
||
|
|
<div class="label">${u}</div>
|
||
|
|
<div class="value" onclick="copyText(this.textContent)" title="Click to copy">${d[u]}</div>
|
||
|
|
</div>`
|
||
|
|
).join('');
|
||
|
|
setStatus('byteStatus', 'success', `Converted (${mode === 'binary' ? '1024' : '1000'} base) ✓`);
|
||
|
|
} else setStatus('byteStatus', 'error', d.error);
|
||
|
|
}
|
||
|
|
setTimeout(convertBytes, 200);
|
||
|
|
|