diff --git a/src/components/footer/Footer.tsx b/src/components/footer/Footer.tsx index 0d33d247..0d0475d0 100644 --- a/src/components/footer/Footer.tsx +++ b/src/components/footer/Footer.tsx @@ -1,3 +1,4 @@ +import clsx from 'clsx' import type { FC, ReactNode } from 'react' import { ArrowUpRightIcon, HeartIcon } from '@heroicons/react/24/solid' import Link from 'next/link' @@ -5,8 +6,11 @@ import Link from 'next/link' import CapitalizedTitle from '../text/CapitalizedTitle' import InstagramIcon from '../icon/InstagramIcon' import FacebookIcon from '../icon/FacebookIcon' -import TwitterIcon from '../icon/TwitterIcon' +import XIcon from '../icon/XIcon' import GitHubIcon from '../icon/GitHubIcon' +import MainIcon from '../icon/MailIcon' +import LinkedInIcon from '../icon/LinkedIn' +import ThreadsIcon from '../icon/ThreadsIcon' interface LinkSubsectionProps { title: string @@ -16,11 +20,18 @@ interface LinkSubsectionProps { }[] } +interface LinkCondensedListProps { + links: { + href: string + socialType: SocialType + }[] +} + const LinkSubsection = ({ title, links }: LinkSubsectionProps) => { return ( -
-

{title}

-
+
+

{title}

+
{links.map(({ href, text }) => ( { ) } +const LinkCondensedList = ({ links }: LinkCondensedListProps) => { + return ( +
+ {links.map(({ href, socialType }) => ( + + + + ))} +
+ ) +} + +enum SocialType { + Instagram = 'instagram', + Facebook = 'facebook', + X = 'X', + Github = 'github', + Mail = 'mail', + LinkedIn = 'linkedin', + Threads = 'threads', +} + interface SocialLinkProps { - type: 'instagram' | 'facebook' | 'twitter' | 'github' + type: SocialType + displayText: boolean } -const SocialLink = ({ type }: SocialLinkProps) => { +const SocialLink = ({ type, displayText }: SocialLinkProps) => { const icon = { - instagram: , - facebook: , - twitter: , - github: , + instagram: , + facebook: , + X: , + github: , + mail: , + linkedin: , + threads: , } - const displayText = { + const textToDisplay = { instagram: 'Instagram', facebook: 'Facebook', - twitter: 'Twitter', + X: 'X', github: 'GitHub', + mail: 'info@toriis.earth', + linkedin: 'Linkedin', + threads: 'Threads', } return ( {icon[type]} - {displayText[type]} + {displayText && ( + + {textToDisplay[type]} + + )} ) } +const FooterMobileHeader: FC<{ text: string; className?: string }> = ({ + text, + className, +}) => { + return ( +

+ {text} +

+ ) +} + +const FooterExternalLink: FC<{ org: string }> = ({ org }) => { + return ( + + {org == 'secs' ? 'SECS' : 'Hack4Impact UIUC'}{' '} + + + ) +} + export const Footer: FC = () => (