diff --git a/src/app/app.ts b/src/app/app.ts index 169196e..b79a940 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -165,17 +165,18 @@ export default class Enclave

{ return; case "Messages": - console.log("msg", msg.messages); Object.entries(msg.messages).forEach(([channelId, messages]) => { if (!server.messages[channelId]) { - server.messages[channelId] = new Set(); + server.messages[channelId] = {}; } messages.forEach((message) => { - server.messages[channelId].add(message); + server.messages[channelId][message.id] = message; }); }); + this.forceRender(); + return; } } diff --git a/src/app/server.ts b/src/app/server.ts index 7d23595..be0d8fe 100644 --- a/src/app/server.ts +++ b/src/app/server.ts @@ -29,7 +29,7 @@ export default class EnclaveServer { public isSecure: boolean; public websocket?: EnclaveWebSocket; public meta?: ServerMeta; - public messages: Record>; + public messages: Record>; public constructor(hostname: string, isSecure: boolean) { this.hostname = hostname; diff --git a/src/components/page/channel/TextChannel.tsx b/src/components/page/channel/TextChannel.tsx index be60580..65fc5c0 100644 --- a/src/components/page/channel/TextChannel.tsx +++ b/src/components/page/channel/TextChannel.tsx @@ -1,5 +1,6 @@ import Enclave from "@/app/app"; import { ChannelPageProps } from "@/components/page/PageView"; +import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { StoredMessage } from "@/lib/types"; @@ -40,8 +41,10 @@ export default function TextChannel({

{appRef.current?.server?.messages[channel.id] && - Array.from(appRef.current?.server?.messages[channel.id]).map( - (message) => , + Object.entries(appRef.current?.server?.messages[channel.id]).map( + ([_, message]) => ( + + ), )}
@@ -79,9 +82,11 @@ export function TextMessage({ return (
-
- {message.author.slice(0, 2).toUpperCase()} -
+ + + {message.author.slice(0, 2).toUpperCase()} + +