diff --git a/alimento-nextjs/app/(PublicRoutes)/layout.tsx b/alimento-nextjs/app/(PublicRoutes)/layout.tsx
new file mode 100644
index 0000000..87ab475
--- /dev/null
+++ b/alimento-nextjs/app/(PublicRoutes)/layout.tsx
@@ -0,0 +1,18 @@
+import Navbar from "@/components/common/navbar";
+import Footer from "@/components/common/footer";
+
+export default function CustomerLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+
+
+
+ {children}
+
+
+
+ );
+}
diff --git a/alimento-nextjs/app/layout.tsx b/alimento-nextjs/app/layout.tsx
index 65f5f6e..7c3f28a 100644
--- a/alimento-nextjs/app/layout.tsx
+++ b/alimento-nextjs/app/layout.tsx
@@ -19,9 +19,7 @@ export default function RootLayout({
-
{children}
-
diff --git a/alimento-nextjs/app/vendor/[vendorId]/page.tsx b/alimento-nextjs/app/vendor/[vendorId]/page.tsx
new file mode 100644
index 0000000..276140e
--- /dev/null
+++ b/alimento-nextjs/app/vendor/[vendorId]/page.tsx
@@ -0,0 +1,38 @@
+import prismadb from '@/lib/prismadb';
+import { Dish } from '@prisma/client';
+
+interface VendorPageProps {
+ params: {
+ vendorId: string;
+ };
+}
+
+const VendorPage: React.FC = async ({ params }) => {
+ let Dishes: Dish[] | null = [];
+
+ const { vendorId } = await params;
+ try {
+ Dishes = await prismadb.dish.findMany({
+ where: {
+ vendorId: vendorId,
+ },
+ });
+ } catch (err) {
+ console.error(
+ 'Error fetching Dishes',
+ err instanceof Error ? err.message : err
+ );
+ }
+
+ if (Dishes.length){
+ return this will be the dishes page
+ }
+
+ else{
+ // return
+ // here the guided form component will be added s
+ }
+
+}
+
+export default VendorPage;
diff --git a/alimento-nextjs/app/vendor/layout.tsx b/alimento-nextjs/app/vendor/layout.tsx
new file mode 100644
index 0000000..8be70ac
--- /dev/null
+++ b/alimento-nextjs/app/vendor/layout.tsx
@@ -0,0 +1,14 @@
+
+export default function VendorLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+
+
+ {children}
+
+
+ );
+}
diff --git a/alimento-nextjs/context/dishFormContext.tsx b/alimento-nextjs/context/dishFormContext.tsx
new file mode 100644
index 0000000..b10b418
--- /dev/null
+++ b/alimento-nextjs/context/dishFormContext.tsx
@@ -0,0 +1,119 @@
+"use client";
+import { Category, Tag } from "@prisma/client";
+import {
+ createContext,
+ ReactNode,
+ useCallback,
+ useContext,
+ useState,
+} from "react";
+import toast from "react-hot-toast";
+
+interface GlobalContextType {
+ currentStep: number;
+ setCurrentStep: (step: number) => void;
+ completed: boolean;
+ setCompleted: (completed: boolean) => void;
+
+ dishName: string;
+ setDishName: (name: string) => void;
+ dishPrice: number;
+ setDishPrice: (price: number) => void;
+ dishDescription: string;
+ setDishDescription: (description: string) => void;
+ dishCategory: Category;
+ setDishCategory: (category: Category) => void;
+ dishTags: Tag[];
+ setDishTags: (tags: Tag[]) => void;
+
+ validDishName: boolean;
+ setValidDishName: (valid: boolean) => void;
+ validDishPrice: boolean;
+ setValidDishPrice: (valid: boolean) => void;
+ validDishDescription: boolean;
+ setValidDishDescription: (valid: boolean) => void;
+ validDishCategory: boolean;
+ setValidDishCategory: (valid: boolean) => void;
+ validDishTags: boolean;
+ setValidDishTags: (valid: boolean) => void;
+
+ checkedBox: boolean;
+ setCheckedBox: (checkedBox: boolean) => void;
+
+ formCompleted: boolean;
+ setFormCompleted: (completed: boolean) => void;
+}
+
+export const GlobalDishContext = createContext(
+ undefined
+);
+
+export const useGlobalDish = () => {
+ const context = useContext(GlobalDishContext);
+ if (!context) {
+ throw new Error("useGlobalDish must be used within a GlobalDishProvider");
+ }
+ return context;
+};
+
+export const GlobalDishProvider = ({ children }: { children: ReactNode }) => {
+ const [currentStep, setCurrentStep] = useState(1);
+ const [completed, setCompleted] = useState(false);
+
+ const [dishName, setDishName] = useState("");
+ const [dishPrice, setDishPrice] = useState(0);
+ const [dishDescription, setDishDescription] = useState("");
+ const [dishCategory, setDishCategory] = useState(
+ Category.APPETIZER
+ );
+ const [dishTags, setDishTags] = useState([]);
+
+ const [validDishName, setValidDishName] = useState(false);
+ const [validDishPrice, setValidDishPrice] = useState(false);
+ const [validDishDescription, setValidDishDescription] = useState(false);
+ const [validDishCategory, setValidDishCategory] = useState(false);
+ const [validDishTags, setValidDishTags] = useState(false);
+
+ const [checkedBox, setCheckedBox] = useState(false);
+ const [formCompleted, setFormCompleted] = useState(false);
+
+ return (
+
+ {children}
+
+ );
+};