Fix server implementatio

This commit is contained in:
2025-10-13 13:32:26 +02:00
parent f791a77d16
commit 3b98a94c19
3 changed files with 55 additions and 30 deletions
-60
View File
@@ -1,60 +0,0 @@
"use client";
import { useEffect, useRef, useState } from "react";
import { useParams } from "next/navigation";
import MessageBox from "@/components/MessageBox";
import AppSidebar from "@/components/Sidebar";
import { Message, Server as ServerType } from "@/types/types";
import useUser, { User } from "@/hooks/get-user";
import { NumberMap } from "@/types/typeUtils";
import auth, { makeAddress } from "@/lib/auth";
export default function Server() {
const { id: ip } = useParams<{ id: string }>();
const [server, setServer] = useState<undefined | ServerType>();
const wsRef = useRef<WebSocket | null>(null);
const [messages, setMessages] = useState<Message[]>([]);
const { user, loading } = useUser();
const [userList, setUserList] = useState<NumberMap<User>>({});
useEffect(() => {
if (!ip || !user || loading) return;
auth(makeAddress(ip), wsRef, setServer, setMessages);
setUserList((prev) => {
prev[user.id] = user;
return prev;
});
}, [ip, user, loading]);
return (
<AppSidebar
user={user}
server={
{
channels: [{ id: "general", name: "General", kind: "text" }],
...server,
} as ServerType
}
>
<MessageBox
channelName="General"
userList={userList}
setUserList={setUserList}
messages={messages
.filter((m) => m.channel_id === "general")
.toReversed()}
sendMessage={(message) => {
wsRef.current?.send(
JSON.stringify({
type: "send_message",
params: {
channel_id: "general",
contents: message,
},
})
);
}}
/>
</AppSidebar>
);
}