From 633b2a997ad5e6785b8123748e955b3168da4032 Mon Sep 17 00:00:00 2001 From: Jason Jordan Date: Wed, 2 Jul 2025 16:39:16 -0400 Subject: [PATCH] Homepage first runthrough complete --- docker-compose.yml | 2 - src/components/Dropdown.tsx | 73 ++++++++++++++++ src/components/Footer.tsx | 57 +++++++----- src/components/InfoCard.tsx | 115 +++++++++++++++++++++++++ src/components/Navbar.tsx | 82 +++++++++++++++--- src/components/Section1.tsx | 46 ---------- src/components/Section1Invert.tsx | 45 ---------- src/components/Section1InvertLight.tsx | 45 ---------- src/components/Section1Light.tsx | 45 ---------- src/pages/_app.tsx | 7 +- src/pages/index.tsx | 64 ++++++++------ src/styles/globals.css | 4 +- 12 files changed, 337 insertions(+), 248 deletions(-) create mode 100644 src/components/Dropdown.tsx create mode 100644 src/components/InfoCard.tsx delete mode 100644 src/components/Section1.tsx delete mode 100644 src/components/Section1Invert.tsx delete mode 100644 src/components/Section1InvertLight.tsx delete mode 100644 src/components/Section1Light.tsx diff --git a/docker-compose.yml b/docker-compose.yml index ce3bc79..1b05a91 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - services: web: build: diff --git a/src/components/Dropdown.tsx b/src/components/Dropdown.tsx new file mode 100644 index 0000000..66cc464 --- /dev/null +++ b/src/components/Dropdown.tsx @@ -0,0 +1,73 @@ +import React, { useState } from 'react' +import Link from 'next/link'; +import classnames from 'classnames'; + +import Button from './Button'; +import { MenuItem } from './Navbar' + +interface Props { + item: MenuItem; +} + +export default function Dropdown(props: Props) { + const { item } = props; + const [isOpen, setIsOpen] = useState(false); + const menuItems = item?.children ? item.children : []; + const lastIndex = menuItems.length - 1; + + const toggle = () => { + setIsOpen(old => !old); + } + + const transClass = isOpen + ? + "flex" + : + "hidden"; + + function isLastItem (currentItem: MenuItem) { + return lastIndex == menuItems.indexOf(currentItem) + } + + return ( + <> +
+ +
+ { + menuItems.map(item => + <> + + {item.title} + +
+ + ) + } +
+
+ { + isOpen + ? +
+ : + <> + } + + ) +} \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 41fbccf..07377d1 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -1,31 +1,44 @@ "use client"; -import React, { useState, useEffect } from 'react'; -import classnames from 'classnames'; -import Link from 'next/link'; -import Button from './Button'; -import Image from 'next/image'; - const Footer = () => { return ( -