{localize('com_ui_fork_default')}
diff --git a/client/src/hooks/SSE/useEventHandlers.ts b/client/src/hooks/SSE/useEventHandlers.ts
index ea341c39b..89f2e9af6 100644
--- a/client/src/hooks/SSE/useEventHandlers.ts
+++ b/client/src/hooks/SSE/useEventHandlers.ts
@@ -23,6 +23,7 @@ import type { TGenTitleMutation } from '~/data-provider';
import {
scrollToEnd,
addConversation,
+ getAllContentText,
deleteConversation,
updateConversation,
getConversationById,
@@ -30,6 +31,7 @@ import {
import useContentHandler from '~/hooks/SSE/useContentHandler';
import useStepHandler from '~/hooks/SSE/useStepHandler';
import { useAuthContext } from '~/hooks/AuthContext';
+import { MESSAGE_UPDATE_INTERVAL } from '~/common';
import { useLiveAnnouncer } from '~/Providers';
import store from '~/store';
@@ -55,8 +57,6 @@ export type EventHandlerParams = {
resetLatestMessage?: Resetter;
};
-const MESSAGE_UPDATE_INTERVAL = 7000;
-
export default function useEventHandlers({
genTitle,
setMessages,
@@ -78,7 +78,13 @@ export default function useEventHandlers({
const { token } = useAuthContext();
const contentHandler = useContentHandler({ setMessages, getMessages });
- const stepHandler = useStepHandler({ setMessages, getMessages });
+ const stepHandler = useStepHandler({
+ setMessages,
+ getMessages,
+ announcePolite,
+ setIsSubmitting,
+ lastAnnouncementTimeRef,
+ });
const messageHandler = useCallback(
(data: string | undefined, submission: EventSubmission) => {
@@ -356,7 +362,7 @@ export default function useEventHandlers({
});
announcePolite({
- message: responseMessage?.text ?? '',
+ message: getAllContentText(responseMessage),
});
/* Update messages; if assistants endpoint, client doesn't receive responseMessage */
diff --git a/client/src/hooks/SSE/useStepHandler.ts b/client/src/hooks/SSE/useStepHandler.ts
index 40b5f1859..ae57e8daf 100644
--- a/client/src/hooks/SSE/useStepHandler.ts
+++ b/client/src/hooks/SSE/useStepHandler.ts
@@ -1,17 +1,22 @@
import { useCallback, useRef } from 'react';
-import { StepTypes, ContentTypes, ToolCallTypes } from 'librechat-data-provider';
+import { StepTypes, ContentTypes, ToolCallTypes, getNonEmptyValue } from 'librechat-data-provider';
import type {
Agents,
- PartMetadata,
TMessage,
- TMessageContentParts,
+ PartMetadata,
EventSubmission,
+ TMessageContentParts,
} from 'librechat-data-provider';
-import { getNonEmptyValue } from 'librechat-data-provider';
+import type { SetterOrUpdater } from 'recoil';
+import type { AnnounceOptions } from '~/common';
+import { MESSAGE_UPDATE_INTERVAL } from '~/common';
type TUseStepHandler = {
+ announcePolite: (options: AnnounceOptions) => void;
setMessages: (messages: TMessage[]) => void;
getMessages: () => TMessage[] | undefined;
+ setIsSubmitting: SetterOrUpdater