mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-06-26 06:11:54 +03:00
Some checks are pending
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* filter motion review by allowed cameras * filter alertCameras by allowed cameras so the recent alerts query for restricted roles doesn't reference cameras they can't access * skip data streams in chapter exports to avoid ffmpeg segfault * formatting * restrict debug replay UI entry points to admin users * Adjust default iGPU name when it can't be found * Fix when model tries to request an invalid camera * Improve prompt * add collapsible main nav items in settings --------- Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuItem,
|
|
DropdownMenuTrigger,
|
|
} from "../ui/dropdown-menu";
|
|
import { Button } from "../ui/button";
|
|
import { useTranslation } from "react-i18next";
|
|
import { FaFilm } from "react-icons/fa6";
|
|
|
|
type ActionsDropdownProps = {
|
|
onDebugReplayClick?: () => void;
|
|
onExportClick: () => void;
|
|
onShareTimestampClick: () => void;
|
|
};
|
|
|
|
export default function ActionsDropdown({
|
|
onDebugReplayClick,
|
|
onExportClick,
|
|
onShareTimestampClick,
|
|
}: Readonly<ActionsDropdownProps>) {
|
|
const { t } = useTranslation(["components/dialog", "views/replay", "common"]);
|
|
|
|
return (
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger asChild>
|
|
<Button
|
|
className="flex items-center gap-2"
|
|
aria-label={t("menu.actions", { ns: "common" })}
|
|
size="sm"
|
|
>
|
|
<FaFilm className="size-5 text-secondary-foreground" />
|
|
<div className="text-primary">
|
|
{t("menu.actions", { ns: "common" })}
|
|
</div>
|
|
</Button>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent align="end">
|
|
<DropdownMenuItem onClick={onExportClick}>
|
|
{t("menu.export", { ns: "common" })}
|
|
</DropdownMenuItem>
|
|
<DropdownMenuItem onClick={onShareTimestampClick}>
|
|
{t("recording.shareTimestamp.label", { ns: "components/dialog" })}
|
|
</DropdownMenuItem>
|
|
{onDebugReplayClick && (
|
|
<DropdownMenuItem onClick={onDebugReplayClick}>
|
|
{t("title", { ns: "views/replay" })}
|
|
</DropdownMenuItem>
|
|
)}
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
);
|
|
}
|