1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2026-06-05 20:15:31 -04:00

refactor: simplify next link component usage

This commit is contained in:
2026-01-28 12:40:59 -05:00
parent 0d6e489cc8
commit 29487e6d5f
21 changed files with 221 additions and 182 deletions
+7 -9
View File
@@ -1,26 +1,24 @@
import { env } from "@/lib/env";
import Link from "@/components/link";
import Link from "next/link";
import siteConfig from "@/lib/config/site";
const Footer = () => {
return (
<footer className="text-muted-foreground mt-8 w-full py-6 text-center text-[13px] leading-loose">
Content{" "}
<Link href="/license" prefetch={false}>
licensed under {siteConfig.license}
</Link>
,{" "}
<Link href="/previously" prefetch={false} title="Previously on...">
Content <Link href="/license">licensed under {siteConfig.license}</Link>,{" "}
<Link href="/previously" title="Previously on...">
{siteConfig.copyrightYearStart}
</Link>{" "}
2026.{" "}
<Link
<a
href={`https://github.com/${env.NEXT_PUBLIC_GITHUB_REPO}`}
target="_blank"
rel="noopener noreferrer"
title="View Source on GitHub"
className="font-medium underline underline-offset-4"
>
View source.
</Link>
</a>
</footer>
);
};
+6 -4
View File
@@ -3,7 +3,7 @@
import { useState, useEffect } from "react";
import { useTheme } from "next-themes";
import Image from "next/image";
import Link from "@/components/link";
import Link from "next/link";
import Button from "@/components/ui/button";
import Separator from "@/components/ui/separator";
import Menu from "@/components/layout/menu";
@@ -60,7 +60,9 @@ const Header = ({ className }: { className?: string }) => {
quality={75}
priority
/>
<span className="text-[17px] font-medium whitespace-nowrap max-md:sr-only">{siteConfig.name}</span>
<span className="text-[17.5px] font-medium tracking-tight whitespace-nowrap max-md:sr-only">
{siteConfig.name}
</span>
</Link>
<Separator orientation="vertical" className="!h-6" />
<Menu />
@@ -68,9 +70,9 @@ const Header = ({ className }: { className?: string }) => {
<div className="flex items-center gap-2">
<Button variant="ghost" size="sm" aria-label="Open GitHub profile" asChild>
<Link href={`https://github.com/${authorConfig.social.github}`}>
<a href={`https://github.com/${authorConfig.social.github}`} target="_blank" rel="noopener noreferrer">
<GitHubIcon />
</Link>
</a>
</Button>
<Button
variant="ghost"
+5 -17
View File
@@ -3,7 +3,7 @@
import { useSelectedLayoutSegment } from "next/navigation";
import { ChevronDownIcon } from "lucide-react";
import Button from "@/components/ui/button";
import Link from "@/components/link";
import Link from "next/link";
import {
DropdownMenu,
DropdownMenuTrigger,
@@ -49,9 +49,7 @@ const Menu = () => {
data-current={isCurrent || undefined}
className="data-current:bg-accent/60 data-current:text-accent-foreground"
>
<Link href={item.href} prefetch={false}>
{item.text}
</Link>
<Link href={item.href}>{item.text}</Link>
</Button>
);
})}
@@ -66,15 +64,8 @@ const Menu = () => {
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="start" className="min-w-[140px]">
<DropdownMenuItem asChild>
<Link
href="/"
prefetch={false}
data-current={segment === ""}
aria-current={segment === "" ? "page" : undefined}
>
Home
</Link>
<DropdownMenuItem asChild data-current={segment === ""} aria-current={segment === "" ? "page" : undefined}>
<Link href="/">Home</Link>
</DropdownMenuItem>
{menuItems.map((item, index) => {
const isCurrent = item.href?.split("/")[1] === segment;
@@ -83,13 +74,10 @@ const Menu = () => {
<DropdownMenuItem
asChild
key={index}
className="data-current:bg-accent/40 data-current:text-accent-foreground data-current:font-medium"
data-current={isCurrent || undefined}
aria-current={isCurrent ? "page" : undefined}
>
<Link href={item.href} prefetch={false}>
{item.text}
</Link>
<Link href={item.href}>{item.text}</Link>
</DropdownMenuItem>
);
})}
+1 -1
View File
@@ -1,4 +1,4 @@
import Link from "@/components/link";
import Link from "next/link";
import { cn } from "@/lib/utils";
const PageTitle = ({