diff --git a/frontend/src/pages/Home/components/sidebar/SideBar.tsx b/frontend/src/pages/Home/components/sidebar/SideBar.tsx index 9e8578a..69d9324 100644 --- a/frontend/src/pages/Home/components/sidebar/SideBar.tsx +++ b/frontend/src/pages/Home/components/sidebar/SideBar.tsx @@ -1,4 +1,4 @@ -import React, { useState, useRef, useEffect, SetStateAction } from "react"; +import React, { useState, useRef, useEffect } from "react"; // @ts-ignore import FolderIcon from "@/assets/fontawesome/svg/folder.svg?react"; diff --git a/frontend/src/stores/authStore.ts b/frontend/src/stores/authStore.ts index 5be5e8a..8916bef 100644 --- a/frontend/src/stores/authStore.ts +++ b/frontend/src/stores/authStore.ts @@ -1,11 +1,13 @@ import { create } from "zustand"; import { persist } from "zustand/middleware"; +import { useNoteStore } from "./notesStore"; import { deriveKey, generateMasterKey, unwrapMasterKey, wrapMasterKey, } from "../api/encryption"; +import { FolderTree } from "@/pages/Home/components/sidebar/subcomponents/FolderTree"; interface User { id: number; @@ -30,6 +32,7 @@ interface AuthState { logout: () => Promise; checkAuth: () => Promise; initEncryptionKey: (password: string, salt: string) => Promise; + clearAll: () => void; } const API_URL = "http://localhost:8000/api"; @@ -115,9 +118,10 @@ export const useAuthStore = create()( set({ user: null, - encryptionKey: null, // Wipe from memory + encryptionKey: null, isAuthenticated: false, }); + get().clearAll(); }, checkAuth: async () => { @@ -137,6 +141,22 @@ export const useAuthStore = create()( get().logout(); } }, + + clearAll: () => { + set({ + user: null, + encryptionKey: null, + isAuthenticated: false, + rememberMe: false, + }); + + localStorage.clear(); + useNoteStore.setState({ + folderTree: null, + selectedFolder: null, + selectedNote: null, + }); + }, }), { name: "auth-storage", @@ -149,3 +169,6 @@ export const useAuthStore = create()( }, ), ); +if (typeof window !== "undefined") { + (window as any).useAuthStore = useAuthStore; +} diff --git a/frontend/src/stores/notesStore.ts b/frontend/src/stores/notesStore.ts index 038971c..8c0fd8a 100644 --- a/frontend/src/stores/notesStore.ts +++ b/frontend/src/stores/notesStore.ts @@ -36,15 +36,15 @@ const updateFolder = ( id: number, folder: FolderTreeNode, newFolder: FolderUpdate, -) => { +): FolderTreeNode => { if (folder.id === id) { return { ...folder, ...newFolder }; } if (folder.children) { return { ...folder, - children: folder.children.map((folder) => - updateFolder(id, folder, newFolder), + children: folder.children.map((child) => + updateFolder(id, child, newFolder), ), }; }