@@ -58,23 +58,25 @@ export const PlaygroundMessage = (props: Props) => {
{/* source if aviable */}
- {props.images && props.images.length > 0 && (
-
- {props.images
- .filter((image) => image.length > 0)
- .map((image, index) => (
-
- ))}
-
- )}
+ {props.images &&
+ props.images &&
+ props.images.filter((img) => img.length > 0).length > 0 && (
+
+ {props.images
+ .filter((image) => image.length > 0)
+ .map((image, index) => (
+
+ ))}
+
+ )}
- {props.isBot && (
+ {props.isBot && props?.sources && props?.sources.length > 0 && (
{props?.sources?.map((source, index) => (
{
))}
)}
- {props.isBot && !props.isProcessing && (
-
- {!props.hideCopy && (
-
-
-
- )}
+ {!props.isProcessing && (
+
+ {props.isBot && (
+ <>
+ {!props.hideCopy && (
+
+
+
+ )}
- {/* {props.currentMessageIndex === props.totalMessages - 1 && (
-
-
-
- )} */}
+ {props.currentMessageIndex === props.totalMessages - 1 && (
+
+
+
+ )}
+ >
+ )}
+
+
+
)}
diff --git a/src/hooks/useMessageOption.tsx b/src/hooks/useMessageOption.tsx
index d4174b4..cd03a03 100644
--- a/src/hooks/useMessageOption.tsx
+++ b/src/hooks/useMessageOption.tsx
@@ -148,27 +148,37 @@ export const useMessageOption = () => {
baseUrl: cleanUrl(url)
})
- let newMessage: Message[] = [
- ...messages,
- {
- isBot: false,
- name: "You",
- message,
- sources: [],
- images: [image]
- },
- {
- isBot: true,
- name: selectedModel,
- message: "▋",
- sources: []
- }
- ]
-
- const appendingIndex = newMessage.length - 1
+ let newMessage: Message[] = []
if (!isRegenerate) {
- setMessages(newMessage)
+ newMessage = [
+ ...messages,
+ {
+ isBot: false,
+ name: "You",
+ message,
+ sources: [],
+ images: [image]
+ },
+ {
+ isBot: true,
+ name: selectedModel,
+ message: "▋",
+ sources: []
+ }
+ ]
+ } else {
+ newMessage = [
+ ...messages,
+ {
+ isBot: true,
+ name: selectedModel,
+ message: "▋",
+ sources: []
+ }
+ ]
}
+ setMessages(newMessage)
+ const appendingIndex = newMessage.length - 1
try {
setIsSearchingInternet(true)
@@ -321,8 +331,6 @@ export const useMessageOption = () => {
setIsProcessing(false)
setStreaming(false)
} catch (e) {
- e
-
if (e?.name === "AbortError") {
newMessage[appendingIndex].message = newMessage[
appendingIndex
@@ -393,27 +401,37 @@ export const useMessageOption = () => {
baseUrl: cleanUrl(url)
})
- let newMessage: Message[] = [
- ...messages,
- {
- isBot: false,
- name: "You",
- message,
- sources: [],
- images: [image]
- },
- {
- isBot: true,
- name: selectedModel,
- message: "▋",
- sources: []
- }
- ]
-
- const appendingIndex = newMessage.length - 1
+ let newMessage: Message[] = []
if (!isRegenerate) {
- setMessages(newMessage)
+ newMessage = [
+ ...messages,
+ {
+ isBot: false,
+ name: "You",
+ message,
+ sources: [],
+ images: [image]
+ },
+ {
+ isBot: true,
+ name: selectedModel,
+ message: "▋",
+ sources: []
+ }
+ ]
+ } else {
+ newMessage = [
+ ...messages,
+ {
+ isBot: true,
+ name: selectedModel,
+ message: "▋",
+ sources: []
+ }
+ ]
}
+ setMessages(newMessage)
+ const appendingIndex = newMessage.length - 1
try {
const prompt = await systemPromptForNonRagOption()
@@ -624,8 +642,12 @@ export const useMessageOption = () => {
const regenerateLastMessage = async () => {
if (history.length > 0) {
const lastMessage = history[history.length - 2]
- setHistory(history.slice(0, -1))
- setMessages(messages.slice(0, -1))
+ let newHistory = history
+ let mewMessages = messages
+ newHistory.pop()
+ mewMessages.pop()
+ setHistory(newHistory)
+ setMessages(mewMessages)
await removeMessageUsingHistoryId(historyId)
if (lastMessage.role === "user") {
await onSubmit({
diff --git a/src/libs/db.ts b/src/libs/db.ts
index e21a597..ce3cc10 100644
--- a/src/libs/db.ts
+++ b/src/libs/db.ts
@@ -286,11 +286,10 @@ export const updateHistory = async (id: string, title: string) => {
}
export const removeMessageUsingHistoryId = async (history_id: string) => {
- // remove the last message
const db = new PageAssitDatabase()
const chatHistory = await db.getChatHistory(history_id)
- const newChatHistory = chatHistory.slice(0, -1)
- await db.db.set({ [history_id]: newChatHistory })
+ chatHistory.shift()
+ await db.db.set({ [history_id]: chatHistory })
}