Files
frigate/web/src/components/overlay/ActionsDropdown.tsx
T

54 lines
1.6 KiB
TypeScript
Raw Normal View History

2026-03-04 10:07:34 -06:00
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 = {
2026-05-24 07:48:52 -05:00
onDebugReplayClick?: () => void;
2026-03-04 10:07:34 -06:00
onExportClick: () => void;
onShareTimestampClick: () => void;
2026-03-04 10:07:34 -06:00
};
export default function ActionsDropdown({
onDebugReplayClick,
onExportClick,
onShareTimestampClick,
}: Readonly<ActionsDropdownProps>) {
2026-03-04 10:07:34 -06:00
const { t } = useTranslation(["components/dialog", "views/replay", "common"]);
return (
2026-04-25 08:21:13 -05:00
<DropdownMenu>
2026-03-04 10:07:34 -06:00
<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>
2026-05-24 07:48:52 -05:00
{onDebugReplayClick && (
<DropdownMenuItem onClick={onDebugReplayClick}>
{t("title", { ns: "views/replay" })}
</DropdownMenuItem>
)}
2026-03-04 10:07:34 -06:00
</DropdownMenuContent>
</DropdownMenu>
);
}