const { listen } = window.__TAURI__.event; const { invoke } = window.__TAURI__.tauri; window.addEventListener("DOMContentLoaded", (e) => { fileUploader.addEventListener("click", (e) => { invoke("select_file"); }); }); listen("loaded_ines", e => { document.body.classList.remove( "no-file-selected", "is-loading", "has-error", ); document.body.classList.add("file-loaded"); fileProperties.innerHTML = ""; [ ["File path", e.payload.filepath], ["File name", e.payload.filename], ["PRG ROM size", e.payload.prg_rom_size+" bytes"], ["CHR ROM size", e.payload.chr_rom_size+" bytes"], ["Mirroring Type", e.payload.mirroring_type ? "Vertical" : "Horizontal"], ["Has persistent memory", e.payload.has_battery ? "Yes" : "No"], ["Has trainer", e.payload.has_trainer ? "Yes" : "No"], ["Has four-screen VRAM", e.payload.has_four_screen_vram ? "Yes" : "No"], ["Is a VS Unisystem ROM", e.payload.is_vs_unisystem ? "Yes" : "No"], ["Is a PlayChoice-10 ROM", e.payload.is_playchoice_10 ? "Yes" : "No"], ["iNES version identifier", e.payload.ines_version_identifier], ["Mapper", e.payload.mapper], ["PRG RAM size", e.payload.prg_ram_size], ["TV system", e.payload.tv_system ? "PAL" : "NTSC"], ].forEach(el => { let domElement = document.createElement("li"); domElement.innerHTML = ""+el[0]+": "+el[1]; fileProperties.appendChild(domElement); }); if(e.payload.chr_rom_size > 0) { let chrRomDownloadButton = document.createElement("button"); chrRomDownloadButton.type = "button"; chrRomDownloadButton.innerText = "Download CHR RAM"; let filepath = e.payload.filepath; chrRomDownloadButton.addEventListener("click", e => { invoke("download_chr_ram", { filepath: filepath, }) }); actions.appendChild(chrRomDownloadButton); } }); listen("loading", e => { document.body.classList.remove( "no-file-selected", "has-error", "file-loaded", ); document.body.classList.add("is-loading"); }); listen("error", e => { document.body.classList.remove( "is-loading", "file-loaded", ); document.body.classList.add("no-file-selected", "has-error"); errorMessage.innerText = e.payload.message; });