From a879690129cc697929db352cd151a703a28c93bb Mon Sep 17 00:00:00 2001
From: Ategon <benjamin@barbeau.net>
Date: Thu, 16 Jan 2025 03:19:35 -0500
Subject: [PATCH] Move forum to main page

---
 src/app/app/page.tsx            |  29 ----
 src/app/page.tsx                |  51 +++++-
 src/components/navbar/index.tsx | 288 ++++++++++++++++++++++++++++----
 src/components/timers/index.tsx |   3 +
 4 files changed, 305 insertions(+), 66 deletions(-)
 delete mode 100644 src/app/app/page.tsx

diff --git a/src/app/app/page.tsx b/src/app/app/page.tsx
deleted file mode 100644
index 9959de7..0000000
--- a/src/app/app/page.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import Posts from "@/components/posts";
-import Timers from "@/components/timers";
-import { Image } from "@nextui-org/react";
-
-export default function Home() {
-  return (
-    <div>
-      <div className="absolute left-0 top-0 w-full h-full z-0">
-        <Image
-          src="/images/bg.jpg"
-          alt="Home background"
-          className="object-cover w-full h-full"
-          radius="none"
-          loading="eager"
-          removeWrapper
-        />
-        <div className="absolute left-0 top-0 w-full h-full bg-gradient-to-r from-black/50 to-transparent z-10" />
-      </div>
-      <div className="z-10 relative flex">
-        <div>
-          <Posts />
-        </div>
-        <div className="w-1/3 flex justify-end">
-          <Timers />
-        </div>
-      </div>
-    </div>
-  );
-}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 5e03a71..fc90ece 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -2,11 +2,13 @@ import { Image } from "@nextui-org/image";
 import { Button } from "@nextui-org/button";
 import { SiDiscord } from "@icons-pack/react-simple-icons";
 import { Link } from "@nextui-org/react";
