import { useState } from "react"; import classnames from "classnames"; import { Link, NavLink } from "react-router-dom"; import { useUser } from "~src/services/user"; import { I18nText, useC } from "./common"; import { useMobile } from "./hooks"; import TimelineLogo from "./TimelineLogo"; import { IconButton } from "./button"; import UserAvatar from "./user/UserAvatar"; import "./AppBar.css"; function AppBarNavLink({ link, className, label, onClick, children, }: { link: string; className?: string; label?: I18nText; onClick?: () => void; children?: React.ReactNode; }) { if (label != null && children != null) { throw new Error("AppBarNavLink: label and children cannot be both set"); } const c = useC(); return ( classnames(className, isActive && "active")} onClick={onClick} > {children != null ? children : c(label)} ); } export default function AppBar() { const isMobile = useMobile(); const [isCollapse, setIsCollapse] = useState(true); const collapse = isMobile ? () => setIsCollapse(true) : undefined; const toggleCollapse = () => setIsCollapse(!isCollapse); const user = useUser(); const hasAdministrationPermission = user && user.hasAdministrationPermission; return ( ); }