mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Clickable logo on desktop sidebar and useMatch for camera group visibility (#12379)
This commit is contained in:
parent
baf209f257
commit
0d7ee7a87a
@ -41,7 +41,7 @@ function App() {
|
|||||||
>
|
>
|
||||||
<Suspense>
|
<Suspense>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<Live />} />
|
<Route index element={<Live />} />
|
||||||
<Route path="/events" element={<Redirect to="/review" />} />
|
<Route path="/events" element={<Redirect to="/review" />} />
|
||||||
<Route path="/review" element={<Events />} />
|
<Route path="/review" element={<Events />} />
|
||||||
<Route path="/export" element={<Exports />} />
|
<Route path="/export" element={<Exports />} />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import Logo from "../Logo";
|
import Logo from "../Logo";
|
||||||
import NavItem from "./NavItem";
|
import NavItem from "./NavItem";
|
||||||
import { CameraGroupSelector } from "../filter/CameraGroupSelector";
|
import { CameraGroupSelector } from "../filter/CameraGroupSelector";
|
||||||
import { useLocation } from "react-router-dom";
|
import { Link, useMatch } from "react-router-dom";
|
||||||
import GeneralSettings from "../menu/GeneralSettings";
|
import GeneralSettings from "../menu/GeneralSettings";
|
||||||
import AccountSettings from "../menu/AccountSettings";
|
import AccountSettings from "../menu/AccountSettings";
|
||||||
import useNavigation from "@/hooks/use-navigation";
|
import useNavigation from "@/hooks/use-navigation";
|
||||||
@ -9,20 +9,23 @@ import { baseUrl } from "@/api/baseUrl";
|
|||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
|
|
||||||
function Sidebar() {
|
function Sidebar() {
|
||||||
const location = useLocation();
|
|
||||||
const basePath = useMemo(() => new URL(baseUrl).pathname, []);
|
const basePath = useMemo(() => new URL(baseUrl).pathname, []);
|
||||||
|
|
||||||
|
const isRootMatch = useMatch("/");
|
||||||
|
const isBasePathMatch = useMatch(basePath);
|
||||||
|
|
||||||
const navbarLinks = useNavigation();
|
const navbarLinks = useNavigation();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<aside className="scrollbar-container scrollbar-hidden absolute inset-y-0 left-0 z-10 flex w-[52px] flex-col justify-between overflow-y-auto border-r border-secondary-highlight bg-background_alt py-4">
|
<aside className="scrollbar-container scrollbar-hidden absolute inset-y-0 left-0 z-10 flex w-[52px] flex-col justify-between overflow-y-auto border-r border-secondary-highlight bg-background_alt py-4">
|
||||||
<span tabIndex={0} className="sr-only" />
|
<span tabIndex={0} className="sr-only" />
|
||||||
<div className="flex w-full flex-col items-center gap-0">
|
<div className="flex w-full flex-col items-center gap-0">
|
||||||
<Logo className="mb-6 h-8 w-8" />
|
<Link to="/">
|
||||||
|
<Logo className="mb-6 h-8 w-8" />
|
||||||
|
</Link>
|
||||||
{navbarLinks.map((item) => {
|
{navbarLinks.map((item) => {
|
||||||
const showCameraGroups =
|
const showCameraGroups =
|
||||||
item.id == 1 &&
|
(isRootMatch || isBasePathMatch) && item.id === 1;
|
||||||
(location.pathname === "/" || location.pathname === basePath);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div key={item.id}>
|
<div key={item.id}>
|
||||||
|
@ -27,6 +27,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
overscroll-behavior: none;
|
||||||
|
}
|
||||||
|
|
||||||
/* Hide scrollbar for Chrome, Safari and Opera */
|
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||||
.no-scrollbar::-webkit-scrollbar {
|
.no-scrollbar::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
|
Loading…
Reference in New Issue
Block a user