diff --git a/flake.nix b/flake.nix index 5e98f56..2465d44 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,6 @@ templ tailwindcss_4 tailwindcss-language-server - tailwindcss-language-server: watchman docker-language-server dockerfile-language-server-nodejs diff --git a/web/src/assets/images/recipe_placeholder.png b/web/src/assets/images/recipe_placeholder.png new file mode 100644 index 0000000..c8664d9 Binary files /dev/null and b/web/src/assets/images/recipe_placeholder.png differ diff --git a/web/src/assets/images/recipe_placeholder_wide.jpg b/web/src/assets/images/recipe_placeholder_wide.jpg new file mode 100644 index 0000000..07d0520 Binary files /dev/null and b/web/src/assets/images/recipe_placeholder_wide.jpg differ diff --git a/web/src/components/Banner.tsx b/web/src/components/Banner.tsx new file mode 100644 index 0000000..f7f2fe6 --- /dev/null +++ b/web/src/components/Banner.tsx @@ -0,0 +1,12 @@ + +interface BannerProps { + content: string; +}; + +export default function Banner({ content }: BannerProps) { + return ( +
{content}
+ ++ Serves {recipe.Serves} +
++ {recipe.Description} +
++ {recipe.Category} - {recipe.Duration.Total} mins +
+ {recipe.Favorite &&+ Serves {recipe.Serves} +
++ {recipe.Category} - {recipe.Duration.Total} mins +
+ {recipe.Favorite &&- Welcome to your ultimate recipe hub! Whether you're a seasoned chef or just starting your culinary adventure, - we're here to inspire. Explore thousands of delicious recipes, from quick weeknight dinners to gourmet delights, - all at your fingertips. Find exactly what you're craving with our powerful search and intuitive filters, or - browse our trending dishes for fresh ideas. -
- + Discover Your Next Favorite Meal + ++ Welcome to your ultimate recipe hub! Whether you're a seasoned chef or just starting your culinary adventure, + we're here to inspire. Explore thousands of delicious recipes, from quick weeknight dinners to gourmet delights, + all at your fingertips. Find exactly what you're craving with our powerful search and intuitive filters, or + browse our trending dishes for fresh ideas. +
++ Our 'Recipe of the Week' is the cream of the crop! We handpick it by looking at what recipes + our community loves most. This isn't just about how many people view a recipe; it's also about + how many times it's been made, liked, reviewed, and its average rating, all combined to find + the true fan favorite of the week. It's our way of highlighting the best recipes that truly + resonate with our users! +
+No recently viewed recipes
+ )} +No recently made recipes
+ )} + {/* } */} ++ Have a unique recipe idea? Want to share your culinary masterpiece with the world? + It's time to bring your creations to life! +
+ + Create Your Recipe! + + + > ); } diff --git a/web/src/types/recipe.ts b/web/src/types/recipe.ts new file mode 100644 index 0000000..ce5c660 --- /dev/null +++ b/web/src/types/recipe.ts @@ -0,0 +1,37 @@ + +export interface RecipeDuration { + Total: number; + Prep: number; + Cook: number; +} + +// BUG: This might need to be integers? Not sure yet. +export type RecipeMeal = "breakfast" | "lunch" | "dinner" | "dessert" | "snack" | "side" | "other"; + +export interface RecipeIngredient { + Name: string; + Quantity: string; +} + +export interface Tag { + Id: number; + Name: string; + Created: Date; +} + +export interface Recipe { + Id: number; + Title: string; + Description: string; + Instructions: string[]; + Serves: number; + Difficulty: number; + Duration: RecipeDuration; + Category: RecipeMeal; + Ingredients: RecipeIngredient[]; + UserId: number; + Modified: Date; + Created: Date; + Tags: Tag[]; + Favorite: boolean; +} diff --git a/web/src/types/routes.ts b/web/src/types/routes.ts index a6d3a47..955102b 100644 --- a/web/src/types/routes.ts +++ b/web/src/types/routes.ts @@ -6,13 +6,16 @@ const ROUTE_CONSTANTS: { Create: string; Profile: string; ShoppingList: string; + Login: string; + History: string; } = { Home: `${VERSION_FLAG}/web/home`, Favorites: `${VERSION_FLAG}/web/favorites`, Create: `${VERSION_FLAG}/web/create`, Profile: `${VERSION_FLAG}/web/profile`, ShoppingList: `${VERSION_FLAG}/web/list`, - + Login: `${VERSION_FLAG}/web/login`, + History: `${VERSION_FLAG}/web/history`, }; export default ROUTE_CONSTANTS;