48 lines
1.2 KiB
JavaScript
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|