Browse Source

feat: delete idb after migration

Timothy J. Baek 1 year ago
parent
commit
d78df83453

+ 2 - 2
backend/apps/web/models/chats.py

@@ -119,8 +119,8 @@ class ChatTable:
             for chat in Chat.select()
             .where(Chat.user_id == user_id)
             .order_by(Chat.timestamp.desc())
-            .limit(limit)
-            .offset(skip)
+            # .limit(limit)
+            # .offset(skip)
         ]
 
     def get_chat_by_id_and_user_id(self, id: str, user_id: str) -> Optional[ChatModel]:

+ 0 - 9
src/lib/components/layout/Sidebar.svelte

@@ -49,15 +49,6 @@
 		await deleteChatById(localStorage.token, id);
 		await chats.set(await getChatList(localStorage.token));
 	};
-
-	// const deleteChatHistory = async () => {
-	// 	await $db.deleteAllChat();
-
-	// const tx = this.db.transaction('chats', 'readwrite');
-	// 			await Promise.all([tx.store.clear(), tx.done]);
-
-	// 			await chats.set(await this.getChats());
-	// };
 </script>
 
 <div

+ 19 - 8
src/routes/(app)/+layout.svelte

@@ -1,6 +1,6 @@
 <script lang="ts">
 	import toast from 'svelte-french-toast';
-	import { openDB } from 'idb';
+	import { openDB, deleteDB } from 'idb';
 	import { onMount, tick } from 'svelte';
 	import { goto } from '$app/navigation';
 
@@ -72,16 +72,26 @@
 		if ($user === undefined) {
 			await goto('/auth');
 		} else if (['user', 'admin'].includes($user.role)) {
-			DB = await openDB('Chats', 1);
+			try {
+				// Check if IndexedDB exists
+				DB = await openDB('Chats', 1);
 
-			if (DB) {
-				const chats = await DB.getAllFromIndex('chats', 'timestamp');
-				localDBChats = chats.map((item, idx) => chats[chats.length - 1 - idx]);
+				if (DB) {
+					const chats = await DB.getAllFromIndex('chats', 'timestamp');
+					localDBChats = chats.map((item, idx) => chats[chats.length - 1 - idx]);
 
-				console.log('localdb', localDBChats);
-			}
+					if (localDBChats.length === 0) {
+						await deleteDB('Chats');
+					}
+
+					console.log('localdb', localDBChats);
+				}
 
-			console.log(DB);
+				console.log(DB);
+			} catch (error) {
+				// IndexedDB Not Found
+				console.log('IDB Not Found');
+			}
 
 			console.log();
 			await settings.set(JSON.parse(localStorage.getItem('settings') ?? '{}'));
@@ -214,6 +224,7 @@
 
 										const tx = DB.transaction('chats', 'readwrite');
 										await Promise.all([tx.store.clear(), tx.done]);
+										await deleteDB('Chats');
 
 										localDBChats = [];
 									}}