44 lines
1.8 KiB
JavaScript
44 lines
1.8 KiB
JavaScript
import apx from "./apx.js";
|
|
|
|
const autoDeletionBtnElArray = document.querySelectorAll("li.autoDeletionBtn");
|
|
|
|
autoDeletionBtnElArray.forEach(btn => {
|
|
btn.addEventListener("click", () => {
|
|
autoDeletionBtnElArray.forEach(btn => btn.classList.remove("bg-base-200"));
|
|
btn.classList.add("bg-base-200");
|
|
});
|
|
});
|
|
|
|
document.querySelector("#createThreadBtn").addEventListener("click", async () => {
|
|
const { publicKey, privateKey } = await apx.crypto.genKey();
|
|
|
|
const messageObj = await (async (publicKey) => {
|
|
const uuid = crypto.randomUUID();
|
|
const timestamp = Date.now();
|
|
const alias = await apx.crypto.encryptMessage(JSON.parse(localStorage.getItem("apx")).data.headers.xalias, publicKey);
|
|
|
|
return {
|
|
privatriid: `${uuid}_${timestamp}`,
|
|
thread: uuid,
|
|
timestamp: timestamp,
|
|
owner: alias,
|
|
title: await apx.crypto.encryptMessage(document.querySelector("#threadNameInput").value, publicKey),
|
|
sender_alias: alias,
|
|
publicKey: publicKey,
|
|
aliases: [
|
|
alias
|
|
],
|
|
message: await apx.crypto.encryptMessage(document.querySelector("#threadDescriptionInput").value, publicKey),
|
|
dt_autodestruction: (() => {
|
|
const selectedBtn = Array.from(autoDeletionBtnElArray).find(btn => btn.classList.contains("bg-base-200"));
|
|
return parseInt(selectedBtn ? selectedBtn.getAttribute("data-auto-deletion") : 0, 10);
|
|
})(),
|
|
urgencydeletion: document.querySelector('input[type="checkbox"].toggle').checked
|
|
};
|
|
})(publicKey);
|
|
|
|
// Faire un post sur l'endpoint /privatri
|
|
|
|
await apx.indexedDB.set("privatri", "threads", { uuid: messageObj.thread, privateKey: privateKey });
|
|
await apx.indexedDB.set("privatri", "messages", messageObj);
|
|
}); |