diff --git a/scripts/contextmenu/decompress.js b/scripts/contextmenu/decompress.js
new file mode 100644
index 0000000..d8167d7
--- /dev/null
+++ b/scripts/contextmenu/decompress.js
@@ -0,0 +1,105 @@
+const fs = require('fs');
+const path = require('path');
+const az = require('adm-zip');
+const Mousetrap = require('../dep/mousetrap');
+
+const lightRefresh = require('../fileview/lightrefresh');
+const preModal = require('../modal/pre');
+const postModal = require('../modal/post');
+const showError = require('../modal/common/error');
+const clearModals = require('../modal/clearmodals');
+const newToast = require('../toast/createtoast');
+const refresh = require('../fileview/refresh');
+
+module.exports = (event, pathToCompress) => {
+ if (!fs.existsSync(path.join(window.kade.cpath, window.kade.currentFolder))) {
+ return newToast("Decompression failed", "For some reason, that zip archive could not be found.");
+ }
+ let zip = new az(path.join(window.kade.cpath, window.kade.currentFolder));
+ if (!pathToCompress) {pathToCompress = window.kade.currentFolder;}
+ if (window.kade.modal) {return;}
+ preModal('decompress-folder-modal-container');
+ let modalOut = document.createElement('div');
+ modalOut.className = 'modal';
+ modalOut.id = 'decompress-folder-modal-container';
+ document.body.appendChild(modalOut);
+ let modal = document.createElement('div');
+ modal.className = 'modal-wrapper';
+ modalOut.appendChild(modal);
+ let title = document.createElement('h2');
+ title.innerHTML = 'Decompress Archive';
+ modal.appendChild(title);
+ let text = document.createElement('p');
+ text.innerHTML = "Please name the zip you'd like to decompress to.";
+ modal.appendChild(text);
+ let cont = document.createElement('div');
+ cont.className = 'button-container';
+ modal.appendChild(cont);
+ let input = document.createElement('input');
+ input.placeholder = pathToCompress.split(/\\+|\/+/gm).reverse()[0];
+ input.placeholder = input.placeholder.slice(0, input.placeholder.length - 4);
+ input.value = input.placeholder;
+ input.id = 'decompress-folder-input';
+ let lastIn = '';
+ input.oninput = () => {
+ if (!input.value.match(/^[a-zA-Z0-9-_() ]*$/gm)) {input.value = lastIn;}
+ else {lastIn = input.value;}
+ };
+ cont.appendChild(input);
+ let conf = document.createElement('button');
+ conf.innerHTML = 'Create';
+ conf.onclick = () => {
+ try {
+ input.value = input.value.trim();
+ if (!input.value.length) {return;}
+ if (fs.existsSync(path.join(window.kade.cpath, input.value))) {
+ if (!input.value.match(/^.+\(\d\)$/gm)) {input.value += ' (1)';}
+ else {
+ let tempstr = input.value.split('');
+ tempstr[input.value.length - 2] = `${Number(input.value.charAt(input.value.length - 2)) + 1}`;
+ input.value = tempstr.join('');
+ }
+ return;
+ }
+ input.style.display = 'none';
+ conf.style.display = 'none';
+ cont.style.display = 'none';
+ closeWrap.style.display = 'none';
+ title.innerHTML += " - In Progress..."
+ text.innerHTML = "Your arhive is being decompressed. Please wait a moment.
This may take some time...";
+ let bar = document.createElement('div');
+ bar.className = "loading-bar";
+ modal.appendChild(bar);
+ zip.extractAllToAsync(path.join(window.kade.cpath, input.value), undefined, undefined, () => {
+ newToast("Archive decompressed", [`The current folder was decompressed into "${input.value}" successfully`, `${window.kade.cpath}/${input.value}`], undefined, false, 5, () => refresh(`${window.kade.cpath}/${input.value}`));
+ lightRefresh();
+ modalOut.remove();
+ postModal(modalOut.id);
+ });
+ } catch {
+ newToast("Archive not Decompressed", "An error caused that folder to not be decompressed.", "#b24355", false, 5, () => {showError("Folder Creation", "There was an unknown error while trying to decompress that folder. It may be a permissions issue, or the host folder doesn't exist anymore.");});
+ clearModals();
+ postModal(modalOut.id);
+ }
+ };
+ cont.appendChild(conf);
+ input.focus();
+ let msm = new Mousetrap(modal);
+ msm.bind('esc', () => {
+ lightRefresh();
+ modalOut.remove();
+ postModal(modalOut.id);
+ });
+ msm.bind('enter', () => {conf.click();});
+ let close = document.createElement('a');
+ close.className = 'close-button';
+ close.onclick = () => {
+ lightRefresh();
+ modalOut.remove();
+ postModal(modalOut.id);
+ };
+ let closeWrap = document.createElement('div');
+ closeWrap.className = 'close-button-wrapper';
+ modal.appendChild(closeWrap);
+ closeWrap.appendChild(close);
+};
\ No newline at end of file
diff --git a/scripts/fileview/load/render.js b/scripts/fileview/load/render.js
index f2f50ac..1ddcb4f 100755
--- a/scripts/fileview/load/render.js
+++ b/scripts/fileview/load/render.js
@@ -19,7 +19,6 @@ module.exports = (dir, options) => {
if (options.animate) {cfc.classList.add('rise');}
if (file.dir) {cfc.classList.add('folder');}
if (!file.dir && path.extname(path.join(window.kade.cpath, file.trueName)) === '.zip') {cfc.classList.add('zip');}
- console.log(path.extname(path.join(window.kade.cpath, file.trueName)));
cfc.onclick = function () {
window.kade.elc = true;
if (cfc.classList.contains('file-active')) {