diff --git a/frontend/next.config.ts b/frontend/next.config.ts index e9ffa308..310232aa 100644 --- a/frontend/next.config.ts +++ b/frontend/next.config.ts @@ -1,7 +1,22 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { - /* config options here */ + images: { + // Allow specific remote hosts for Next/Image + domains: ["fakestoreapi.com", "i.pravatar.cc"], + remotePatterns: [ + { + protocol: "https", + hostname: "fakestoreapi.com", + pathname: "/img/**", + }, + { + protocol: "https", + hostname: "i.pravatar.cc", + pathname: "/**", + }, + ], + }, }; export default nextConfig; diff --git a/frontend/package.json b/frontend/package.json index 72b917d9..ded7ad57 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,19 +9,21 @@ "lint": "next lint" }, "dependencies": { + "framer-motion": "^12.23.24", + "next": "15.2.4", "react": "^19.0.0", "react-dom": "^19.0.0", - "next": "15.2.4" + "react-icons": "^5.5.0" }, "devDependencies": { - "typescript": "^5", + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@tailwindcss/postcss": "^4", - "tailwindcss": "^4", "eslint": "^9", "eslint-config-next": "15.2.4", - "@eslint/eslintrc": "^3" + "tailwindcss": "^4", + "typescript": "^5" } } diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index f7fa87eb..9b557e73 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -1,33 +1,25 @@ -import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; +import type { ReactNode } from "react"; import "./globals.css"; +import Nav from "@/components/Nav"; +import Footer from "@/components/Footer"; -const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], -}); - -const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], -}); - -export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", -}; +export const metadata = { + title: "Codedability Store", + description: "A modern store demo showcasing products with search and details.", +} as const; export default function RootLayout({ children, }: Readonly<{ - children: React.ReactNode; + children: ReactNode; }>) { return ( - + + +