Skip to content

Commit 7043679

Browse files
authored
Merge pull request #13 from RonasIT/veliseev/is-generating-flag-fixes
Fix is response generating flag
2 parents 850c779 + 3c3ce63 commit 7043679

4 files changed

Lines changed: 22 additions & 3 deletions

File tree

libs/mobile/chat/features/chat/src/lib/components/messages-list/component.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ import { useSetSelectedModel } from '@open-webui-react-native/mobile/shared/feat
1111
import { View, AppFlashList } from '@open-webui-react-native/mobile/shared/ui/ui-kit';
1212
import { ChatScreenParams } from '@open-webui-react-native/mobile/shared/utils/navigation';
1313
import {
14+
Chat,
1415
chatApi,
1516
History as ChatHistory,
1617
Message,
18+
patchChatQueryData,
1719
prepareCompleteChatPayload,
1820
} from '@open-webui-react-native/shared/data-access/api';
1921
import { Role } from '@open-webui-react-native/shared/data-access/common';
@@ -131,6 +133,18 @@ export default function ChatMessagesList({
131133
const handleContinueResponsePress = (messageId: string): void => {
132134
if (!modelId) return;
133135

136+
patchChatQueryData(chatId, {
137+
chat: {
138+
history: {
139+
messages: {
140+
[messageId]: {
141+
done: false,
142+
},
143+
},
144+
},
145+
} as Chat,
146+
});
147+
134148
const completePayload = prepareCompleteChatPayload({
135149
chatId,
136150
messages,
@@ -146,7 +160,11 @@ export default function ChatMessagesList({
146160
const message = history?.messages[item.id];
147161
if (!message) return null;
148162

149-
const isLast = item.id === history?.lastAssistantMessage?.id;
163+
const lastAssistantMessageInUIList = [...messages]
164+
.reverse()
165+
.find((m) => history?.messages[m.id]?.role === Role.ASSISTANT);
166+
167+
const isLast = item.id === lastAssistantMessageInUIList?.id;
150168

151169
return item.role === Role.ASSISTANT ? (
152170
<AiMessageActions

libs/shared/data-access/api/src/lib/chats/api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ function useGet(
111111

112112
return result;
113113
},
114+
staleTime: 5000, //NOTE Needs to avoid simultaneous requests for the same chat
114115
...options,
115116
});
116117

libs/shared/data-access/api/src/lib/chats/utils/patch-chat-message-with-completion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export function patchChatMessagesWithCompletion(
1717
const { chat } = oldData;
1818
const { messages, history } = chat;
1919

20-
const lastMessage = messages[messages.length - 1];
20+
const lastMessage = history.messages[history.currentId];
2121
if (lastMessage.role !== Role.ASSISTANT) return oldData;
2222

2323
const updatedLastMessage: Message = {

libs/shared/data-access/api/src/lib/chats/utils/patch-get-chat-query.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ export const patchChatQueryData = (chatId: string, partialData: Partial<ChatResp
99
return undefined;
1010
}
1111

12-
return merge({}, draft, partialData);
12+
return new ChatResponse(merge(draft, partialData));
1313
});
1414
};

0 commit comments

Comments
 (0)