diff --git a/app/components/chat-list.tsx b/app/components/chat-list.tsx
index 7ba55585..f76b369f 100644
--- a/app/components/chat-list.tsx
+++ b/app/components/chat-list.tsx
@@ -18,6 +18,7 @@ import { MaskAvatar } from "./mask";
import { Mask } from "../store/mask";
import { useRef, useEffect } from "react";
import { showConfirm } from "./ui-lib";
+import { useMobileScreen } from "../utils";
export function ChatItem(props: {
onClick?: () => void;
@@ -80,7 +81,11 @@ export function ChatItem(props: {
{
+ props.onDelete?.();
+ e.preventDefault();
+ e.stopPropagation();
+ }}
>
@@ -101,6 +106,7 @@ export function ChatList(props: { narrow?: boolean }) {
);
const chatStore = useChatStore();
const navigate = useNavigate();
+ const isMobileScreen = useMobileScreen();
const onDragEnd: OnDragEndResponder = (result) => {
const { destination, source } = result;
@@ -142,7 +148,7 @@ export function ChatList(props: { narrow?: boolean }) {
}}
onDelete={async () => {
if (
- !props.narrow ||
+ (!props.narrow && !isMobileScreen) ||
(await showConfirm(Locale.Home.DeleteChat))
) {
chatStore.deleteSession(i);
diff --git a/app/components/sidebar.tsx b/app/components/sidebar.tsx
index 85af3ed2..beeee865 100644
--- a/app/components/sidebar.tsx
+++ b/app/components/sidebar.tsx
@@ -1,4 +1,4 @@
-import { useEffect, useRef, useCallback, useMemo } from "react";
+import { useEffect, useRef, useMemo } from "react";
import styles from "./home.module.scss";
@@ -8,6 +8,7 @@ import GithubIcon from "../icons/github.svg";
import ChatGptIcon from "../icons/chatgpt.svg";
import AddIcon from "../icons/add.svg";
import CloseIcon from "../icons/close.svg";
+import DeleteIcon from "../icons/delete.svg";
import MaskIcon from "../icons/mask.svg";
import PluginIcon from "../icons/plugin.svg";
import DragIcon from "../icons/drag.svg";
@@ -202,7 +203,7 @@ export function SideBar(props: { className?: string }) {
}
+ icon={}
onClick={async () => {
if (await showConfirm(Locale.Home.DeleteChat)) {
chatStore.deleteSession(chatStore.currentSessionIndex);
diff --git a/app/store/chat.ts b/app/store/chat.ts
index 95822c19..ff7eb51b 100644
--- a/app/store/chat.ts
+++ b/app/store/chat.ts
@@ -85,33 +85,6 @@ function getSummarizeModel(currentModel: string) {
return currentModel.startsWith("gpt") ? SUMMARIZE_MODEL : currentModel;
}
-interface ChatStore {
- sessions: ChatSession[];
- currentSessionIndex: number;
- clearSessions: () => void;
- moveSession: (from: number, to: number) => void;
- selectSession: (index: number) => void;
- newSession: (mask?: Mask) => void;
- deleteSession: (index: number) => void;
- currentSession: () => ChatSession;
- nextSession: (delta: number) => void;
- onNewMessage: (message: ChatMessage) => void;
- onUserInput: (content: string) => Promise;
- summarizeSession: () => void;
- updateStat: (message: ChatMessage) => void;
- updateCurrentSession: (updater: (session: ChatSession) => void) => void;
- updateMessage: (
- sessionIndex: number,
- messageIndex: number,
- updater: (message?: ChatMessage) => void,
- ) => void;
- resetSession: () => void;
- getMessagesWithMemory: () => ChatMessage[];
- getMemoryPrompt: () => ChatMessage;
-
- clearAllData: () => void;
-}
-
function countMessages(msgs: ChatMessage[]) {
return msgs.reduce((pre, cur) => pre + estimateTokenLength(cur.content), 0);
}