diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 43daf76..abd9b9b 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -36,7 +36,7 @@ export default async function RootLayout({ }>) { const cookieStore = await cookies(); - const settings = parseClientSettings(cookieStore.get("settings")?.value); + const settings = parseClientSettings(cookieStore.get("settings")?.value || 'black'); return ( diff --git a/src/app/server/[ip]/page.tsx b/src/app/server/[ip]/page.tsx index 135e204..971f9ab 100644 --- a/src/app/server/[ip]/page.tsx +++ b/src/app/server/[ip]/page.tsx @@ -9,6 +9,7 @@ import auth from "@/lib/auth"; import { useServerMessages } from "@/hooks/use-messages"; import useApp from "@/hooks/use-app"; import { useEffectOnceWhenReady } from "@/hooks/use-once"; +import ChannelView from "@/components/ChannelView"; export default function Server() { const { ip } = useParams<{ ip: string }>(); @@ -50,30 +51,12 @@ export default function Server() { return ( - {app.currentChannel ? ( - m.channel_id === app.currentChannel?.id - ) || [] - } - sendMessage={(message) => { - serverRef.current?.send( - JSON.stringify({ - type: "send_message", - params: { - channel_id: app.currentChannel?.id, - contents: message, - }, - }) - ); - }} - /> - ) : ( -
- )} +
); } diff --git a/src/components/ChannelView.tsx b/src/components/ChannelView.tsx new file mode 100644 index 0000000..9f193db --- /dev/null +++ b/src/components/ChannelView.tsx @@ -0,0 +1,52 @@ +import { Channel, Message, Server } from "@/types/types"; +import MessageBox from "./MessageBox"; +import App from "@/types/app"; +import React, { Ref } from "react"; + +export default function ChannelView({ + app, + messages, + ip, + serverRef, +}: { + app: App; + messages: Record; + ip: string; + serverRef: React.RefObject; +}) { + if (!app.currentChannel) + return ( +
+ ); + switch (app.currentChannel.kind) { + case "text": + return ( + m.channel_id === app.currentChannel?.id + ) || [] + } + sendMessage={(message) => { + serverRef.current?.send( + JSON.stringify({ + type: "send_message", + params: { + channel_id: app.currentChannel?.id, + contents: message, + }, + }) + ); + }} + /> + ); + + case "voice": + return null; + + default: + return