frigate/web/src/components/overlay/dialog/UploadImageDialog.tsx

48 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-03-17 18:42:17 +03:00
import ImageEntry from "@/components/input/ImageEntry";
import { Button } from "@/components/ui/button";
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
2025-03-17 18:55:20 +03:00
import { useTranslation } from "react-i18next";
type UploadImageDialogProps = {
open: boolean;
title: string;
description?: string;
setOpen: (open: boolean) => void;
onSave: (file: File) => void;
};
export default function UploadImageDialog({
open,
title,
description,
setOpen,
onSave,
}: UploadImageDialogProps) {
2025-03-17 18:55:20 +03:00
const { t } = useTranslation("common");
return (
<Dialog open={open} defaultOpen={false} onOpenChange={setOpen}>
<DialogContent>
<DialogHeader>
<DialogTitle>{title}</DialogTitle>
{description && <DialogDescription>{description}</DialogDescription>}
</DialogHeader>
2025-03-17 18:42:17 +03:00
<ImageEntry onSave={onSave}>
<DialogFooter className="pt-4">
2025-03-17 18:55:20 +03:00
<Button onClick={() => setOpen(false)}>{t("button.cancel")}</Button>
2025-03-17 18:42:17 +03:00
<Button variant="select" type="submit">
2025-03-17 18:55:20 +03:00
{t("button.save")}
2025-03-17 18:42:17 +03:00
</Button>
</DialogFooter>
</ImageEntry>
</DialogContent>
</Dialog>
);
}