semi functional Server details
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user