Skip to content

Commit b857900

Browse files
committed
fix(remove messages): reset message data on route change
1 parent bd40dbe commit b857900

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

web/src/components/internal-ui/ChatBox.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { ENDPOINTS, UserType } from "../../features/constants";
66
import useGptStore from "../../utils/store";
77
import { useEffect } from "react";
88
import { v4 as uuid } from "uuid";
9+
import { useLocation } from "react-router-dom";
910

1011
interface Props {
1112
messageData: Message[];
@@ -20,6 +21,9 @@ interface BasicApiResponse {
2021

2122
const ChatBox = ({ messageData, endpoint, request, id }: Props) => {
2223
const addMessage = useGptStore((s) => s.addMessage);
24+
const resetMessages = useGptStore((s) => s.resetMessages);
25+
26+
const location = useLocation();
2327

2428
const { data, error, isLoading } = usePost<BasicApiResponse>(
2529
endpoint,
@@ -31,6 +35,10 @@ const ChatBox = ({ messageData, endpoint, request, id }: Props) => {
3135
if (data?.data.output) addMessage(UserType.BOT, data?.data.output!, uuid());
3236
}, [request, data]);
3337

38+
useEffect(() => {
39+
return () => resetMessages();
40+
}, [location.pathname]);
41+
3442
return (
3543
<Box
3644
w="100%"

web/src/utils/store.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ interface DevOpsStore {
88

99
messages: Message[];
1010
addMessage: (user: UserType, content: string, id: string) => void;
11+
12+
resetMessages: () => void;
1113
}
1214

1315
const initialState: Pick<DevOpsStore, "isOpen" | "messages"> = {
@@ -22,6 +24,7 @@ const useGptStore = create<DevOpsStore>((set) => ({
2224
set((state) => ({
2325
messages: [...state.messages, { user, content, id }],
2426
})),
27+
resetMessages: () => set({ messages: [] }),
2528
}));
2629

2730
export default useGptStore;

0 commit comments

Comments
 (0)