+import Posts from "@/components/posts";
+import Timers from "@/components/timers";
 
 export default async function Home() {
   return (
-    <div>
-      <div className="absolute left-0 top-0 w-full h-full z-0">
+    <div className="w-full">
+      <div className="fixed  left-0 top-0 w-full h-full z-0">
         <Image
           src="/images/bg.jpg"
           alt="Home background"
@@ -17,9 +19,9 @@ export default async function Home() {
         />
         <div className="absolute left-0 top-0 w-full h-full bg-gradient-to-r from-black/50 to-transparent z-10" />
       </div>
-      <div className="relative left-0 top-0 z-10 px-8">
-        <div className="flex gap-20">
-          <div className="flex flex-col gap-4 py-16 sm:py-36 md:py-72">
+      <div className="z-10 relative flex w-full flex-wrap">
+        <div>
+          <div className="flex flex-col gap-4 py-4 sm:py-8 md:py-12 pl-16">
             <h1 className="text-3xl sm:text-4xl md:text-5xl">Dare2Jam</h1>
             <p className="text-lg sm:text-xl">April 4th - 7th</p>
             <div className="flex gap-2">
@@ -34,8 +36,47 @@ export default async function Home() {
               </Link>
             </div>
           </div>
+          <Posts />
+        </div>
+        <div className="w-1/3 flex justify-end  py-4 sm:py-8 md:py-12 flex-grow">
+          <Timers />
         </div>
       </div>
     </div>
   );
 }
+
+{
+  /* <div>
+<div className="absolute left-0 top-0 w-full h-full z-0">
+  <Image
+    src="/images/bg.jpg"
+    alt="Home background"
+    className="object-cover w-full h-full"
+    radius="none"
+    loading="eager"
+    removeWrapper
+  />
+  <div className="absolute left-0 top-0 w-full h-full bg-gradient-to-r from-black/50 to-transparent z-10" />
+</div>
+<div className="relative left-0 top-0 z-10 px-8">
+  <div className="flex gap-20">
+    <div className="flex flex-col gap-4 py-16 sm:py-36 md:py-72">
+      <h1 className="text-3xl sm:text-4xl md:text-5xl">Dare2Jam</h1>
+      <p className="text-lg sm:text-xl">April 4th - 7th</p>
+      <div className="flex gap-2">
+        <Link href="https://discord.gg/rfmKzM6ASw" target="_blank">
+          <Button
+            variant="bordered"
+            className="border-white/50 text-white"
+            startContent={<SiDiscord />}
+          >
+            Join the Discord
+          </Button>
+        </Link>
+      </div>
+    </div>
+  </div>
+</div>
+</div> */
+}
diff --git a/src/components/navbar/index.tsx b/src/components/navbar/index.tsx
index 3593e08..ee12809 100644
--- a/src/components/navbar/index.tsx
+++ b/src/components/navbar/index.tsx
@@ -20,7 +20,7 @@ import {
   Tooltip,
 } from "@nextui-org/react";
 import { SiDiscord, SiForgejo, SiGithub } from "@icons-pack/react-simple-icons";
-import { LogInIcon, NotebookPen, SquarePen } from "lucide-react";
+import { LogInIcon, Menu, NotebookPen, SquarePen } from "lucide-react";
 import { useEffect, useState } from "react";
 import { hasCookie, getCookie } from "@/helpers/cookie";
 import { usePathname } from "next/navigation";
@@ -29,6 +29,7 @@ import { UserType } from "@/types/UserType";
 export default function Navbar() {
   const [user, setUser] = useState<UserType>();
   const pathname = usePathname();
+  const [isMobile, setIsMobile] = useState(false);
 
   useEffect(() => {
     loadUser();
@@ -55,6 +56,15 @@ export default function Navbar() {
     }
   }, [pathname]);
 
+  useEffect(() => {
+    const handleResize = () => {
+      setIsMobile(window.innerWidth <= 768); // Adjust breakpoint as needed
+    };
+    handleResize();
+    window.addEventListener("resize", handleResize);
+    return () => window.removeEventListener("resize", handleResize);
+  }, []);
+
   return (
     <NavbarBase
       shouldHideOnScroll
@@ -69,18 +79,248 @@ export default function Navbar() {
           <Image src="/images/dare2jam.png" alt="Dare2Jam logo" width={80} />
         </Link>
       </NavbarBrand>
-      <NavbarContent>
-        <NavbarItem>
-          <Link
-            href="/app"
-            className="text-white flex justify-center duration-500 ease-in-out transition-all transform hover:scale-110"
-          >
-            Beta Site
-          </Link>
-        </NavbarItem>
-      </NavbarContent>
       <NavbarContent justify="end">
-        {user && (
+        {isMobile ? (
+          user ? (
+            <Dropdown>
+              <DropdownTrigger>
+                <Avatar src={user.profilePicture} />
+              </DropdownTrigger>
+              <DropdownMenu className="text-black">
+                <DropdownItem key="create-post" href="/create-post">
+                  Create Post
+                </DropdownItem>
+                <DropdownItem
+                  key="github"
+                  href="https://github.com/Ategon/Jamjar"
+                >
+                  GitHub
+                </DropdownItem>
+                <DropdownItem
+                  key="forgejo"
+                  href="https://git.edikoyo.com/Ategon/Jamjar"
+                >
+                  Forgejo
+                </DropdownItem>
+                <DropdownItem
+                  key="discord"
+                  href="https://discord.gg/rfmKzM6ASw"
+                >
+                  Discord
+                </DropdownItem>
+                <DropdownItem key="logout" color="danger" href="/logout">
+                  Logout
+                </DropdownItem>
+              </DropdownMenu>
+            </Dropdown>
+          ) : (
+            <Dropdown>
+              <DropdownTrigger>
+                <Menu />
+              </DropdownTrigger>
+              <DropdownMenu className="text-black">
+                <DropdownItem
+                  key="github"
+                  href="https://github.com/Ategon/Jamjar"
+                >
+                  GitHub
+                </DropdownItem>
+                <DropdownItem
+                  key="forgejo"
+                  href="https://git.edikoyo.com/Ategon/Jamjar"
+                >
+                  Forgejo
+                </DropdownItem>
+                <DropdownItem
+                  key="discord"
+                  href="https://discord.gg/rfmKzM6ASw"
+                >
+                  Discord
+                </DropdownItem>
+                <DropdownItem key="login" href="/login">
+                  Log In
+                </DropdownItem>
+                <DropdownItem key="signup" href="/signup">
+                  Sign Up
+                </DropdownItem>
+              </DropdownMenu>
+            </Dropdown>
+          )
+        ) : (
+          <div className="flex gap-3 items-center">
+            {user && (
+              <NavbarItem>
+                <Link href="/create-post">
+                  <Button
+                    endContent={<SquarePen />}
+                    className="text-white border-white/50 hover:border-green-100/50 hover:text-green-100 hover:scale-110 transition-all transform duration-500 ease-in-out"
+                    variant="bordered"
+                  >
+                    Create Post
+                  </Button>
+                </Link>
+                <Spacer x={32} />
+              </NavbarItem>
+            )}
+            <NavbarItem>
+              <Tooltip
+                delay={1000}
+                content={
+                  <div className="px-1 py-2 text-black text-center">
+                    <div className="text-small font-bold">GitHub</div>
+                    <div className="text-tiny">Source Code</div>
+                  </div>
+                }
+              >
+                <Link
+                  href="https://github.com/Ategon/Jamjar"
+                  className="text-white flex justify-center duration-500 ease-in-out transition-all transform hover:scale-125 hover:text-red-100"
+                  isExternal
+                >
+                  <SiGithub title="" />
+                </Link>
+              </Tooltip>
+            </NavbarItem>
+            <NavbarItem>
+              <Tooltip
+                delay={1000}
+                content={
+                  <div className="px-1 py-2 text-black text-center">
+                    <div className="text-small font-bold">Forgejo</div>
+                    <div className="text-tiny">Source Code</div>
+                  </div>
+                }
+              >
+                <Link
+                  href="https://git.edikoyo.com/Ategon/Jamjar"
+                  className="text-white flex justify-center duration-500 ease-in-out transition-all transform hover:scale-125 hover:text-red-100"
+                  isExternal
+                >
+                  <SiForgejo title="" />
+                </Link>
+              </Tooltip>
+            </NavbarItem>
+            <NavbarItem>
+              <Link
+                href="https://discord.gg/rfmKzM6ASw"
+                className="text-white flex justify-center duration-500 ease-in-out transition-all transform hover:scale-125 hover:text-indigo-100"
+                isExternal
+              >
+                <SiDiscord />
+              </Link>
+            </NavbarItem>
+            <Divider orientation="vertical" className="h-1/2" />
+            {!user ? (
+              <div className="flex gap-3 items-center">
+                <NavbarItem>
+                  <Link href="/login">
+                    <Button
+                      endContent={<LogInIcon />}
+                      className="text-white border-white/50 hover:border-green-100/50 hover:text-green-100 hover:scale-110 transition-all transform duration-500 ease-in-out"
+                      variant="bordered"
+                    >
+                      Log In
+                    </Button>
+                  </Link>
+                </NavbarItem>
+                <NavbarItem>
+                  <Link href="/signup">
+                    <Button
+                      endContent={<NotebookPen />}
+                      className="text-white border-white/50 hover:border-green-100/50 hover:text-green-100 hover:scale-110 transition-all transform duration-500 ease-in-out"
+                      variant="bordered"
+                    >
+                      Sign up
+                    </Button>
+                  </Link>
+                </NavbarItem>
+              </div>
+            ) : (
+              <Dropdown>
+                <DropdownTrigger>
+                  <Avatar src={user.profilePicture} />
+                </DropdownTrigger>
+                <DropdownMenu>
+                  {/* <DropdownItem
+                key="profile"
+                className="text-black"
+                href="/profile"
+              >
+                Profile
+              </DropdownItem>
+              <DropdownItem
+                showDivider
+                key="settings"
+                className="text-black"
+                href="/settings"
+              >
+                Settings
+              </DropdownItem> */}
+                  <DropdownItem
+                    key="logout"
+                    color="danger"
+                    className="text-danger"
+                    href="/logout"
+                  >
+                    Logout
+                  </DropdownItem>
+                </DropdownMenu>
+              </Dropdown>
+            )}
+          </div>
+        )}
+      </NavbarContent>
+    </NavbarBase>
+  );
+}
+/* 
+
+{isMobile ? (
+          // Mobile view
+          user ? (
+            <Dropdown>
+              <DropdownTrigger>
+                <Avatar src={user.profilePicture} />
+              </DropdownTrigger>
+              <DropdownMenu>
+                <DropdownItem key="create-post" href="/create-post">
+                  Create Post
+                </DropdownItem>
+                <DropdownItem key="logout" color="danger" href="/logout">
+                  Logout
+                </DropdownItem>
+              </DropdownMenu>
+            </Dropdown>
+          ) : (
+            <Dropdown>
+              <DropdownTrigger>
+                <Button auto flat className="text-white">
+                  ☰
+                </Button>
+              </DropdownTrigger>
+              <DropdownMenu>
+                <DropdownItem key="github" href="https://github.com/Ategon/Jamjar" isExternal>
+                  GitHub
+                </DropdownItem>
+                <DropdownItem key="forgejo" href="https://git.edikoyo.com/Ategon/Jamjar" isExternal>
+                  Forgejo
+                </DropdownItem>
+                <DropdownItem key="discord" href="https://discord.gg/rfmKzM6ASw" isExternal>
+                  Discord
+                </DropdownItem>
+                <DropdownItem key="login" href="/login">
+                  Log In
+                </DropdownItem>
+                <DropdownItem key="signup" href="/signup">
+                  Sign Up
+                </DropdownItem>
+              </DropdownMenu>
+            </Dropdown>
+          )
+        ) : (
+
+
+        user && (
           <NavbarItem>
             <Link href="/create-post">
               <Button
@@ -93,7 +333,7 @@ export default function Navbar() {
             </Link>
             <Spacer x={32} />
           </NavbarItem>
-        )}
+        )
         <NavbarItem>
           <Tooltip
             delay={1000}
@@ -173,21 +413,7 @@ export default function Navbar() {
               <Avatar src={user.profilePicture} />
             </DropdownTrigger>
             <DropdownMenu>
-              {/* <DropdownItem
-                key="profile"
-                className="text-black"
-                href="/profile"
-              >
-                Profile
-              </DropdownItem>
-              <DropdownItem
-                showDivider
-                key="settings"
-                className="text-black"
-                href="/settings"
-              >
-                Settings
-              </DropdownItem> */}
+              
               <DropdownItem
                 key="logout"
                 color="danger"
@@ -199,7 +425,5 @@ export default function Navbar() {
             </DropdownMenu>
           </Dropdown>
         )}
-      </NavbarContent>
-    </NavbarBase>
-  );
-}
+      )
+      </NavbarContent> */
diff --git a/src/components/timers/index.tsx b/src/components/timers/index.tsx
index 3f846ce..300f5c3 100644
--- a/src/components/timers/index.tsx
+++ b/src/components/timers/index.tsx
@@ -1,3 +1,4 @@
+import { Spacer } from "@nextui-org/react";
 import Timer from "./Timer";
 
 export default function Timers() {
@@ -7,6 +8,8 @@ export default function Timers() {
         name="Jam Start"
         targetDate={new Date("2025-04-04T18:00:00-05:00")}
       />
+      <Spacer y={8} />
+      <p>Site under construction</p>
     </div>
   );
 }