From 065f036807b0499a2f1734e4929cdd78d0cd10af Mon Sep 17 00:00:00 2001 From: hobokenchicken Date: Mon, 27 Jul 2026 08:50:14 -0400 Subject: [PATCH] fix(web): navigate to newly created DM in NewConversationModal --- web/src/components/NewConversationModal.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/web/src/components/NewConversationModal.tsx b/web/src/components/NewConversationModal.tsx index 253e41e..f20d1b5 100644 --- a/web/src/components/NewConversationModal.tsx +++ b/web/src/components/NewConversationModal.tsx @@ -1,4 +1,5 @@ import { useState, useMemo } from "react"; +import { useNavigate } from "react-router-dom"; import { useConversationStore } from "../stores/conversation.ts"; import { useMemberStore } from "../stores/member.ts"; import { useServerStore } from "../stores/server.ts"; @@ -11,6 +12,7 @@ interface NewConversationModalProps { export function NewConversationModal({ onClose }: NewConversationModalProps) { const [query, setQuery] = useState(""); const [selected, setSelected] = useState([]); + const navigate = useNavigate(); const createConversation = useConversationStore((s) => s.createConversation); const activeServerId = useServerStore((s) => s.activeServerId); const membersByServer = useMemberStore((s) => s.membersByServer); @@ -48,7 +50,14 @@ export function NewConversationModal({ onClose }: NewConversationModalProps) { const handleCreate = async () => { if (selected.length === 0) return; - await createConversation(selected); + try { + const conv = await createConversation(selected); + if (conv?.id) { + navigate(`/dm/${conv.id}`); + } + } catch (err) { + console.error("Failed to create conversation:", err); + } onClose(); };