Files
RomhackPlaza/resources/js/HashesChecker.js
2026-06-23 19:24:38 +02:00

48 lines
1.2 KiB
JavaScript

import { calculate as calculateHashes } from "./hashes.js";
window.HashesChecker = function( wire ) {
return {
/**
* Wire variable instance.
*/
$wire: wire,
/**
* If a file hash is currently calculated or not.
* @type {boolean}
*/
isCalculating: false,
/**
* An error on hash calculation.
* @type {any|null}
*/
error: null,
async handleSubmitFile(e){
if( this.isCalculating === true ) // Calculation already done for another file.
return;
this.error = null; // Reset.
const FILE = e.target.files[0];
if( !FILE )
return; // No file sent.
this.isCalculating = true;
try {
const RESULT = await calculateHashes(FILE);
await this.$wire.addHash(RESULT.filename, RESULT.crc32, RESULT.sha1); // Send a signal to livewire.
window.refreshIcons();
} catch(err) {
this.error = err.message;
} finally {
this.isCalculating = false;
}
}
}
}