Browse Source

fix: #641 delete wrong chat list

Yidadaa 1 year ago
parent
commit
4a492264a1

+ 1 - 1
app/components/chat-list.tsx

@@ -96,7 +96,7 @@ export function ChatList() {
                 index={i}
                 selected={i === selectedIndex}
                 onClick={() => selectSession(i)}
-                onDelete={chatStore.deleteSession}
+                onDelete={() => chatStore.deleteSession(i)}
               />
             ))}
             {provided.placeholder}

+ 2 - 0
app/components/ui-lib.module.scss

@@ -127,6 +127,7 @@
   width: 100vw;
   display: flex;
   justify-content: center;
+  pointer-events: none;
 
   .toast-content {
     max-width: 80vw;
@@ -141,6 +142,7 @@
     margin-bottom: 20px;
     display: flex;
     align-items: center;
+    pointer-events: all;
 
     .toast-action {
       padding-left: 20px;

+ 1 - 1
app/components/ui-lib.tsx

@@ -156,7 +156,7 @@ export function showToast(
   };
 
   setTimeout(() => {
-    close();
+    // close();
   }, delay);
 
   root.render(<Toast content={content} action={action} />);

+ 4 - 4
app/store/app.ts

@@ -205,7 +205,7 @@ interface ChatStore {
   moveSession: (from: number, to: number) => void;
   selectSession: (index: number) => void;
   newSession: () => void;
-  deleteSession: () => void;
+  deleteSession: (index?: number) => void;
   currentSession: () => ChatSession;
   onNewMessage: (message: Message) => void;
   onUserInput: (content: string) => Promise<void>;
@@ -326,13 +326,13 @@ export const useChatStore = create<ChatStore>()(
         }));
       },
 
-      deleteSession() {
+      deleteSession(i?: number) {
         const deletedSession = get().currentSession();
-        const index = get().currentSessionIndex;
+        const index = i ?? get().currentSessionIndex;
         const isLastSession = get().sessions.length === 1;
         if (!isMobileScreen() || confirm(Locale.Home.DeleteChat)) {
           get().removeSession(index);
-          
+
           showToast(Locale.Home.DeleteToast, {
             text: Locale.Home.Revert,
             onClick() {