Skip to content

Commit 15d317e

Browse files
authored
Merge pull request #45 from jakobhoeg/develop
fix: clear messages without directly mutating the state
2 parents 0bbf98f + 1a55956 commit 15d317e

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

src/app/page.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ export default function Home() {
170170
navCollapsedSize={10}
171171
defaultLayout={[30, 160]}
172172
formRef={formRef}
173+
setMessages={setMessages}
173174
/>
174175
<DialogContent className="flex flex-col space-y-4">
175176
<DialogHeader className="space-y-2">

src/components/chat/chat-layout.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from "@/components/ui/resizable";
99
import { cn } from "@/lib/utils";
1010
import { Sidebar } from "../sidebar";
11-
import { useChat } from "ai/react";
11+
import { Message, useChat } from "ai/react";
1212
import Chat, { ChatProps } from "./chat";
1313
import ChatList from "./chat-list";
1414
import { HamburgerMenuIcon } from "@radix-ui/react-icons";
@@ -18,6 +18,7 @@ interface ChatLayoutProps {
1818
defaultCollapsed?: boolean;
1919
navCollapsedSize: number;
2020
chatId: string;
21+
setMessages: (messages: Message[]) => void;
2122
}
2223

2324
type MergedProps = ChatLayoutProps & ChatProps;
@@ -37,6 +38,7 @@ export function ChatLayout({
3738
setSelectedModel,
3839
loadingSubmit,
3940
formRef,
41+
setMessages,
4042
}: MergedProps) {
4143
const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed);
4244
const [isMobile, setIsMobile] = useState(false);
@@ -97,6 +99,7 @@ export function ChatLayout({
9799
messages={messages}
98100
isMobile={isMobile}
99101
chatId={chatId}
102+
setMessages={setMessages}
100103
/>
101104
</ResizablePanel>
102105
<ResizableHandle className={cn("hidden md:flex")} withHandle />

src/components/sidebar.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@ interface SidebarProps {
3535
onClick?: () => void;
3636
isMobile: boolean;
3737
chatId: string;
38+
setMessages: (messages: Message[]) => void;
3839
}
3940

4041
export function Sidebar({
4142
messages,
4243
isCollapsed,
4344
isMobile,
4445
chatId,
46+
setMessages,
4547
}: SidebarProps) {
4648
const [localChats, setLocalChats] = useState<
4749
{ chatId: string; messages: Message[] }[]
@@ -112,7 +114,7 @@ export function Sidebar({
112114
onClick={() => {
113115
router.push("/");
114116
// Clear messages
115-
messages.splice(0, messages.length);
117+
setMessages([]);
116118
}}
117119
variant="ghost"
118120
className="flex justify-between w-full h-14 text-sm xl:text-lg font-normal items-center "

0 commit comments

Comments
 (0)