diff --git a/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx b/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx
index 3056e7659..5c0744f12 100644
--- a/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Chats/ChatRow/index.jsx
@@ -1,12 +1,10 @@
-import { useRef } from "react";
import truncate from "truncate";
import { X, Trash } from "@phosphor-icons/react";
import System from "@/models/system";
import ModalWrapper from "@/components/ModalWrapper";
import { useModal } from "@/hooks/useModal";
-export default function ChatRow({ chat }) {
- const rowRef = useRef(null);
+export default function ChatRow({ chat, onDelete }) {
const {
isOpen: isPromptOpen,
openModal: openPromptModal,
@@ -25,16 +23,13 @@ export default function ChatRow({ chat }) {
)
)
return false;
- rowRef?.current?.remove();
await System.deleteChat(chat.id);
+ onDelete(chat.id);
};
return (
<>
-
+
|
{chat.id}
|
diff --git a/frontend/src/pages/GeneralSettings/Chats/index.jsx b/frontend/src/pages/GeneralSettings/Chats/index.jsx
index f0ae8e973..336aadcce 100644
--- a/frontend/src/pages/GeneralSettings/Chats/index.jsx
+++ b/frontend/src/pages/GeneralSettings/Chats/index.jsx
@@ -142,6 +142,10 @@ function ChatsContainer() {
setOffset(offset + 1);
};
+ const handleDeleteChat = (chatId) => {
+ setChats((prevChats) => prevChats.filter((chat) => chat.id !== chatId));
+ };
+
useEffect(() => {
async function fetchChats() {
const { chats: _chats, hasPages = false } = await System.chats(offset);
@@ -196,7 +200,9 @@ function ChatsContainer() {
{!!chats &&
- chats.map((chat) => )}
+ chats.map((chat) => (
+
+ ))}
diff --git a/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx b/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx
index cc0bc2a83..a9c125cf4 100644
--- a/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx
+++ b/frontend/src/pages/GeneralSettings/EmbedChats/ChatRow/index.jsx
@@ -1,4 +1,3 @@
-import { useRef } from "react";
import truncate from "truncate";
import { X, Trash, LinkSimple } from "@phosphor-icons/react";
import ModalWrapper from "@/components/ModalWrapper";
@@ -6,8 +5,7 @@ import { useModal } from "@/hooks/useModal";
import paths from "@/utils/paths";
import Embed from "@/models/embed";
-export default function ChatRow({ chat }) {
- const rowRef = useRef(null);
+export default function ChatRow({ chat, onDelete }) {
const {
isOpen: isPromptOpen,
openModal: openPromptModal,
@@ -26,16 +24,13 @@ export default function ChatRow({ chat }) {
)
)
return false;
- rowRef?.current?.remove();
await Embed.deleteChat(chat.id);
+ onDelete(chat.id);
};
return (
<>
-
+
|
{
+ setChats((prevChats) => prevChats.filter((chat) => chat.id !== chatId));
+ };
+
useEffect(() => {
async function fetchChats() {
const { chats: _chats, hasPages = false } = await Embed.chats(offset);
@@ -99,7 +103,9 @@ function ChatsContainer() {
{!!chats &&
- chats.map((chat) => )}
+ chats.map((chat) => (
+
+ ))}
diff --git a/server/endpoints/system.js b/server/endpoints/system.js
index 4eb82fb0a..100d0a4b6 100644
--- a/server/endpoints/system.js
+++ b/server/endpoints/system.js
@@ -774,7 +774,7 @@ function systemEndpoints(app) {
try {
const { id } = request.params;
await WorkspaceChats.delete({ id: Number(id) });
- response.sendStatus(200).end();
+ response.json({ success: true, error: null });
} catch (e) {
console.error(e);
response.sendStatus(500).end();
|