Files
handmade-revolt/src/components/navigation/RightSidebar.tsx
2021-08-15 18:01:25 +01:00

41 lines
1.1 KiB
TypeScript

import { Route, Switch } from "react-router";
import { useEffect, useState } from "preact/hooks";
import { internalSubscribe } from "../../lib/eventEmitter";
import SidebarBase from "./SidebarBase";
import MemberSidebar from "./right/MemberSidebar";
import { SearchSidebar } from "./right/Search";
export default function RightSidebar() {
const [sidebar, setSidebar] = useState<"search" | undefined>();
const close = () => setSidebar(undefined);
useEffect(
() =>
internalSubscribe(
"RightSidebar",
"open",
setSidebar as (...args: unknown[]) => void,
),
[setSidebar],
);
const content =
sidebar === "search" ? (
<SearchSidebar close={close} />
) : (
<MemberSidebar />
);
return (
<SidebarBase>
<Switch>
<Route path="/server/:server/channel/:channel">{content}</Route>
<Route path="/channel/:channel">{content}</Route>
</Switch>
</SidebarBase>
);
}