import React from "react"; import { useMatches } from "react-router"; import { useShallow } from "zustand/react/shallow"; import { useServerListStore } from "~/stores/server-list-store"; import { CreateServerButton } from "./custom-ui/create-server-button"; import { HomeButton } from "./custom-ui/home-button"; import { ServerButton } from "./custom-ui/server-button"; import UserStatus from "./custom-ui/user-status"; import { ScrollArea } from "./ui/scroll-area"; import { Separator } from "./ui/separator"; interface AppLayoutProps { children: React.ReactNode; } export default function AppLayout({ children }: AppLayoutProps) { let servers = useServerListStore(useShallow((state) => Object.values(state.servers))) const matches = useMatches(); let list = React.useMemo(() => { return matches.map(match => (match.handle as { listComponent?: React.ReactNode })?.listComponent).reverse().find(component => !!component) }, [matches]) return (
{list}
{children}
) }