From 3b98a94c19de9ccdc2f4bd7da4a1d2b7178c1a1b Mon Sep 17 00:00:00 2001 From: Leo dev Date: Mon, 13 Oct 2025 13:32:26 +0200 Subject: [PATCH] Fix server implementatio --- src/app/server/{[id] => [ip]}/page.tsx | 36 ++++++++++------------- src/app/settings/page.tsx | 9 ++++-- src/components/Sidebar.tsx | 40 +++++++++++++++++++++----- 3 files changed, 55 insertions(+), 30 deletions(-) rename src/app/server/{[id] => [ip]}/page.tsx (59%) diff --git a/src/app/server/[id]/page.tsx b/src/app/server/[ip]/page.tsx similarity index 59% rename from src/app/server/[id]/page.tsx rename to src/app/server/[ip]/page.tsx index d700cf0..cf518f0 100644 --- a/src/app/server/[id]/page.tsx +++ b/src/app/server/[ip]/page.tsx @@ -5,36 +5,30 @@ 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 { User } from "@/hooks/get-user"; +import { StringMap } from "@/types/typeUtils"; import auth, { makeAddress } from "@/lib/auth"; export default function Server() { - const { id: ip } = useParams<{ id: string }>(); + const { ip } = useParams<{ ip: string }>(); + const wsServerRef = useRef(null); + const wsNodeRef = useRef(null); const [server, setServer] = useState(); - const wsRef = useRef(null); const [messages, setMessages] = useState([]); - const { user, loading } = useUser(); - const [userList, setUserList] = useState>({}); + const [userList, setUserList] = useState>({}); useEffect(() => { - if (!ip || !user || loading) return; - auth(makeAddress(ip), wsRef, setServer, setMessages); - setUserList((prev) => { - prev[user.id] = user; - return prev; - }); - }, [ip, user, loading]); + if (!ip) return; + auth(makeAddress(ip, 7080), wsServerRef, setServer, setMessages); + }, [ip]); return ( m.channel_id === "general") .toReversed()} sendMessage={(message) => { - wsRef.current?.send( + wsServerRef.current?.send( JSON.stringify({ type: "send_message", params: { diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index b559245..ad8883f 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -7,15 +7,17 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Card } from "@/components/ui/card"; import { CardContent } from "@/components/ui/card"; import { PROFILE_SCHEMA, CLIENT_SCHEMA } from "@/types/settings"; -import { useRouter } from "next/navigation"; +import { useParams, useRouter, useSearchParams } from "next/navigation"; import { Button } from "@/components/ui/button"; import { ChevronLeftCircle } from "lucide-react"; import axios from "axios"; +import { useEffect } from "react"; export default function SettingsPage() { const [settings, setSettings] = useClientSettings(); const [profileSettings, setProfileSettings] = useProfileSettings(); const router = useRouter(); + const params = useSearchParams(); return (
@@ -26,7 +28,10 @@ export default function SettingsPage() { > - + Client Settings Profile Settings diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index e495ad3..53ad5ed 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -41,6 +41,7 @@ export default function AppSidebar({ setMessages, onNewMessage, setUser, + server, }: Readonly<{ wsRef: React.RefObject; setMessages: React.Dispatch>; @@ -50,10 +51,10 @@ export default function AppSidebar({ chatWith?: string; children?: React.ReactNode; setUser?: React.Dispatch>; + server?: Server | undefined; }>) { const [servers, setServers] = useState<[string, string][]>([]); const [newServer, setNewServer] = useState({ name: "", ip: "" }); - const [server, setServer] = useState(); const router = useRouter(); const user = useUser(); const [userList, setUserList] = useState>({}); @@ -225,16 +226,21 @@ export default function AppSidebar({ ) : ( <> - - - + + + )}
- +
@@ -244,14 +250,34 @@ export default function AppSidebar({ ); } -function DMItem({ name, status }: { name: string; status: string }) { +function DMItem({ + name, + avatar, + status, + settings, +}: { + name: string; + avatar: string; + status: string; + settings?: boolean; +}) { + const router = useRouter(); + return ( - +
{name} {status}
+ {settings && ( + + )}
); }