Fix sizing on mobile and make scrollable

This commit is contained in:
Nicolas Mowen 2024-04-01 08:29:40 -06:00
parent 2fb9c94895
commit 44dc274291

View File

@ -125,192 +125,230 @@ export default function GeneralSettings({ className }: GeneralSettings) {
</Tooltip> </Tooltip>
</a> </a>
</Trigger> </Trigger>
<Content className={isDesktop ? "w-72 mr-5" : "max-h-[75dvh]"}> <Content
<DropdownMenuLabel>System</DropdownMenuLabel> className={
<DropdownMenuSeparator /> isDesktop ? "w-72 mr-5" : "max-h-[75dvh] p-2 overflow-hidden"
<DropdownMenuGroup className={isDesktop ? "" : "flex flex-col"}> }
<Link to="/storage"> >
<MenuItem <div className="w-full flex-col overflow-y-auto overflow-x-hidden">
className={ <DropdownMenuLabel>System</DropdownMenuLabel>
isDesktop ? "cursor-pointer" : "p-2 flex items-center"
}
>
<LuHardDrive className="mr-2 size-4" />
<span>Storage</span>
</MenuItem>
</Link>
<Link to="/system">
<MenuItem
className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center"
}
>
<LuActivity className="mr-2 size-4" />
<span>System metrics</span>
</MenuItem>
</Link>
<Link to="/logs">
<MenuItem
className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center"
}
>
<LuList className="mr-2 size-4" />
<span>System logs</span>
</MenuItem>
</Link>
</DropdownMenuGroup>
<DropdownMenuLabel className="mt-3">
Configuration
</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<Link to="/settings">
<MenuItem
className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center"
}
>
<LuSettings className="mr-2 size-4" />
<span>Settings</span>
</MenuItem>
</Link>
<Link to="/config">
<MenuItem
className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center"
}
>
<LuPenSquare className="mr-2 size-4" />
<span>Configuration editor</span>
</MenuItem>
</Link>
<DropdownMenuLabel className="mt-3">Appearance</DropdownMenuLabel>
<DropdownMenuSeparator /> <DropdownMenuSeparator />
<SubItem> <DropdownMenuGroup className={isDesktop ? "" : "flex flex-col"}>
<SubItemTrigger <Link to="/storage">
className={ <MenuItem
isDesktop ? "cursor-pointer" : "p-2 flex items-center" className={
} isDesktop
> ? "cursor-pointer"
<LuSunMoon className="mr-2 size-4" /> : "p-2 flex items-center text-sm"
<span>Dark Mode</span> }
</SubItemTrigger> >
<Portal> <LuHardDrive className="mr-2 size-4" />
<SubItemContent> <span>Storage</span>
<MenuItem </MenuItem>
className={ </Link>
isDesktop ? "cursor-pointer" : "p-2 flex items-center" <Link to="/system">
} <MenuItem
onClick={() => setTheme("light")} className={
> isDesktop
{theme === "light" ? ( ? "cursor-pointer"
<> : "p-2 flex items-center text-sm"
<LuSun className="mr-2 size-4 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" /> }
Light >
</> <LuActivity className="mr-2 size-4" />
) : ( <span>System metrics</span>
<span className="mr-2 ml-6">Light</span> </MenuItem>
)} </Link>
</MenuItem> <Link to="/logs">
<MenuItem <MenuItem
className={ className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center" isDesktop
} ? "cursor-pointer"
onClick={() => setTheme("dark")} : "p-2 flex items-center text-sm"
> }
{theme === "dark" ? ( >
<> <LuList className="mr-2 size-4" />
<LuMoon className="mr-2 size-4 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" /> <span>System logs</span>
Dark </MenuItem>
</> </Link>
) : ( </DropdownMenuGroup>
<span className="mr-2 ml-6">Dark</span> <DropdownMenuLabel className={isDesktop ? "mt-3" : "mt-1"}>
)} Configuration
</MenuItem> </DropdownMenuLabel>
<MenuItem <DropdownMenuSeparator />
className={ <DropdownMenuGroup>
isDesktop ? "cursor-pointer" : "p-2 flex items-center" <Link to="/settings">
} <MenuItem
onClick={() => setTheme("system")} className={
> isDesktop
{theme === "system" ? ( ? "cursor-pointer"
<> : "p-2 flex items-center text-sm"
<CgDarkMode className="mr-2 size-4 scale-100 transition-all" /> }
System >
</> <LuSettings className="mr-2 size-4" />
) : ( <span>Settings</span>
<span className="mr-2 ml-6">System</span> </MenuItem>
)} </Link>
</MenuItem> <Link to="/config">
</SubItemContent> <MenuItem
</Portal> className={
</SubItem> isDesktop
<SubItem> ? "cursor-pointer"
<SubItemTrigger : "p-2 flex items-center text-sm"
className={ }
isDesktop ? "cursor-pointer" : "p-2 flex items-center" >
} <LuPenSquare className="mr-2 size-4" />
> <span>Configuration editor</span>
<LuSunMoon className="mr-2 size-4" /> </MenuItem>
<span>Theme</span> </Link>
</SubItemTrigger> <DropdownMenuLabel className={isDesktop ? "mt-3" : "mt-1"}>
<Portal> Appearance
<SubItemContent> </DropdownMenuLabel>
{colorSchemes.map((scheme) => ( <DropdownMenuSeparator />
<SubItem>
<SubItemTrigger
className={
isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
}
>
<LuSunMoon className="mr-2 size-4" />
<span>Dark Mode</span>
</SubItemTrigger>
<Portal>
<SubItemContent>
<MenuItem <MenuItem
key={scheme}
className={ className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center" isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
} }
onClick={() => setColorScheme(scheme)} onClick={() => setTheme("light")}
> >
{scheme === colorScheme ? ( {theme === "light" ? (
<> <>
<IoColorPalette className="mr-2 size-4 rotate-0 scale-100 transition-all" /> <LuSun className="mr-2 size-4 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
{friendlyColorSchemeName(scheme)} Light
</> </>
) : ( ) : (
<span className="mr-2 ml-6"> <span className="mr-2 ml-6">Light</span>
{friendlyColorSchemeName(scheme)}
</span>
)} )}
</MenuItem> </MenuItem>
))} <MenuItem
</SubItemContent> className={
</Portal> isDesktop
</SubItem> ? "cursor-pointer"
</DropdownMenuGroup> : "p-2 flex items-center text-sm"
<DropdownMenuLabel className="mt-3">Help</DropdownMenuLabel> }
<DropdownMenuSeparator /> onClick={() => setTheme("dark")}
<a href="https://docs.frigate.video"> >
{theme === "dark" ? (
<>
<LuMoon className="mr-2 size-4 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
Dark
</>
) : (
<span className="mr-2 ml-6">Dark</span>
)}
</MenuItem>
<MenuItem
className={
isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
}
onClick={() => setTheme("system")}
>
{theme === "system" ? (
<>
<CgDarkMode className="mr-2 size-4 scale-100 transition-all" />
System
</>
) : (
<span className="mr-2 ml-6">System</span>
)}
</MenuItem>
</SubItemContent>
</Portal>
</SubItem>
<SubItem>
<SubItemTrigger
className={
isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
}
>
<LuSunMoon className="mr-2 size-4" />
<span>Theme</span>
</SubItemTrigger>
<Portal>
<SubItemContent>
{colorSchemes.map((scheme) => (
<MenuItem
key={scheme}
className={
isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
}
onClick={() => setColorScheme(scheme)}
>
{scheme === colorScheme ? (
<>
<IoColorPalette className="mr-2 size-4 rotate-0 scale-100 transition-all" />
{friendlyColorSchemeName(scheme)}
</>
) : (
<span className="mr-2 ml-6">
{friendlyColorSchemeName(scheme)}
</span>
)}
</MenuItem>
))}
</SubItemContent>
</Portal>
</SubItem>
</DropdownMenuGroup>
<DropdownMenuLabel className={isDesktop ? "mt-3" : "mt-1"}>
Help
</DropdownMenuLabel>
<DropdownMenuSeparator />
<a href="https://docs.frigate.video">
<MenuItem
className={
isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
}
>
<LuLifeBuoy className="mr-2 size-4" />
<span>Documentation</span>
</MenuItem>
</a>
<a href="https://github.com/blakeblackshear/frigate">
<MenuItem
className={
isDesktop
? "cursor-pointer"
: "p-2 flex items-center text-sm"
}
>
<LuGithub className="mr-2 size-4" />
<span>GitHub</span>
</MenuItem>
</a>
<DropdownMenuSeparator className={isDesktop ? "mt-3" : "mt-1"} />
<MenuItem <MenuItem
className={ className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center" isDesktop ? "cursor-pointer" : "p-2 flex items-center text-sm"
} }
onClick={() => setRestartDialogOpen(true)}
> >
<LuLifeBuoy className="mr-2 size-4" /> <LuRotateCw className="mr-2 size-4" />
<span>Documentation</span> <span>Restart Frigate</span>
</MenuItem> </MenuItem>
</a> </div>
<a href="https://github.com/blakeblackshear/frigate">
<MenuItem
className={
isDesktop ? "cursor-pointer" : "p-2 flex items-center"
}
>
<LuGithub className="mr-2 size-4" />
<span>GitHub</span>
</MenuItem>
</a>
<DropdownMenuSeparator className="mt-3" />
<MenuItem
className={isDesktop ? "cursor-pointer" : "p-2 flex items-center"}
onClick={() => setRestartDialogOpen(true)}
>
<LuRotateCw className="mr-2 size-4" />
<span>Restart Frigate</span>
</MenuItem>
</Content> </Content>
</Container> </Container>
</div> </div>