From 04cf44484881c3f827bd5fed98ebf94e78bba0e0 Mon Sep 17 00:00:00 2001 From: Chneemann Date: Tue, 6 Oct 2026 08:48:39 +0200 Subject: [PATCH] fix(welcome): repair Tailwind class syntax and clean up link hrefs --- app/page.tsx | 50 +++++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 42bf3e8..0b20ff2 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -7,55 +7,67 @@ import { auth } from "@/auth"; import { redirect } from "next/navigation"; import Link from "next/link"; import Footer from "@/app/components/layout/Footer"; -import { Zap, BarChart3, ShieldCheck, ArrowRight } from "lucide-react"; +import { + Zap, + BarChart3, + ShieldCheck, + ArrowRight, + type LucideIcon, +} from "lucide-react"; +import { JSX } from "react/jsx-runtime"; /** - * Properties for a feature item displayed in the features showcase. + * Interface representing a feature item displayed in the features showcase. * * @interface Feature - * @property {string} id - Unique identifier for the feature. + * @property {string} id - The unique identifier of the feature. * @property {string} title - The title of the feature. - * @property {string} description - Explanatory text detailing the feature. - * @property {React.ReactNode} icon - Icon element representing the feature. + * @property {string} description - The explanatory description of the feature. + * @property {LucideIcon} icon - The Lucide icon component associated with the feature. */ interface Feature { id: string; title: string; description: string; - icon: React.ReactNode; + icon: LucideIcon; } +/** + * List of key features showcased on the landing page. + * + * @type {Feature[]} + */ const FEATURES: Feature[] = [ { id: "velocity", title: "Hyper Velocity", description: "Eliminate switching friction with optimized workflows keeping you directly in the zone.", - icon: , + icon: Zap, }, { id: "metrics", title: "Clean Metrics", description: "Visualize focus states and process summaries clearly without visual clutter.", - icon: , + icon: BarChart3, }, { id: "security", title: "Full Security", description: "Encrypted data and robust authentication guards protecting your workspace session.", - icon: , + icon: ShieldCheck, }, ]; /** - * Renders the welcome landing page with session validation and responsive layout. + * Renders the welcome landing page, redirecting authenticated users to the summary page. * * @async - * @returns {Promise} The rendered welcome page component. + * @returns {Promise} The rendered welcome landing page component. */ -export default async function WelcomePage() { +export default async function WelcomePage(): Promise { const session = typeof auth === "function" ? await auth() : null; if (session) { @@ -96,7 +108,7 @@ export default async function WelcomePage() {
Get Started @@ -104,7 +116,7 @@ export default async function WelcomePage() { Sign In @@ -118,20 +130,20 @@ export default async function WelcomePage() { className="mt-8 sm:mt-12 w-full max-w-4xl" >
- {FEATURES.map((feature) => ( + {FEATURES.map(({ id, title, description, icon: Icon }) => (
- {feature.icon} +

- {feature.title} + {title}

- {feature.description} + {description}