From 4ee5d0e5f6a8b4e522d45c6ff32e1669d06eef2c Mon Sep 17 00:00:00 2001 From: Emil Elgaard Date: Sun, 26 Mar 2023 16:47:47 -0400 Subject: [PATCH 1/4] simplify deleteChat logic --- src/lib/Storage.svelte | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib/Storage.svelte b/src/lib/Storage.svelte index e3f8f3d..a569bb1 100644 --- a/src/lib/Storage.svelte +++ b/src/lib/Storage.svelte @@ -50,8 +50,6 @@ export const deleteChat = (chatId: number) => { const chats = get(chatsStorage) - const chatIndex = chats.findIndex((chat) => chat.id === chatId) - chats.splice(chatIndex, 1) - chatsStorage.set(chats) + chatsStorage.set(chats.filter((chat) => chat.id !== chatId)) } From 8075585778ef3a213f2c3692981927f8cdea0b1a Mon Sep 17 00:00:00 2001 From: Emil Elgaard Date: Sun, 26 Mar 2023 16:49:15 -0400 Subject: [PATCH 2/4] add button to to delete an individual chat. --- package-lock.json | 8 +++ package.json | 3 ++ src/app.scss | 24 ++++++++- src/lib/Sidebar.svelte | 117 +++++++++++++++++++++++------------------ 4 files changed, 99 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8792273..2cd0ff7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,9 @@ "": { "name": "chatgpt-web", "version": "0.0.0", + "dependencies": { + "lodash": "^4.17.21" + }, "devDependencies": { "@fullhuman/postcss-purgecss": "^5.0.0", "@microsoft/fetch-event-source": "^2.0.1", @@ -3074,6 +3077,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", diff --git a/package.json b/package.json index b6c1fb4..bd421bc 100644 --- a/package.json +++ b/package.json @@ -39,5 +39,8 @@ "tslib": "^2.5.0", "typescript": "^5.0.2", "vite": "^4.1.0" + }, + "dependencies": { + "lodash": "^4.17.21" } } diff --git a/src/app.scss b/src/app.scss index 864e2e4..3c51ecb 100644 --- a/src/app.scss +++ b/src/app.scss @@ -13,7 +13,7 @@ flex-grow: 1; min-height: 100vh; - section.section{ + section.section { flex-grow: 1; } } @@ -32,7 +32,7 @@ a.is-disabled { filter: grayscale(100%); } -.user-message { +.user-message { max-width: 90%; margin-right: 0; margin-left: auto; @@ -110,6 +110,26 @@ $modal-background-background-color-dark: rgba($dark, 0.86) !default; // remove t top: 1rem; } +.menu-list { + a:hover { + .delete-btn { + display: block; + } + } +} + +.delete-btn { + display: none; + position: absolute; + width: 20px; + height: 20px; + top: 50%; + right: 0; + transform: translateY(-50%); + margin-right: 5px; + +} + /* Loading chat messages */ .is-loading { opacity: 0.5; diff --git a/src/lib/Sidebar.svelte b/src/lib/Sidebar.svelte index 6066c9a..7d02432 100644 --- a/src/lib/Sidebar.svelte +++ b/src/lib/Sidebar.svelte @@ -1,70 +1,85 @@ From d95152efe2d2d19bbae7f46fb8f7b66e065103a8 Mon Sep 17 00:00:00 2001 From: Emil Elgaard Date: Sun, 26 Mar 2023 16:59:30 -0400 Subject: [PATCH 3/4] guard against deleting the last chat --- src/lib/Sidebar.svelte | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/Sidebar.svelte b/src/lib/Sidebar.svelte index 7d02432..b8f4f6a 100644 --- a/src/lib/Sidebar.svelte +++ b/src/lib/Sidebar.svelte @@ -8,10 +8,11 @@ $: activeChatId = $params && $params.chatId ? parseInt($params.chatId) : undefined - function delChat(chatId) { + function delChat (chatId) { if (activeChatId === chatId) { // switch to another chat if deleting the active one - const newChatId = _.maxBy($chatsStorage.filter(chat => chat.id !== chatId), 'id').id + const newChatId = _.maxBy($chatsStorage.filter(chat => chat.id !== chatId), 'id')?.id + if (!newChatId) return replace(`/chat/:${newChatId}`).then(() => deleteChat(chatId)) } else { deleteChat(chatId) From c7e851e1a2d53332d57a8f62f0fa13d68475472b Mon Sep 17 00:00:00 2001 From: Emil Elgaard Date: Sun, 26 Mar 2023 17:05:18 -0400 Subject: [PATCH 4/4] linting --- src/lib/Sidebar.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/Sidebar.svelte b/src/lib/Sidebar.svelte index b8f4f6a..21c483c 100644 --- a/src/lib/Sidebar.svelte +++ b/src/lib/Sidebar.svelte @@ -1,8 +1,8 @@