diff --git a/.gitignore b/.gitignore index 5ef6a52..e8ccb8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +password.txt + # dependencies /node_modules /.pnp diff --git a/app/(site)/page.tsx b/app/(site)/page.tsx index d8669da..5fe0886 100644 --- a/app/(site)/page.tsx +++ b/app/(site)/page.tsx @@ -1,7 +1,53 @@ - +import Header from "@/components/Header" +import ListItem from "@/components/ListItem" export default function Home() { return ( -
Main Content
+
+
+
+

+ Welcome back +

+
+ +
+
+
+
+
+

+ New songs +

+
+
+ List of songs +
+
+
); } diff --git a/components/Button.tsx b/components/Button.tsx new file mode 100644 index 0000000..7c11698 --- /dev/null +++ b/components/Button.tsx @@ -0,0 +1,41 @@ +import { forwardRef } from "react"; +import { twMerge } from "tailwind-merge" +interface ButtonProps extends React.ButtonHTMLAttributes{} +const Button = forwardRef(({ + className, + children, + disabled, + type = "button", + ...props +}, ref) => { + return ( + + ) +}) + +Button.displayName = "Button" +export default Button; \ No newline at end of file diff --git a/components/Header.tsx b/components/Header.tsx new file mode 100644 index 0000000..6f9e0a9 --- /dev/null +++ b/components/Header.tsx @@ -0,0 +1,143 @@ +"use client" +import { useRouter } from "next/navigation" +import { twMerge } from "tailwind-merge" +import { RxCaretLeft, RxCaretRight } from "react-icons/rx" +import { HiHome } from "react-icons/hi"; +import { BiSearch } from "react-icons/bi"; +import Button from "./Button" +interface HeaderProps { + children: React.ReactNode; + className?: string; +} + const Header: React.FC = ({ + children, + className + }) => { + const router = useRouter(); + + const handleLogout = () => { + //handle logout + } + return ( +
+
+
+ + +
+
+ + +
+
+ <> +
+ +
+
+ +
+ + +
+ +
+ {children} +
+ ); +} + +export default Header; \ No newline at end of file diff --git a/components/ListItem.tsx b/components/ListItem.tsx new file mode 100644 index 0000000..768fcb4 --- /dev/null +++ b/components/ListItem.tsx @@ -0,0 +1,76 @@ +"use client" + +import Image from "next/image" +import { useRouter } from "next/navigation" +import { FaPlay } from "react-icons/fa" +interface ListItemProps { + image: string; + name: string; + href: string; +} + +const ListItem: React.FC = ({ + image, + name, + href +}) => { + const router = useRouter(); + + const onClick = () => { + //add authentication before push + router.push(href) + } + return ( + + ); +} + +export default ListItem \ No newline at end of file diff --git a/public/images/liked.png b/public/images/liked.png new file mode 100644 index 0000000..d7884da Binary files /dev/null and b/public/images/liked.png differ