From ab4cf4245f07c81df61129246bbe0bd73d0204af Mon Sep 17 00:00:00 2001 From: Leo dev Date: Wed, 15 Oct 2025 10:15:32 +0200 Subject: [PATCH] Working DM list --- src/app/chat/[id]/page.tsx | 1 + src/app/chat/page.tsx | 7 +++-- src/components/Sidebar.tsx | 55 ++++++++++++++++++++++++++++++++++---- src/lib/auth.ts | 5 ++-- 4 files changed, 59 insertions(+), 9 deletions(-) diff --git a/src/app/chat/[id]/page.tsx b/src/app/chat/[id]/page.tsx index 40037ca..eb3d23d 100644 --- a/src/app/chat/[id]/page.tsx +++ b/src/app/chat/[id]/page.tsx @@ -26,6 +26,7 @@ export default function DMs() { setUserList={setUserList} chatWith={id} setUser={setUser} + messages={messages} > (null); const [userList, setUserList] = useState>({}); + const [messages, setMessages] = useState([]); return ( {}} + setMessages={setMessages} + messages={messages} > Direct Messages - + {/* */} diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index cdaf2c6..c6996da 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -32,6 +32,8 @@ import auth from "@/lib/auth"; import { toast } from "sonner"; import { StringMap } from "@/types/typeUtils"; import SettingsDialog from "./settings/SettingsDialog"; +import Link from "next/link"; +import axios from "axios"; export default function AppSidebar({ children, @@ -41,8 +43,10 @@ export default function AppSidebar({ onNewMessage, setUser, server, + messages, }: Readonly<{ wsRef: React.RefObject; + messages?: Message[]; setMessages: React.Dispatch>; onNewMessage?: (msg: Message) => void; userList: StringMap; @@ -58,6 +62,10 @@ export default function AppSidebar({ const user = useUser(); const [userList, setUserList] = useState>({}); + const dms = Array.from( + new Set(messages?.flatMap((item) => [item.from, item.channel_id]) || []) + ); + useEffect(() => { const s = Cookies.get("servers")?.split(","); if (s) setServers(s.map((x) => x.trim().split("@") as [string, string])); @@ -222,9 +230,19 @@ export default function AppSidebar({ ) : ( <> - - - + {dms.map((id) => ( + + ))} )} @@ -233,6 +251,7 @@ export default function AppSidebar({