fix: resolve SonarQube findings and Next.js Image warnings
SonarQube/SonarLint fixes:
- Remove unused imports (useMemo, PROVIDER_ENDPOINTS, updateSettings, APP_CONFIG)
- Add PropTypes validation to all components receiving props
- Fix accessibility issues (semantic buttons, ARIA attributes, form labels)
- Replace array index keys with stable identifiers
- Extract duplicate getStatusDisplay function in providers page
- Fix negated conditions for better readability
- Add node: prefix to Node.js imports in localDb.js
- Fix optional chaining in pricing lookup
- Add explanatory comments to empty catch blocks
- Consolidate duplicate OAuth flow branches
- Change parseInt to Number.parseInt
- Disable false positive rules in VS Code settings
Next.js Image fixes:
- Add style={{ width: "auto", height: "auto" }} to all Image components
- Resolves aspect ratio warnings without triggering lint issues
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
decolua
co-authored by
Claude Opus 4.5
parent
d9b8e48725
commit
7058b062e7
@@ -10,12 +10,17 @@ export default function Navigation() {
|
||||
<nav className="fixed top-0 z-50 w-full bg-[#181411]/80 backdrop-blur-md border-b border-[#3a2f27]">
|
||||
<div className="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between">
|
||||
{/* Logo */}
|
||||
<div className="flex items-center gap-3 cursor-pointer" onClick={() => router.push("/")}>
|
||||
<button
|
||||
type="button"
|
||||
className="flex items-center gap-3 cursor-pointer bg-transparent border-none p-0"
|
||||
onClick={() => router.push("/")}
|
||||
aria-label="Navigate to home"
|
||||
>
|
||||
<div className="size-8 rounded bg-linear-to-br from-[#f97815] to-orange-700 flex items-center justify-center text-white">
|
||||
<span className="material-symbols-outlined text-[20px]">hub</span>
|
||||
</div>
|
||||
<h2 className="text-white text-xl font-bold tracking-tight">9Router</h2>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
{/* Desktop menu */}
|
||||
<div className="hidden md:flex items-center gap-8">
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"use client";
|
||||
import { useRouter } from "next/navigation";
|
||||
import Navigation from "./components/Navigation";
|
||||
import HeroSection from "./components/HeroSection";
|
||||
import FlowAnimation from "./components/FlowAnimation";
|
||||
@@ -8,6 +9,7 @@ import GetStarted from "./components/GetStarted";
|
||||
import Footer from "./components/Footer";
|
||||
|
||||
export default function LandingPage() {
|
||||
const router = useRouter();
|
||||
return (
|
||||
<div className="relative text-white font-sans overflow-x-hidden antialiased selection:bg-[#f97815] selection:text-white">
|
||||
{/* Animated Background */}
|
||||
@@ -55,7 +57,7 @@ export default function LandingPage() {
|
||||
</p>
|
||||
<div className="flex flex-col sm:flex-row items-center justify-center gap-4">
|
||||
<button
|
||||
onClick={() => window.location.href = "/dashboard"}
|
||||
onClick={() => router.push("/dashboard")}
|
||||
className="w-full sm:w-auto h-14 px-10 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-lg font-bold transition-all shadow-[0_0_20px_rgba(249,120,21,0.5)]"
|
||||
>
|
||||
Start Free
|
||||
|
||||
Reference in New Issue
Block a user