feat: add footer

This commit is contained in:
Danish Arora 2025-04-04 02:51:04 +05:30
parent c6fe4d65e7
commit e2c8312f24
No known key found for this signature in database
GPG Key ID: 1C6EF37CDAE1426E
6 changed files with 147 additions and 11 deletions

View File

@ -41,7 +41,6 @@ If you encounter an "ERC20: insufficient allowance" error, it means the token ap
## TODO
- [ ] add help type info on the webapp
- [ ] update descriptions, and link specs/resources
- [ ] footer for discord help
- [x] footer for discord help
- [ ] add info about exporting/using keystore/credential and using with nwaku/nwaku-compose/waku-simulator
- [ x ] exporting entire keystore
- [ ] clean comments
- [x] exporting entire keystore

View File

@ -0,0 +1,13 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
images: {
domains: [
'waku.org',
'logos.co',
'contributors.free.technology'
],
},
reactStrictMode: true,
}
module.exports = nextConfig

View File

@ -10,6 +10,7 @@ import "@fontsource-variable/jetbrains-mono";
import { WalletProvider, RLNImplementationProvider, KeystoreProvider, RLNProvider } from "../contexts/index";
import { Header } from "../components/Header";
import { AppStateProvider } from "../contexts/AppStateContext";
import { Footer } from "@/components/Footer";
export const fontSans = FontSans({
subsets: ["latin"],
@ -53,11 +54,12 @@ export default function RootLayout({ children }: RootLayoutProps) {
<RLNImplementationProvider>
<KeystoreProvider>
<RLNProvider>
<div className="flex flex-col min-h-screen">
<div className="relative flex min-h-screen flex-col">
<Header />
<main className="flex-grow">
<main className="flex-1 container mx-auto py-8">
{children}
</main>
<Footer />
</div>
<Toaster />
</RLNProvider>

View File

@ -0,0 +1,100 @@
import Link from "next/link";
import { Github } from "lucide-react";
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip";
export function Footer() {
return (
<footer className="w-full border-t border-terminal-border bg-terminal-background/80 backdrop-blur-sm mt-auto">
<div className="container mx-auto py-8">
<div className="flex flex-col items-center justify-center space-y-8">
{/* Waku Section */}
<div className="flex flex-col items-center space-y-4">
<Link
href="https://waku.org"
target="_blank"
className="flex items-center space-x-3 px-4 py-2 rounded-md transition-all duration-300 hover:bg-terminal-background/50"
>
<span className="text-primary font-mono text-xl font-bold glow-text">
Waku
</span>
</Link>
{/* Community Links */}
<div className="flex items-center space-x-6">
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Link
href="https://discord.waku.org"
target="_blank"
className="text-muted-foreground hover:text-primary transition-colors duration-200"
>
<svg
className="w-5 h-5"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M20.317 4.492c-1.53-.69-3.17-1.2-4.885-1.49a.075.075 0 0 0-.079.036c-.21.369-.444.85-.608 1.23a18.566 18.566 0 0 0-5.487 0 12.36 12.36 0 0 0-.617-1.23A.077.077 0 0 0 8.562 3c-1.714.29-3.354.8-4.885 1.491a.07.07 0 0 0-.032.027C.533 9.093-.32 13.555.099 17.961a.08.08 0 0 0 .031.055 20.03 20.03 0 0 0 5.993 2.98.078.078 0 0 0 .084-.026 13.83 13.83 0 0 0 1.226-1.963.074.074 0 0 0-.041-.104 13.201 13.201 0 0 1-1.872-.878.075.075 0 0 1-.008-.125c.126-.093.252-.19.372-.287a.075.075 0 0 1 .078-.01c3.927 1.764 8.18 1.764 12.061 0a.075.075 0 0 1 .079.009c.12.098.245.195.372.288a.075.075 0 0 1-.006.125c-.598.344-1.22.635-1.873.877a.075.075 0 0 0-.041.105c.36.687.772 1.341 1.225 1.962a.077.077 0 0 0 .084.028 19.963 19.963 0 0 0 6.002-2.981.076.076 0 0 0 .032-.054c.5-5.094-.838-9.52-3.549-13.442a.06.06 0 0 0-.031-.028zM8.02 15.278c-1.182 0-2.157-1.069-2.157-2.38 0-1.312.956-2.38 2.157-2.38 1.21 0 2.176 1.077 2.157 2.38 0 1.312-.956 2.38-2.157 2.38zm7.975 0c-1.183 0-2.157-1.069-2.157-2.38 0-1.312.955-2.38 2.157-2.38 1.21 0 2.176 1.077 2.157 2.38 0 1.312-.946 2.38-2.157 2.38z"/>
</svg>
</Link>
</TooltipTrigger>
<TooltipContent>
<p className="font-mono text-xs">Join our Discord community for support & feedback</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
<Link
href="https://github.com/waku-org"
target="_blank"
className="text-muted-foreground hover:text-primary transition-colors duration-200"
>
<Github className="w-5 h-5" />
</Link>
<Link
href="https://docs.waku.org"
target="_blank"
className="text-muted-foreground hover:text-primary transition-colors duration-200 font-mono text-sm"
>
Docs
</Link>
<Link
href="https://github.com/waku-org/specs"
target="_blank"
className="text-muted-foreground hover:text-primary transition-colors duration-200 font-mono text-sm"
>
Specs
</Link>
</div>
</div>
{/* Organizational Structure */}
<div className="flex items-center justify-center space-x-8 text-muted-foreground">
<Link
href="https://logos.co"
target="_blank"
className="font-mono text-sm opacity-60 hover:opacity-100 transition-opacity duration-300"
>
Logos
</Link>
<span className="text-muted-foreground/40"></span>
<Link
href="https://free.technology"
target="_blank"
className="font-mono text-sm opacity-60 hover:opacity-100 transition-opacity duration-300"
>
IFT
</Link>
</div>
</div>
</div>
</footer>
);
}

View File

@ -0,0 +1,28 @@
import * as React from "react"
import * as TooltipPrimitive from "@radix-ui/react-tooltip"
import { cn } from "@/lib/utils"
const TooltipProvider = TooltipPrimitive.Provider
const Tooltip = TooltipPrimitive.Root
const TooltipTrigger = TooltipPrimitive.Trigger
const TooltipContent = React.forwardRef<
React.ElementRef<typeof TooltipPrimitive.Content>,
React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
>(({ className, sideOffset = 4, ...props }, ref) => (
<TooltipPrimitive.Content
ref={ref}
sideOffset={sideOffset}
className={cn(
"z-50 overflow-hidden rounded-md bg-terminal-background px-3 py-1.5 text-xs text-primary animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 border border-terminal-border",
className
)}
{...props}
/>
))
TooltipContent.displayName = TooltipPrimitive.Content.displayName
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }

View File

@ -1,9 +1,3 @@
// Types for content structure
type Link = {
text: string;
url: string;
};
export type ContentSegment = {
type: 'text' | 'link';
content: string;