59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
|
|
import type { LucideProps } from "lucide-react";
|
||
|
|
import {
|
||
|
|
BookHeart,
|
||
|
|
CookingPot,
|
||
|
|
CupSoda,
|
||
|
|
Fish,
|
||
|
|
Flame,
|
||
|
|
Heater,
|
||
|
|
Leaf,
|
||
|
|
PackageCheck,
|
||
|
|
Salad,
|
||
|
|
Soup,
|
||
|
|
Timer,
|
||
|
|
Utensils,
|
||
|
|
Wind,
|
||
|
|
Zap,
|
||
|
|
} from "lucide-react";
|
||
|
|
import type { Appliance, CookingStyle } from "@/app/types";
|
||
|
|
|
||
|
|
export function ApplianceIcon({ id, className = "size-4", ...props }: { id: Appliance } & LucideProps) {
|
||
|
|
const shared = { className, strokeWidth: 1.75, "aria-hidden": true as const, ...props };
|
||
|
|
switch (id) {
|
||
|
|
case "stovetop":
|
||
|
|
return <Flame {...shared} />;
|
||
|
|
case "oven":
|
||
|
|
return <Heater {...shared} />;
|
||
|
|
case "air_fryer":
|
||
|
|
return <Wind {...shared} />;
|
||
|
|
case "slow_cooker":
|
||
|
|
return <Soup {...shared} />;
|
||
|
|
case "microwave":
|
||
|
|
return <Zap {...shared} />;
|
||
|
|
case "blender":
|
||
|
|
return <CupSoda {...shared} />;
|
||
|
|
case "rice_cooker":
|
||
|
|
return <CookingPot {...shared} />;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export function StyleIcon({ id, className = "size-3.5", ...props }: { id: CookingStyle } & LucideProps) {
|
||
|
|
const shared = { className, strokeWidth: 1.75, "aria-hidden": true as const, ...props };
|
||
|
|
switch (id) {
|
||
|
|
case "caydens_corner":
|
||
|
|
return <BookHeart {...shared} />;
|
||
|
|
case "seafood":
|
||
|
|
return <Fish {...shared} />;
|
||
|
|
case "quick":
|
||
|
|
return <Timer {...shared} />;
|
||
|
|
case "vegetarian":
|
||
|
|
return <Leaf {...shared} />;
|
||
|
|
case "healthy":
|
||
|
|
return <Salad {...shared} />;
|
||
|
|
case "meal_prep":
|
||
|
|
return <PackageCheck {...shared} />;
|
||
|
|
case "comfort":
|
||
|
|
return <Utensils {...shared} />;
|
||
|
|
}
|
||
|
|
}
|