"use strict"; window.onload = async () => { const account = JSON.parse(localStorage.getItem("account")); const i = account.token; const api = (endpoint, data = {}) => { const promise = new Promise((resolve, reject) => { // Append a credential if (i) data.i = i; // Send request fetch(endpoint.indexOf("://") > -1 ? endpoint : `/api/${endpoint}`, { method: "POST", body: JSON.stringify(data), credentials: "omit", cache: "no-cache", }) .then(async (res) => { const body = res.status === 204 ? null : await res.json(); if (res.status === 200) { resolve(body); } else if (res.status === 204) { resolve(); } else { reject(body.error); } }) .catch(reject); }); return promise; }; const content = document.getElementById("content"); document.getElementById("ls").addEventListener("click", () => { content.innerHTML = ""; const lsEditor = document.createElement("div"); lsEditor.id = "lsEditor"; const adder = document.createElement("div"); adder.classList.add("adder"); const addKeyInput = document.createElement("input"); const addValueTextarea = document.createElement("textarea"); const addButton = document.createElement("button"); addButton.textContent = "Add"; addButton.addEventListener("click", () => { localStorage.setItem(addKeyInput.value, addValueTextarea.value); location.reload(); }); adder.appendChild(addKeyInput); adder.appendChild(addValueTextarea); adder.appendChild(addButton); lsEditor.appendChild(adder); for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); const record = document.createElement("div"); record.classList.add("record"); const header = document.createElement("header"); header.textContent = k; const textarea = document.createElement("textarea"); textarea.textContent = localStorage.getItem(k); const saveButton = document.createElement("button"); saveButton.textContent = "Save"; saveButton.addEventListener("click", () => { localStorage.setItem(k, textarea.value); location.reload(); }); const removeButton = document.createElement("button"); removeButton.textContent = "Remove"; removeButton.addEventListener("click", () => { localStorage.removeItem(k); location.reload(); }); record.appendChild(header); record.appendChild(textarea); record.appendChild(saveButton); record.appendChild(removeButton); lsEditor.appendChild(record); } content.appendChild(lsEditor); }); };