-
Notifications
You must be signed in to change notification settings - Fork 17
Fix #28 Added footer component #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,4 +1,5 @@ | ||||||||||||||||||||||||||||||||||||||||||
| import Link from "next/link" | ||||||||||||||||||||||||||||||||||||||||||
| import Image from "next/image" | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| const navigation = [ | ||||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -105,32 +106,94 @@ const navigation = [ | |||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| const footerLinks = [ | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Blockchains", href: "/blockchains" }, | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Protocols", href: "/protocols" }, | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Research", href: "/research" }, | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Workshop", href: "https://workshop.stability.nexus" }, | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Hackathon", href: "https://hackathon.stability.nexus" }, | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Articles", href: "https://news.stability.nexus/" }, | ||||||||||||||||||||||||||||||||||||||||||
| { name: "Docs", href: "https://docs.stability.nexus/" }, | ||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| export default function Footer() { | ||||||||||||||||||||||||||||||||||||||||||
| return ( | ||||||||||||||||||||||||||||||||||||||||||
| <footer className="p-10"> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="flex items-center justify-between"> | ||||||||||||||||||||||||||||||||||||||||||
| {/* | ||||||||||||||||||||||||||||||||||||||||||
| <Image | ||||||||||||||||||||||||||||||||||||||||||
| unoptimized | ||||||||||||||||||||||||||||||||||||||||||
| fetchPriority="high" | ||||||||||||||||||||||||||||||||||||||||||
| loading="lazy" | ||||||||||||||||||||||||||||||||||||||||||
| src="./logo.png" | ||||||||||||||||||||||||||||||||||||||||||
| alt="Stability Nexus Logo" | ||||||||||||||||||||||||||||||||||||||||||
| height={65} | ||||||||||||||||||||||||||||||||||||||||||
| width={65} | ||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||
| */} | ||||||||||||||||||||||||||||||||||||||||||
| <div className="flex items-center space-x-4 md:order-2"> | ||||||||||||||||||||||||||||||||||||||||||
| {navigation.map((item) => ( | ||||||||||||||||||||||||||||||||||||||||||
| <Link | ||||||||||||||||||||||||||||||||||||||||||
| key={item.name} | ||||||||||||||||||||||||||||||||||||||||||
| href={item.href} | ||||||||||||||||||||||||||||||||||||||||||
| className=" rounded-full bg-secondary/30 p-2 hover:bg-secondary" | ||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||
| <span className="sr-only">{item.name}</span> | ||||||||||||||||||||||||||||||||||||||||||
| <item.icon className="size-6" aria-hidden="true" /> | ||||||||||||||||||||||||||||||||||||||||||
| <footer className="bg-white dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800"> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="mx-auto max-w-7xl px-6 py-12 lg:px-8"> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="xl:grid xl:grid-cols-3 xl:gap-8"> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="space-y-8"> | ||||||||||||||||||||||||||||||||||||||||||
| <Link href="/" className="flex items-center space-x-2"> | ||||||||||||||||||||||||||||||||||||||||||
| <Image | ||||||||||||||||||||||||||||||||||||||||||
| unoptimized | ||||||||||||||||||||||||||||||||||||||||||
| src="./logo.png" | ||||||||||||||||||||||||||||||||||||||||||
| alt="Stability Nexus Logo" | ||||||||||||||||||||||||||||||||||||||||||
| width={40} | ||||||||||||||||||||||||||||||||||||||||||
| height={40} | ||||||||||||||||||||||||||||||||||||||||||
| className="h-10 w-auto" | ||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||
| <span className="text-2xl font-bold text-gray-900 dark:text-white"> | ||||||||||||||||||||||||||||||||||||||||||
| Stability Nexus | ||||||||||||||||||||||||||||||||||||||||||
| </span> | ||||||||||||||||||||||||||||||||||||||||||
| </Link> | ||||||||||||||||||||||||||||||||||||||||||
| ))} | ||||||||||||||||||||||||||||||||||||||||||
| <p className="text-sm leading-6 text-gray-600 dark:text-gray-400"> | ||||||||||||||||||||||||||||||||||||||||||
| Building a more stable world through emerging technologies. | ||||||||||||||||||||||||||||||||||||||||||
| </p> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="flex space-x-6"> | ||||||||||||||||||||||||||||||||||||||||||
| {navigation.map((item) => ( | ||||||||||||||||||||||||||||||||||||||||||
| <Link | ||||||||||||||||||||||||||||||||||||||||||
| key={item.name} | ||||||||||||||||||||||||||||||||||||||||||
| href={item.href} | ||||||||||||||||||||||||||||||||||||||||||
| className="text-gray-400 hover:text-gray-500" | ||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||
| <span className="sr-only">{item.name}</span> | ||||||||||||||||||||||||||||||||||||||||||
| <item.icon className="size-6" aria-hidden="true" /> | ||||||||||||||||||||||||||||||||||||||||||
| </Link> | ||||||||||||||||||||||||||||||||||||||||||
| ))} | ||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+143
to
+151
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. External links should open in new tabs with security attributes. Social media links point to external sites but lack 🔎 Proposed fix {navigation.map((item) => (
<Link
key={item.name}
href={item.href}
+ target="_blank"
+ rel="noopener noreferrer"
className="text-gray-400 hover:text-gray-500"
>
<span className="sr-only">{item.name}</span>
<item.icon className="size-6" aria-hidden="true" />
</Link>
))}Consider the same change for the external footerLinks (Workshop, Hackathon, Articles, Docs) at lines 163-168 and 180-185. 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="mt-16 grid grid-cols-2 gap-8 xl:col-span-2 xl:mt-0"> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="md:grid md:grid-cols-2 md:gap-8"> | ||||||||||||||||||||||||||||||||||||||||||
| <div> | ||||||||||||||||||||||||||||||||||||||||||
| <h3 className="text-sm font-semibold leading-6 text-gray-900 dark:text-white"> | ||||||||||||||||||||||||||||||||||||||||||
| Resources | ||||||||||||||||||||||||||||||||||||||||||
| </h3> | ||||||||||||||||||||||||||||||||||||||||||
| <ul role="list" className="mt-6 space-y-4"> | ||||||||||||||||||||||||||||||||||||||||||
| {footerLinks.slice(0, 4).map((item) => ( | ||||||||||||||||||||||||||||||||||||||||||
| <li key={item.name}> | ||||||||||||||||||||||||||||||||||||||||||
| <Link | ||||||||||||||||||||||||||||||||||||||||||
| href={item.href} | ||||||||||||||||||||||||||||||||||||||||||
| className="text-sm leading-6 text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white" | ||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||
| {item.name} | ||||||||||||||||||||||||||||||||||||||||||
| </Link> | ||||||||||||||||||||||||||||||||||||||||||
| </li> | ||||||||||||||||||||||||||||||||||||||||||
| ))} | ||||||||||||||||||||||||||||||||||||||||||
| </ul> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="mt-10 md:mt-0"> | ||||||||||||||||||||||||||||||||||||||||||
| <h3 className="text-sm font-semibold leading-6 text-gray-900 dark:text-white"> | ||||||||||||||||||||||||||||||||||||||||||
| More | ||||||||||||||||||||||||||||||||||||||||||
| </h3> | ||||||||||||||||||||||||||||||||||||||||||
| <ul role="list" className="mt-6 space-y-4"> | ||||||||||||||||||||||||||||||||||||||||||
| {footerLinks.slice(4).map((item) => ( | ||||||||||||||||||||||||||||||||||||||||||
| <li key={item.name}> | ||||||||||||||||||||||||||||||||||||||||||
| <Link | ||||||||||||||||||||||||||||||||||||||||||
| href={item.href} | ||||||||||||||||||||||||||||||||||||||||||
| className="text-sm leading-6 text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white" | ||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||
| {item.name} | ||||||||||||||||||||||||||||||||||||||||||
| </Link> | ||||||||||||||||||||||||||||||||||||||||||
| </li> | ||||||||||||||||||||||||||||||||||||||||||
| ))} | ||||||||||||||||||||||||||||||||||||||||||
| </ul> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| <div className="mt-16 border-t border-gray-900/10 pt-8 sm:mt-20 lg:mt-24"> | ||||||||||||||||||||||||||||||||||||||||||
| <p className="text-xs leading-5 text-gray-500"> | ||||||||||||||||||||||||||||||||||||||||||
| © {new Date().getFullYear()} Stability Nexus. All rights reserved. | ||||||||||||||||||||||||||||||||||||||||||
| </p> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||
| </footer> | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,5 @@ | ||
| {} | ||
| { | ||
| "/_error": "pages/_error.js", | ||
| "/_app": "pages/_app.js", | ||
| "/_document": "pages/_document.js" | ||
| } |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Image source path may not resolve correctly.
The relative path
./logo.pngmay not work as expected with Next.js Image component. For static assets, use an absolute path from the public directory.🔎 Proposed fix
<Image unoptimized - src="./logo.png" + src="/logo.png" alt="Stability Nexus Logo" width={40} height={40} className="h-10 w-auto" />📝 Committable suggestion
🤖 Prompt for AI Agents