[READ-ONLY] One Calendar is a privacy-first calendar web app built with Next.js. It has modern security features, including e2ee, password-protected sharing, and self-destructing share links 馃搮 calendar.xyehr.cn
nextjs
0

Configure Feed

Select the types of activity you want to include in your feed.

One-Calendar / components / landing / footer-section.tsx
2.5 kB 66 lines
1'use client' 2 3import { ArrowUpRight } from 'lucide-react' 4import { AnimatedWave } from './animated-wave' 5import { APP_CONFIG } from '@/lib/config' 6 7export function FooterSection() { 8 const currentYear = new Date().getFullYear() 9 10 return ( 11 <footer className="relative border-t border-foreground/10"> 12 <div className="absolute inset-0 h-64 opacity-20 pointer-events-none overflow-hidden"> 13 <AnimatedWave /> 14 </div> 15 16 <div className="relative z-10 max-w-[1400px] mx-auto px-6 lg:px-12"> 17 <div className="py-16 lg:py-24"> 18 <div className="grid grid-cols-1 md:grid-cols-5 gap-12 lg:gap-8"> 19 <div className="md:col-span-2"> 20 <a href="/" className="inline-flex items-center gap-2 mb-6"> 21 <span className="text-2xl font-display">One Calendar</span> 22 </a> 23 24 <p className="text-muted-foreground leading-relaxed mb-8 max-w-xs"> 25 A privacy-first, weekly-focused open-source calendar built for 26 clarity and control. 27 </p> 28 </div> 29 30 {APP_CONFIG.landing.footerSections.map((section) => ( 31 <div key={section.title}> 32 <h3 className="text-sm font-medium mb-6">{section.title}</h3> 33 <ul className="space-y-4"> 34 {section.links.map((link) => ( 35 <li key={link.label}> 36 <a 37 href={link.href} 38 className="text-sm text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-2 group" 39 > 40 {link.label} 41 <ArrowUpRight className="w-3 h-3 opacity-0 -translate-x-1 group-hover:opacity-100 group-hover:translate-x-0 transition-all" /> 42 </a> 43 </li> 44 ))} 45 </ul> 46 </div> 47 ))} 48 </div> 49 </div> 50 51 <div className="py-8 border-t border-foreground/10 flex flex-col md:flex-row items-center justify-between gap-4"> 52 <p className="text-sm text-muted-foreground"> 53 {currentYear} One Calendar. All rights reserved. 54 </p> 55 56 <a 57 className="text-sm text-muted-foreground hover:text-foreground" 58 href={APP_CONFIG.contact.statusPageUrl} 59 > 60 Status page available 61 </a> 62 </div> 63 </div> 64 </footer> 65 ) 66}