feat: change all Link component to SmartLink

Close #3512
This commit is contained in:
anime
2025-07-24 15:06:39 +08:00
parent fc4817e669
commit ba951cd2aa
338 changed files with 1381 additions and 1381 deletions

View File

@@ -1,7 +1,7 @@
/* eslint-disable @next/next/no-img-element */
/* eslint-disable react/no-unescaped-entities */
import { siteConfig } from '@/lib/config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 首页的关于模块
@@ -28,11 +28,11 @@ export const About = () => {
__html: siteConfig('STARTER_ABOUT_TEXT')
}}></p>
<Link
<SmartLink
href={siteConfig('STARTER_ABOUT_BUTTON_URL', '')}
className='inline-flex items-center justify-center rounded-md border border-primary bg-primary px-7 py-3 text-center text-base font-medium text-white hover:border-blue-dark hover:bg-blue-dark'>
{siteConfig('STARTER_ABOUT_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>

View File

@@ -1,6 +1,6 @@
/* eslint-disable @next/next/no-img-element */
import { siteConfig } from '@/lib/config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 博文列表
@@ -41,13 +41,13 @@ export const Blog = ({ posts }) => {
data-wow-delay='.1s'>
<div className='mb-8 overflow-hidden rounded-[5px]'>
{item.pageCoverThumbnail && (
<Link href={item?.href} className='block'>
<SmartLink href={item?.href} className='block'>
<img
src={item.pageCoverThumbnail}
alt={item.title}
className='w-full transition group-hover:rotate-6 group-hover:scale-125'
/>
</Link>
</SmartLink>
)}
</div>
<div>
@@ -55,11 +55,11 @@ export const Blog = ({ posts }) => {
{item.publishDay}
</span>
<h3>
<Link
<SmartLink
href={item?.href}
className='mb-4 inline-block text-xl font-semibold text-dark hover:text-primary dark:text-white dark:hover:text-primary sm:text-2xl lg:text-xl xl:text-2xl'>
{item.title}
</Link>
</SmartLink>
</h3>
<p className='max-w-[370px] text-base text-body-color dark:text-dark-6'>
{item.summary}

View File

@@ -1,5 +1,5 @@
import { siteConfig } from '@/lib/config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* CTA用于创建一个呼吁用户行动的部分Call To Action简称 CTA
@@ -30,11 +30,11 @@ export const CTA = () => {
</p>
{siteConfig('STARTER_CTA_BUTTON') && (
<>
<Link
<SmartLink
href={siteConfig('STARTER_CTA_BUTTON_URL', '')}
className='inline-block rounded-md border border-transparent bg-secondary px-7 py-3 text-base font-medium text-white transition hover:bg-[#0BB489]'>
{siteConfig('STARTER_CTA_BUTTON_TEXT')}
</Link>
</SmartLink>
</>
)}
</div>

View File

@@ -3,7 +3,7 @@ import { SVGDesign } from './svg/SVGDesign'
import { SVGEssential } from './svg/SVGEssential'
import { SVGGifts } from './svg/SVGGifts'
import { SVGTemplate } from './svg/SVGTemplate'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 产品特性相关,将显示在首页中
* @returns
@@ -42,11 +42,11 @@ export const Features = () => {
<p className='mb-8 text-body-color dark:text-dark-6 lg:mb-9'>
{siteConfig('STARTER_FEATURE_1_TEXT_1')}
</p>
<Link
<SmartLink
href={siteConfig('STARTER_FEATURE_1_BUTTON_URL', '')}
className='text-base font-medium text-dark hover:text-primary dark:text-white dark:hover:text-primary'>
{siteConfig('STARTER_FEATURE_1_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
<div className='w-full px-4 md:w-1/2 lg:w-1/4'>
@@ -61,11 +61,11 @@ export const Features = () => {
<p className='mb-8 text-body-color dark:text-dark-6 lg:mb-9'>
{siteConfig('STARTER_FEATURE_2_TEXT_1')}
</p>
<Link
<SmartLink
href={siteConfig('STARTER_FEATURE_2_BUTTON_URL', '')}
className='text-base font-medium text-dark hover:text-primary dark:text-white dark:hover:text-primary'>
{siteConfig('STARTER_FEATURE_2_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
<div className='w-full px-4 md:w-1/2 lg:w-1/4'>
@@ -80,11 +80,11 @@ export const Features = () => {
<p className='mb-8 text-body-color dark:text-dark-6 lg:mb-9'>
{siteConfig('STARTER_FEATURE_3_TEXT_1')}
</p>
<Link
<SmartLink
href={siteConfig('STARTER_FEATURE_3_BUTTON_URL', '')}
className='text-base font-medium text-dark hover:text-primary dark:text-white dark:hover:text-primary'>
{siteConfig('STARTER_FEATURE_3_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
<div className='w-full px-4 md:w-1/2 lg:w-1/4'>
@@ -99,11 +99,11 @@ export const Features = () => {
<p className='mb-8 text-body-color dark:text-dark-6 lg:mb-9'>
{siteConfig('STARTER_FEATURE_4_TEXT_1')}
</p>
<Link
<SmartLink
href={siteConfig('STARTER_FEATURE_4_BUTTON_URL', '')}
className='text-base font-medium text-dark hover:text-primary dark:text-white dark:hover:text-primary'>
{siteConfig('STARTER_FEATURE_3_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
</div>

View File

@@ -2,7 +2,7 @@ import { siteConfig } from '@/lib/config'
import SocialButton from '@/themes/fukasawa/components/SocialButton'
import { Logo } from './Logo'
import { SVGFooterCircleBG } from './svg/SVGFooterCircleBG'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/* eslint-disable @next/next/no-img-element */
export const Footer = props => {
@@ -49,11 +49,11 @@ export const Footer = props => {
{item?.LINK_GROUP?.map((l, i) => {
return (
<li key={i}>
<Link
<SmartLink
href={l.URL}
className='mb-3 inline-block text-base text-gray-7 hover:text-primary'>
{l.TITLE}
</Link>
</SmartLink>
</li>
)
})}
@@ -73,7 +73,7 @@ export const Footer = props => {
<div className='flex flex-col gap-8'>
{latestPosts?.map((item, index) => {
return (
<Link
<SmartLink
key={index}
href={item?.href}
className='group flex items-center gap-[22px]'>
@@ -88,7 +88,7 @@ export const Footer = props => {
<span className='line-clamp-2 max-w-[180px] text-base text-gray-7 group-hover:text-white'>
{item.title}
</span>
</Link>
</SmartLink>
)
})}
</div>
@@ -105,19 +105,19 @@ export const Footer = props => {
<div className='w-full px-4 md:w-2/3 lg:w-1/2'>
<div className='my-1'>
<div className='-mx-3 flex items-center justify-center md:justify-start'>
<Link
<SmartLink
href={siteConfig('STARTER_FOOTER_PRIVACY_POLICY_URL', '')}
className='px-3 text-base text-gray-7 hover:text-white hover:underline'>
{siteConfig('STARTER_FOOTER_PRIVACY_POLICY_TEXT')}
</Link>
<Link
</SmartLink>
<SmartLink
href={siteConfig(
'STARTER_FOOTER_PRIVACY_LEGAL_NOTICE_URL', ''
)}
className='px-3 text-base text-gray-7 hover:text-white hover:underline'>
{siteConfig('STARTER_FOOTER_PRIVACY_LEGAL_NOTICE_TEXT')}
</Link>
<Link
</SmartLink>
<SmartLink
href={siteConfig(
'STARTER_FOOTER_PRIVACY_TERMS_OF_SERVICE_URL', ''
)}
@@ -125,7 +125,7 @@ export const Footer = props => {
{siteConfig(
'STARTER_FOOTER_PRIVACY_TERMS_OF_SERVICE_TEXT', ''
)}
</Link>
</SmartLink>
</div>
</div>
</div>

View File

@@ -4,7 +4,7 @@ import { siteConfig } from '@/lib/config'
import { useGlobal } from '@/lib/global'
import { SignedIn, SignedOut, UserButton } from '@clerk/nextjs'
import throttle from 'lodash.throttle'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
import { useRouter } from 'next/router'
import { useCallback, useEffect, useState } from 'react'
import { DarkModeButton } from './DarkModeButton'
@@ -74,16 +74,16 @@ export const Header = props => {
<>
<SignedOut>
<div className='hidden sm:flex gap-4'>
<Link
<SmartLink
href={siteConfig('STARTER_NAV_BUTTON_1_URL', '')}
className={`loginBtn ${buttonTextColor} p-2 text-base font-medium hover:opacity-70`}>
{siteConfig('STARTER_NAV_BUTTON_1_TEXT')}
</Link>
<Link
</SmartLink>
<SmartLink
href={siteConfig('STARTER_NAV_BUTTON_2_URL', '')}
className={`signUpBtn ${buttonTextColor} p-2 rounded-md bg-white bg-opacity-20 py-2 text-base font-medium duration-300 ease-in-out hover:bg-opacity-100 hover:text-dark`}>
{siteConfig('STARTER_NAV_BUTTON_2_TEXT')}
</Link>
</SmartLink>
</div>
</SignedOut>
<SignedIn>
@@ -94,16 +94,16 @@ export const Header = props => {
)}
{!enableClerk && (
<div className='hidden sm:flex gap-4'>
<Link
<SmartLink
href={siteConfig('STARTER_NAV_BUTTON_1_URL', '')}
className={`loginBtn ${buttonTextColor} p-2 text-base font-medium hover:opacity-70`}>
{siteConfig('STARTER_NAV_BUTTON_1_TEXT')}
</Link>
<Link
</SmartLink>
<SmartLink
href={siteConfig('STARTER_NAV_BUTTON_2_URL', '')}
className={`signUpBtn ${buttonTextColor} p-2 rounded-md bg-white bg-opacity-20 py-2 text-base font-medium duration-300 ease-in-out hover:bg-opacity-100 hover:text-dark`}>
{siteConfig('STARTER_NAV_BUTTON_2_TEXT')}
</Link>
</SmartLink>
</div>
)}
</div>

View File

@@ -2,7 +2,7 @@
import LazyImage from '@/components/LazyImage'
import { siteConfig } from '@/lib/config'
import CONFIG from '../config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 英雄大图区块
@@ -33,16 +33,16 @@ export const Hero = props => {
<ul className='mb-10 flex flex-wrap items-center justify-center gap-5'>
{siteConfig('STARTER_HERO_BUTTON_1_TEXT', null, config) && (
<li>
<Link
<SmartLink
href={siteConfig('STARTER_HERO_BUTTON_1_URL', '')}
className='inline-flex items-center justify-center rounded-md bg-white px-7 py-[14px] text-center text-base font-medium text-dark shadow-1 transition duration-300 ease-in-out hover:bg-gray-2 hover:text-body-color'>
{siteConfig('STARTER_HERO_BUTTON_1_TEXT', null, config)}
</Link>
</SmartLink>
</li>
)}
{siteConfig('STARTER_HERO_BUTTON_2_TEXT', null, config) && (
<li>
<Link
<SmartLink
href={siteConfig(
'STARTER_HERO_BUTTON_2_URL',
null,
@@ -66,7 +66,7 @@ export const Hero = props => {
/>
)}
{siteConfig('STARTER_HERO_BUTTON_2_TEXT', null, config)}
</Link>
</SmartLink>
</li>
)}
</ul>

View File

@@ -1,4 +1,4 @@
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
import { useRouter } from 'next/router'
import { useState } from 'react'
@@ -23,7 +23,7 @@ export const MenuItem = ({ link }) => {
{/* 普通 MenuItem */}
{!hasSubMenu && (
<li className='group relative whitespace-nowrap'>
<Link
<SmartLink
href={link?.href}
target={link?.target}
className={`ud-menu-scroll mx-8 flex py-2 text-base font-medium text-dark group-hover:text-primary dark:text-white lg:mr-0 lg:inline-flex lg:px-0 lg:py-6 ${
@@ -33,7 +33,7 @@ export const MenuItem = ({ link }) => {
} lg:group-hover:opacity-70`}>
{link?.icon && <i className={link.icon + ' mr-2 my-auto'} />}
{link?.name}
</Link>
</SmartLink>
</li>
)}
@@ -71,7 +71,7 @@ export const MenuItem = ({ link }) => {
: 'hidden opacity-0 invisible'
}`}>
{link.subMenus.map((sLink, index) => (
<Link
<SmartLink
key={index}
href={sLink.href}
target={link?.target}
@@ -81,7 +81,7 @@ export const MenuItem = ({ link }) => {
{link?.icon && <i className={sLink.icon + ' mr-2 my-auto'} />}{' '}
{sLink.title}
</span>
</Link>
</SmartLink>
))}
</div>
</li>

View File

@@ -1,5 +1,5 @@
import { siteConfig } from '@/lib/config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 价格板块
@@ -66,11 +66,11 @@ export const Pricing = () => {
})}
</div>
</div>
<Link
<SmartLink
href={siteConfig('STARTER_PRICING_1_BUTTON_URL', '')}
className='inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark'>
{siteConfig('STARTER_PRICING_1_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
@@ -118,11 +118,11 @@ export const Pricing = () => {
})}
</div>
</div>
<Link
<SmartLink
href={siteConfig('STARTER_PRICING_2_BUTTON_URL', '')}
className='inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark'>
{siteConfig('STARTER_PRICING_2_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
@@ -162,11 +162,11 @@ export const Pricing = () => {
})}
</div>
</div>
<Link
<SmartLink
href={siteConfig('STARTER_PRICING_3_BUTTON_URL', '')}
className='inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark'>
{siteConfig('STARTER_PRICING_3_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
</div>