diff --git a/src/app/server/[ip]/page.tsx b/src/app/server/[ip]/page.tsx index de76580..75484bb 100644 --- a/src/app/server/[ip]/page.tsx +++ b/src/app/server/[ip]/page.tsx @@ -37,6 +37,7 @@ export default function Server() { ); useEffect(() => { + app.setServer(server); const channelId = searchParams.get("ch"); if (channelId) { app.setCurrentChannel( diff --git a/src/components/app/SidebarChannels.tsx b/src/components/app/SidebarChannels.tsx index d04f9f2..66219bb 100644 --- a/src/components/app/SidebarChannels.tsx +++ b/src/components/app/SidebarChannels.tsx @@ -21,6 +21,11 @@ export function ChannelItem({ channel, app }: { channel: Channel; app: App }) { { + window.history.replaceState( + null, + "", + `/server/${app.server?.id}?ch=${channel.id}` + ); app.setCurrentChannel(channel); app.setSidebarOpen(false); }} diff --git a/src/hooks/use-app.ts b/src/hooks/use-app.ts index d65f47f..fa3427e 100644 --- a/src/hooks/use-app.ts +++ b/src/hooks/use-app.ts @@ -19,6 +19,7 @@ export default function useApp(): App { const [dms, setDms] = useState([]); const [servers, setServers] = useState>({}); const [currentChannel, setCurrentChannel] = useState(null); + const [server, setServer] = useState(); useEffect(() => { const stored = Cookies.get("servers"); @@ -39,6 +40,8 @@ export default function useApp(): App { return { currentChannel, setCurrentChannel, + server, + setServer, servers, setServers, dms, diff --git a/src/types/app.ts b/src/types/app.ts index 4353fcc..f103e4c 100644 --- a/src/types/app.ts +++ b/src/types/app.ts @@ -10,6 +10,9 @@ export default interface App { node: RefObject; profile: UserProfile | null; + server: Server | undefined; + setServer: SetState; + clientSettings: ClientSettings; setClientSettings: SetState;