diff --git a/app/page.tsx b/app/page.tsx deleted file mode 100644 index 290d295..0000000 --- a/app/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import Image from "next/image"; - -export default function Home() { - return ( -
- Log into your last.fm account -
- ); -} diff --git a/src/app/components/Navbar.tsx b/src/app/components/Navbar.tsx new file mode 100644 index 0000000..7d3596b --- /dev/null +++ b/src/app/components/Navbar.tsx @@ -0,0 +1,118 @@ +'use client'; + +import Link from "next/link"; +import { useState } from "react"; +import { Menu, X, Music } from "lucide-react"; + +export default function Navbar() { + const [open, setOpen] = useState(false); + const user = false; // Placeholder for user authentication state + + const navItems = [ + { href: "/", label: "Home" }, + { href: "/library", label: "Library" }, + ]; + + if (!user) { + return ( +
+
+
+
+ + FirstFM + +
+ +
+ + Log in + +
+
+
+
+ ); + } + + return ( +
+
+
+
+ + FirstFM + +
+ + + +
+
+ +
+ + {/* Mobile menu button */} +
+ +
+
+
+
+ + {/* Mobile panel */} + {open && ( +
+
+ {navItems.map((item) => ( + setOpen(false)} + className="block px-3 py-2 rounded-md text-base hover:bg-muted/60" + > + {item.label} + + ))} +
+ +
+
+
+ )} +
+ ); +} diff --git a/app/dashboard/page.tsx b/src/app/dashboard/page.tsx similarity index 100% rename from app/dashboard/page.tsx rename to src/app/dashboard/page.tsx diff --git a/app/exampleLogin/page.tsx b/src/app/exampleLogin/page.tsx similarity index 100% rename from app/exampleLogin/page.tsx rename to src/app/exampleLogin/page.tsx diff --git a/app/favicon.ico b/src/app/favicon.ico similarity index 100% rename from app/favicon.ico rename to src/app/favicon.ico diff --git a/app/globals.css b/src/app/globals.css similarity index 100% rename from app/globals.css rename to src/app/globals.css diff --git a/app/layout.tsx b/src/app/layout.tsx similarity index 72% rename from app/layout.tsx rename to src/app/layout.tsx index f7fa87e..5cee8c8 100644 --- a/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,6 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; +import Navbar from "./components/Navbar"; import "./globals.css"; const geistSans = Geist({ @@ -13,8 +14,8 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "FirstFM", + description: "Generated by FirstFM", }; export default function RootLayout({ @@ -25,9 +26,10 @@ export default function RootLayout({ return ( - {children} + +
{children}
); diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx new file mode 100644 index 0000000..fc9c153 --- /dev/null +++ b/src/app/login/page.tsx @@ -0,0 +1,20 @@ +'use client'; + +export default function LoginPage() { + return ( +
+
+

Log in with Last.fm

+

FirstFM uses your Last.fm account to recommend songs and personalize your experience.

+
+
+ +
+
+ ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 0000000..e648f0a --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,20 @@ +import Image from "next/image"; + +export default function Home() { + return ( +
+
+
+

Visualize Your Music, Discover Your Story

+

+ Unlock your music map by signing in with your Last.fm account. +

+
+ +
+
+

This couldn't have been possible without the FirstFM team check them out here! v1.0.0

+
+
+ ); +} diff --git a/app/routes/djangoApi.ts b/src/app/routes/djangoApi.ts similarity index 100% rename from app/routes/djangoApi.ts rename to src/app/routes/djangoApi.ts diff --git a/app/services/lastfm_user.ts b/src/app/services/lastfm_user.ts similarity index 100% rename from app/services/lastfm_user.ts rename to src/app/services/lastfm_user.ts