mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-11 05:35:25 +03:00
Separate settings items so layout is more consistent
This commit is contained in:
parent
7e5eb82882
commit
f734a1f887
@ -1,6 +1,5 @@
|
|||||||
import { navbarLinks } from "@/pages/site-navigation";
|
import { navbarLinks } from "@/pages/site-navigation";
|
||||||
import NavItem from "./NavItem";
|
import NavItem from "./NavItem";
|
||||||
import SettingsNavItems from "../settings/SettingsNavItems";
|
|
||||||
import { IoIosWarning } from "react-icons/io";
|
import { IoIosWarning } from "react-icons/io";
|
||||||
import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer";
|
import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
@ -8,6 +7,8 @@ import { FrigateStats } from "@/types/stats";
|
|||||||
import { useFrigateStats } from "@/api/ws";
|
import { useFrigateStats } from "@/api/ws";
|
||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
import useStats from "@/hooks/use-stats";
|
import useStats from "@/hooks/use-stats";
|
||||||
|
import GeneralSettings from "../settings/GeneralSettings";
|
||||||
|
import AccountSettings from "../settings/AccountSettings";
|
||||||
|
|
||||||
function Bottombar() {
|
function Bottombar() {
|
||||||
return (
|
return (
|
||||||
@ -23,7 +24,8 @@ function Bottombar() {
|
|||||||
dev={item.dev}
|
dev={item.dev}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
<SettingsNavItems className="flex flex-shrink-0 justify-between gap-4" />
|
<GeneralSettings />
|
||||||
|
<AccountSettings />
|
||||||
<StatusAlertNav />
|
<StatusAlertNav />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import SettingsNavItems from "../settings/SettingsNavItems";
|
|||||||
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 { useLocation } from "react-router-dom";
|
||||||
|
import GeneralSettings from "../settings/GeneralSettings";
|
||||||
|
import AccountSettings from "../settings/AccountSettings";
|
||||||
|
|
||||||
function Sidebar() {
|
function Sidebar() {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@ -31,7 +33,10 @@ function Sidebar() {
|
|||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
<SettingsNavItems className="hidden md:flex flex-col items-center mb-8" />
|
<div className="flex flex-col items-center mb-8">
|
||||||
|
<GeneralSettings />
|
||||||
|
<AccountSettings />
|
||||||
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
22
web/src/components/settings/AccountSettings.tsx
Normal file
22
web/src/components/settings/AccountSettings.tsx
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import {
|
||||||
|
Tooltip,
|
||||||
|
TooltipContent,
|
||||||
|
TooltipTrigger,
|
||||||
|
} from "@/components/ui/tooltip";
|
||||||
|
import { VscAccount } from "react-icons/vsc";
|
||||||
|
import { Button } from "../ui/button";
|
||||||
|
|
||||||
|
export default function AccountSettings() {
|
||||||
|
return (
|
||||||
|
<Tooltip>
|
||||||
|
<TooltipTrigger asChild>
|
||||||
|
<Button size="icon" variant="ghost">
|
||||||
|
<VscAccount />
|
||||||
|
</Button>
|
||||||
|
</TooltipTrigger>
|
||||||
|
<TooltipContent side="right">
|
||||||
|
<p>Account</p>
|
||||||
|
</TooltipContent>
|
||||||
|
</Tooltip>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -27,7 +27,6 @@ import {
|
|||||||
import { Button } from "../ui/button";
|
import { Button } from "../ui/button";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { CgDarkMode } from "react-icons/cg";
|
import { CgDarkMode } from "react-icons/cg";
|
||||||
import { VscAccount } from "react-icons/vsc";
|
|
||||||
import {
|
import {
|
||||||
colorSchemes,
|
colorSchemes,
|
||||||
friendlyColorSchemeName,
|
friendlyColorSchemeName,
|
||||||
@ -59,10 +58,10 @@ import {
|
|||||||
} from "@/components/ui/tooltip";
|
} from "@/components/ui/tooltip";
|
||||||
import ActivityIndicator from "../indicators/activity-indicator";
|
import ActivityIndicator from "../indicators/activity-indicator";
|
||||||
|
|
||||||
type SettingsNavItemsProps = {
|
type GeneralSettings = {
|
||||||
className?: string;
|
className?: string;
|
||||||
};
|
};
|
||||||
export default function SettingsNavItems({ className }: SettingsNavItemsProps) {
|
export default function GeneralSettings({ className }: GeneralSettings) {
|
||||||
const { theme, colorScheme, setTheme, setColorScheme } = useTheme();
|
const { theme, colorScheme, setTheme, setColorScheme } = useTheme();
|
||||||
const [restartDialogOpen, setRestartDialogOpen] = useState(false);
|
const [restartDialogOpen, setRestartDialogOpen] = useState(false);
|
||||||
const [restartingSheetOpen, setRestartingSheetOpen] = useState(false);
|
const [restartingSheetOpen, setRestartingSheetOpen] = useState(false);
|
||||||
@ -243,16 +242,6 @@ export default function SettingsNavItems({ className }: SettingsNavItemsProps) {
|
|||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
<Tooltip>
|
|
||||||
<TooltipTrigger asChild>
|
|
||||||
<Button size="icon" variant="ghost">
|
|
||||||
<VscAccount />
|
|
||||||
</Button>
|
|
||||||
</TooltipTrigger>
|
|
||||||
<TooltipContent side="right">
|
|
||||||
<p>Account</p>
|
|
||||||
</TooltipContent>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
{restartDialogOpen && (
|
{restartDialogOpen && (
|
||||||
<AlertDialog
|
<AlertDialog
|
||||||
Loading…
Reference in New Issue
Block a user