Files
Epicure/apps/web/components/recipe/variations-button.tsx
T
Arnaud 84d6cfeb07 feat(recipes): full recipe CRUD with photos, print, version history
List, detail, new, edit pages. Server-side pagination, dietary tags, difficulty.
Photo upload to S3-compatible storage. Version history. Multi-select grid with
bulk delete/visibility. Print view. Delete confirmation dialog.
2026-07-01 08:10:11 +02:00

47 lines
1.2 KiB
TypeScript

"use client";
import { useState } from "react";
import { GitBranch } from "lucide-react";
import { Button } from "@/components/ui/button";
import { VariationsDialog } from "./variations-dialog";
export function VariationsButton({
recipeId,
baseServings,
difficulty,
prepMins,
cookMins,
ingredients,
steps,
}: {
recipeId: string;
baseServings: number;
difficulty?: string | null;
prepMins?: number | null;
cookMins?: number | null;
ingredients: Array<{ rawName: string; quantity?: string | number | null; unit?: string | null; note?: string | null; order: number }>;
steps: Array<{ instruction: string; timerSeconds?: number | null; order: number }>;
}) {
const [open, setOpen] = useState(false);
return (
<>
<Button variant="outline" size="sm" onClick={() => setOpen(true)}>
<GitBranch className="h-4 w-4" />
Variations
</Button>
<VariationsDialog
recipeId={recipeId}
baseServings={baseServings}
difficulty={difficulty}
prepMins={prepMins}
cookMins={cookMins}
ingredients={ingredients}
steps={steps}
open={open}
onOpenChange={setOpen}
/>
</>
);
}