- {!isUser &&
- !(message.preview || message.content.length === 0) && (
-
- {message.streaming ? (
-
onUserStop(i)}
- >
- {Locale.Chat.Actions.Stop}
-
- ) : (
-
onResend(i)}
- >
- {Locale.Chat.Actions.Retry}
-
- )}
+ {!isUser
+ ? !(message.preview || message.content.length === 0) && (
+
+ {message.streaming ? (
+
onUserStop(i)}
+ >
+ {Locale.Chat.Actions.Stop}
+
+ ) : (
+
onResend(i)}
+ >
+ {Locale.Chat.Actions.Retry}
+
+ )}
-
copyToClipboard(message.content)}
- >
- {Locale.Chat.Actions.Copy}
+
copyToClipboard(message.content)}
+ >
+ {Locale.Chat.Actions.Copy}
+
-
- )}
+ )
+ : !(message.preview || message.content.length === 0) && (
+
+ {!message.streaming && (
+
onMessageDelete(i)}
+ >
+ {Locale.Chat.Actions.Delete}
+
+ )}
+
+ )}
{(message.preview || message.content.length === 0) &&
!isUser ? (
diff --git a/app/locales/cn.ts b/app/locales/cn.ts
index 239da23fa..bc7c836b5 100644
--- a/app/locales/cn.ts
+++ b/app/locales/cn.ts
@@ -17,6 +17,7 @@ const cn = {
Copy: "复制",
Stop: "停止",
Retry: "重试",
+ Delete: "删除",
},
Rename: "重命名对话",
Typing: "正在输入…",
diff --git a/app/locales/en.ts b/app/locales/en.ts
index 296992435..e238be3a8 100644
--- a/app/locales/en.ts
+++ b/app/locales/en.ts
@@ -19,6 +19,7 @@ const en: LocaleType = {
Copy: "Copy",
Stop: "Stop",
Retry: "Retry",
+ Delete: "Delete",
},
Rename: "Rename Chat",
Typing: "Typing…",
diff --git a/app/locales/tw.ts b/app/locales/tw.ts
index e63c57a6e..2035e09c1 100644
--- a/app/locales/tw.ts
+++ b/app/locales/tw.ts
@@ -18,6 +18,7 @@ const tw: LocaleType = {
Copy: "複製",
Stop: "停止",
Retry: "重試",
+ Delete: "刪除",
},
Rename: "重命名對話",
Typing: "正在輸入…",
diff --git a/app/store/app.ts b/app/store/app.ts
index 6ab3229ac..5e982c53a 100644
--- a/app/store/app.ts
+++ b/app/store/app.ts
@@ -194,6 +194,7 @@ interface ChatStore {
summarizeSession: () => void;
updateStat: (message: Message) => void;
updateCurrentSession: (updater: (session: ChatSession) => void) => void;
+ removeMessage: (sessionIndex: number, messageIndex: number) => void;
updateMessage: (
sessionIndex: number,
messageIndex: number,
@@ -384,6 +385,15 @@ export const useChatStore = create
()(
return recentMessages;
},
+ removeMessage(sessionIndex: number, messageIndex: number) {
+ const sessions = get().sessions;
+ const session = sessions.at(sessionIndex);
+ const messages = session?.messages;
+ // remove user's message and bot's response
+ messages?.splice(messageIndex, 2);
+ set(() => ({ sessions }));
+ },
+
updateMessage(
sessionIndex: number,
messageIndex: number,