semi functional Server details

This commit is contained in:
2025-09-28 21:58:48 +02:00
parent fac0082a8c
commit c5ea1c39a0
2 changed files with 10 additions and 16 deletions
+9 -15
View File
@@ -9,9 +9,11 @@ import useUser, { User } from "@/hooks/get-user";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import axios from "axios"; import axios from "axios";
import { StringMap } from "@/types/typeUtils"; import { StringMap } from "@/types/typeUtils";
import ServerType from "@/types/server";
export default function Server() { export default function Server() {
const { id: ip } = useParams<{ id: string }>(); const { id: ip } = useParams<{ id: string }>();
const [server, setServer] = useState<undefined | ServerType>();
const wsRef = useRef<WebSocket | null>(null); const wsRef = useRef<WebSocket | null>(null);
const [messages, setMessages] = useState<Message[]>([]); const [messages, setMessages] = useState<Message[]>([]);
const { user, loading } = useUser(); const { user, loading } = useUser();
@@ -22,9 +24,7 @@ export default function Server() {
async function auth() { async function auth() {
const server_auth = ( const server_auth = (
( (await axios.post("/api/auth", { server_ip: ip })).data as any
await axios.post("/api/auth", { server_ip: ip })
).data as any
).token; ).token;
// Open the WebSocket connection // Open the WebSocket connection
@@ -46,6 +46,11 @@ export default function Server() {
const data = JSON.parse(m.data); const data = JSON.parse(m.data);
console.log("Message received:", data); console.log("Message received:", data);
if (data.version) {
setServer(data);
return;
}
switch (data.type) { switch (data.type) {
case "authenticated": case "authenticated":
setMessages(data.params.messages); setMessages(data.params.messages);
@@ -78,18 +83,7 @@ export default function Server() {
}, [ip, user, loading]); }, [ip, user, loading]);
return ( return (
<AppSidebar <AppSidebar server={{ channels: [], ...server } as ServerType}>
server={{
id: "bro",
name: "Bro",
channels: [
{ id: "1", name: "general", kind: "text" },
{ id: "2", name: "random", kind: "text" },
{ id: "3", name: "help", kind: "text" },
{ id: "4", name: "voice-chat", kind: "voice" },
],
}}
>
<MessageBox <MessageBox
userList={userList} userList={userList}
messages={messages messages={messages
+1 -1
View File
@@ -120,7 +120,7 @@ export default function AppSidebar({
<DropdownMenu> <DropdownMenu>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<SidebarMenuButton> <SidebarMenuButton>
Select Server {server.name}
<ChevronDown className="ml-auto" /> <ChevronDown className="ml-auto" />
</SidebarMenuButton> </SidebarMenuButton>
</DropdownMenuTrigger> </DropdownMenuTrigger>