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 */
import LazyImage from '@/components/LazyImage'
import { siteConfig } from '@/lib/config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 博文列表
@@ -69,7 +69,7 @@ export const Blog = ({ posts }) => {
className='wow fadeInUp group mb-10 relative overflow-hidden blog'
data-wow-delay='.1s'>
<div className='relative rounded-xl border overflow-hidden shadow-md dark:border-gray-700 dark:bg-gray-800'>
<Link href={item?.href} className='block'>
<SmartLink href={item?.href} className='block'>
{item.pageCoverThumbnail && (
// 图片半透明
<LazyImage
@@ -92,7 +92,7 @@ export const Blog = ({ posts }) => {
className='absolute max-h-full object-cover'
/>
</div>
</Link>
</SmartLink>
</div>
{/* 内容部分 */}
<div className='relative z-10 p-4'>
@@ -100,11 +100,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>
</div>
</div>

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
@@ -36,11 +36,11 @@ export const CTA = () => {
</p>
{siteConfig('PROXIO_CTA_BUTTON') && (
<>
<Link
<SmartLink
href={siteConfig('PROXIO_CTA_BUTTON_URL', '')}
className='inline-flex items-center justify-center rounded-2xl 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'>
{siteConfig('PROXIO_CTA_BUTTON_TEXT')}
</Link>
</SmartLink>
</>
)}
</div>

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'
/**
* 首页的生涯模块

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'
import LazyImage from '@/components/LazyImage'
/**
* 产品特性相关,将显示在首页中
@@ -88,12 +88,12 @@ export const Features = () => {
</div>
<div className='mt-8 w-full flex justify-center items-center'>
<Link
<SmartLink
href={siteConfig('PROXIO_FEATURE_BUTTON_URL', '')}
className='px-4 py-2 rounded-3xl border dark:border-gray-200 border-[#333333] text-base font-medium text-dark hover:bg-gray-100 dark:text-white dark:hover:bg-white dark:hover:text-black duration-200'>
{siteConfig('PROXIO_FEATURE_BUTTON_TEXT')}
<i className="pl-4 fa-solid fa-arrow-right"></i>
</Link>
</SmartLink>
</div>
</div>
</section>

View File

@@ -7,7 +7,7 @@ import LazyImage from '@/components/LazyImage'
import PoweredBy from '@/components/PoweredBy'
import { siteConfig } from '@/lib/config'
import { useGlobal } from '@/lib/global'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
import CONFIG from '../config'
import SocialButton from './SocialButton'
@@ -55,9 +55,9 @@ export const Footer = ({ title }) => {
{group?.menus?.map((menu, index) => {
return (
<div key={index}>
<Link href={menu.href} className='hover:underline dark:text-gray-200'>
<SmartLink href={menu.href} className='hover:underline dark:text-gray-200'>
{menu.title}
</Link>
</SmartLink>
</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'

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'
/**
* 英雄大图区块
@@ -52,11 +52,11 @@ export const Hero = props => {
<ul className='mb-10 flex flex-wrap items-center justify-center gap-5'>
{siteConfig('PROXIO_HERO_BUTTON_1_TEXT', null, config) && (
<li>
<Link
<SmartLink
href={siteConfig('PROXIO_HERO_BUTTON_1_URL', '')}
className='inline-flex items-center justify-center rounded-2xl 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'>
{siteConfig('PROXIO_HERO_BUTTON_1_TEXT', null, config)}
</Link>
</SmartLink>
</li>
)}

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-sm 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('PROXIO_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('PROXIO_PRICING_1_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
@@ -118,11 +118,11 @@ export const Pricing = () => {
})}
</div>
</div>
<Link
<SmartLink
href={siteConfig('PROXIO_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('PROXIO_PRICING_2_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
@@ -162,11 +162,11 @@ export const Pricing = () => {
})}
</div>
</div>
<Link
<SmartLink
href={siteConfig('PROXIO_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('PROXIO_PRICING_3_BUTTON_TEXT')}
</Link>
</SmartLink>
</div>
</div>
</div>

View File

@@ -1,7 +1,7 @@
/* eslint-disable @next/next/no-img-element */
import { siteConfig } from '@/lib/config'
import LazyImage from '@/components/LazyImage'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
/**
* 作者团队
* @returns
@@ -46,12 +46,12 @@ export const Team = () => {
</div>
<div className='mt-8 w-full flex justify-end py-2'>
<Link
<SmartLink
href={siteConfig('PROXIO_ABOUT_BUTTON_URL', '')}
className='px-4 py-2 rounded-3xl border dark:border-gray-200 border-[#333333] text-base font-medium text-dark hover:bg-gray-100 dark:text-white dark:hover:bg-white dark:hover:text-black duration-200'>
{siteConfig('PROXIO_ABOUT_BUTTON_TEXT')}
<i className="pl-4 fa-solid fa-arrow-right"></i>
</Link>
</SmartLink>
</div>
</div>
</div>

View File

@@ -1,7 +1,7 @@
/* eslint-disable react/no-unescaped-entities */
/* eslint-disable @next/next/no-img-element */
import { siteConfig } from '@/lib/config'
import Link from 'next/link'
import SmartLink from '@/components/SmartLink'
import { useEffect, useRef } from 'react'
/**
@@ -60,12 +60,12 @@ export const Testimonials = () => {
</p>
<div className='mt-8 w-full flex justify-start items-center'>
<Link
<SmartLink
href={siteConfig('PROXIO_TESTIMONIALS_BUTTON_URL', '')}
className='px-4 py-2 rounded-3xl border dark:border-gray-200 border-[#333333] text-base font-medium text-dark hover:bg-gray-100 dark:text-white dark:hover:bg-white dark:hover:text-black duration-200'>
{siteConfig('PROXIO_TESTIMONIALS_BUTTON_TEXT')}
<i className="pl-4 fa-solid fa-arrow-right"></i>
</Link>
</SmartLink>
</div>
</div>