const fs = require('fs'); const path = require('path'); 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'); module.exports = () => { if (window.kade.modal) {return;} preModal('delete-folder-modal-container'); let modalOut = document.createElement('div'); modalOut.className = 'modal'; modalOut.id = 'delete-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 = 'Delete Folder'; modal.appendChild(title); let text = document.createElement('p'); text.innerHTML = "Are you sure you'd like to delete this folder? Remember, this cannot be undone."; modal.appendChild(text); let cont = document.createElement('div'); cont.className = 'button-container'; modal.appendChild(cont); let conf = document.createElement('button'); conf.innerHTML = 'Delete it!'; let cxl = document.createElement('button'); cxl.innerHTML = "Nevermind"; cxl.onclick = () => { lightRefresh(); modalOut.remove(); postModal(modalOut.id); }; conf.onclick = () => { try { fs.rmdirSync(path.join(window.kade.cpath, window.kade.currentFolder)); postModal(modalOut.id); modalOut.remove(); lightRefresh(window.kade.cpath); newToast("Folder Deleted", "Your folder has been deleted successfully."); } catch { newToast("Folder not Deleted", "An error caused that folder to not be deleted.", "#b24355", false, 5, () => {showError("Folder Deletion", "There was an unknown error while trying to delete that folder. It may be a permissions issue, or the host folder doesn't exist anymore.");}); clearModals(); try {modalOut.remove();} catch {} postModal(modalOut.id); } }; cont.appendChild(conf); cont.appendChild(cxl); let iin = document.createElement('input'); iin.className = 'invis'; iin.classList.add('nosel'); cont.appendChild(iin); iin.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); };