index.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import EncryptionHandler from "./EncryptionHandler.js";
  2. import User from "./data/User.js";
  3. import Login from "./pages/Login.js";
  4. import Register from "./pages/Register.js";
  5. import Home from "./pages/Home.js";
  6. import AddMenu from "./pages/AddMenu.js";
  7. import CreateAccount from "./pages/CreateAccount.js";
  8. import CreateIncome from "./pages/CreateIncome.js";
  9. import CreateBill from "./pages/CreateBill.js";
  10. const pages = document.querySelector(".page");
  11. let currentPage;
  12. window.changePage = (page, data)=>{
  13. console.time("change page");
  14. currentPage.close();
  15. switch(page){
  16. case "login": currentPage = new Login(); break;
  17. case "register": currentPage = new Register(); break;
  18. case "home": currentPage = new Home(); break;
  19. case "addMenu": currentPage = new AddMenu(); break;
  20. case "createAccount": currentPage = new CreateAccount(); break;
  21. case "createIncome": currentPage = new CreateIncome(); break;
  22. case "createBill": currentPage = new CreateBill(); break;
  23. }
  24. console.timeEnd("change page");
  25. }
  26. fetch("/api/user", {
  27. method: "GET",
  28. headers: {"Content-Type": "application/json"},
  29. })
  30. .then(r=>r.json())
  31. .then((response)=>{
  32. if(response.error) throw response;
  33. window.user = new User(
  34. response.id,
  35. response.name,
  36. response.email,
  37. );
  38. return Promise.all([EncryptionHandler.getKeyFromStorage(), response.accounts]);
  39. })
  40. .then(([key, accounts])=>{
  41. window.encryptionHandler = new EncryptionHandler(key);
  42. let promises = [];
  43. for(let i = 0; i < accounts.length; i++){
  44. promises.push(user.decryptAndAddAccount(accounts[i]));
  45. }
  46. return Promise.all(promises);
  47. })
  48. .then((response)=>{
  49. currentPage = new Home();
  50. })
  51. .catch((err)=>{
  52. currentPage = new Login();
  53. });