docs(misc): disable prefetch on page load for links (#26837)
This PR changes `<Link>` to use `prefetch={false}` in the following
components:
1. Header
2. Sidebar
3. Docs header
4. Markdown content
This means that prefetch happens on hover of the link rather than page
load, and will reduce the amount of edge requests made from the app.
## Current Behavior
<!-- This is the behavior we have today -->
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Fixes #
This commit is contained in:
parent
653cad2492
commit
c7878533ed
@ -54,6 +54,7 @@ function CategoryBox({ category }: { category: RelatedDocumentsCategory }) {
|
|||||||
<Link
|
<Link
|
||||||
href={d.path}
|
href={d.path}
|
||||||
className="flex flex-grow items-center justify-between no-underline hover:text-sky-600 hover:underline dark:hover:text-sky-400"
|
className="flex flex-grow items-center justify-between no-underline hover:text-sky-600 hover:underline dark:hover:text-sky-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span>{d.name}</span>
|
<span>{d.name}</span>
|
||||||
<ArrowRightIcon className="h-4 w-4 text-slate-500 dark:text-slate-400" />
|
<ArrowRightIcon className="h-4 w-4 text-slate-500 dark:text-slate-400" />
|
||||||
|
|||||||
@ -93,6 +93,7 @@ export function TableOfContents({
|
|||||||
'pl-6': item.level === 3,
|
'pl-6': item.level === 3,
|
||||||
}
|
}
|
||||||
)}
|
)}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.level === 1 ? 'Overview' : item.title}
|
{item.level === 1 ? 'Overview' : item.title}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -129,6 +129,7 @@ export function Content({
|
|||||||
className="relative mx-4 inline-flex rounded-md border border-green-100 bg-green-50 px-4 py-2 text-xs font-medium text-green-600 dark:border-green-900 dark:bg-green-900/30 dark:text-green-400"
|
className="relative mx-4 inline-flex rounded-md border border-green-100 bg-green-50 px-4 py-2 text-xs font-medium text-green-600 dark:border-green-900 dark:bg-green-900/30 dark:text-green-400"
|
||||||
href="/recipes/other/rescope"
|
href="/recipes/other/rescope"
|
||||||
title="Nx 16 package name changes"
|
title="Nx 16 package name changes"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Rescope @nrwl to @nx
|
Rescope @nrwl to @nx
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -20,7 +20,11 @@ function Hit({
|
|||||||
hit: InternalDocSearchHit | StoredDocSearchHit;
|
hit: InternalDocSearchHit | StoredDocSearchHit;
|
||||||
children: ReactNode;
|
children: ReactNode;
|
||||||
}): JSX.Element {
|
}): JSX.Element {
|
||||||
return <Link href={hit.url}>{children}</Link>;
|
return (
|
||||||
|
<Link href={hit.url} prefetch={false}>
|
||||||
|
{children}
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function AlgoliaSearch({
|
export function AlgoliaSearch({
|
||||||
|
|||||||
@ -240,7 +240,11 @@ export default function Changelog(props: ChangeLogProps): JSX.Element {
|
|||||||
</h1>
|
</h1>
|
||||||
<p className="mt-4">
|
<p className="mt-4">
|
||||||
All the Nx goodies in one page, sorted by release. See our{' '}
|
All the Nx goodies in one page, sorted by release. See our{' '}
|
||||||
<Link className="underline" href="/reference/releases">
|
<Link
|
||||||
|
className="underline"
|
||||||
|
href="/reference/releases"
|
||||||
|
prefetch={false}
|
||||||
|
>
|
||||||
release page
|
release page
|
||||||
</Link>{' '}
|
</Link>{' '}
|
||||||
for information about the release cycle and LTS policy.
|
for information about the release cycle and LTS policy.
|
||||||
|
|||||||
@ -114,7 +114,11 @@ export default function Packages({
|
|||||||
<p>
|
<p>
|
||||||
In version 16, we have rescoped our packages to{' '}
|
In version 16, we have rescoped our packages to{' '}
|
||||||
<code>@nx/*</code> from <code>@nrwl/*</code>.{' '}
|
<code>@nx/*</code> from <code>@nrwl/*</code>.{' '}
|
||||||
<Link href="/recipes/other/rescope" className="underline">
|
<Link
|
||||||
|
href="/recipes/other/rescope"
|
||||||
|
className="underline"
|
||||||
|
prefetch={false}
|
||||||
|
>
|
||||||
Read more about the rescope ≫
|
Read more about the rescope ≫
|
||||||
</Link>
|
</Link>
|
||||||
</p>
|
</p>
|
||||||
@ -129,6 +133,7 @@ export default function Packages({
|
|||||||
key={'ref-' + pkg.name}
|
key={'ref-' + pkg.name}
|
||||||
href={pkg.path}
|
href={pkg.path}
|
||||||
className="group relative flex items-center gap-3 rounded-md border border-slate-200 bg-slate-50/40 p-4 text-sm capitalize shadow-sm transition hover:bg-slate-50 dark:border-slate-800/40 dark:bg-slate-800/60 dark:hover:bg-slate-800"
|
className="group relative flex items-center gap-3 rounded-md border border-slate-200 bg-slate-50/40 p-4 text-sm capitalize shadow-sm transition hover:bg-slate-50 dark:border-slate-800/40 dark:bg-slate-800/60 dark:hover:bg-slate-800"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
className="h-5 w-5 object-cover opacity-75 dark:invert"
|
className="h-5 w-5 object-cover opacity-75 dark:invert"
|
||||||
|
|||||||
@ -43,6 +43,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/getting-started/intro"
|
href="/getting-started/intro"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Intro to Nx
|
Intro to Nx
|
||||||
</Link>
|
</Link>
|
||||||
@ -78,6 +79,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/concepts/integrated-vs-package-based"
|
href="/concepts/integrated-vs-package-based"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Types of Repos Guide
|
Types of Repos Guide
|
||||||
</Link>
|
</Link>
|
||||||
@ -109,6 +111,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/ci/features/distribute-task-execution"
|
href="/ci/features/distribute-task-execution"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Nx Agents
|
Nx Agents
|
||||||
</Link>
|
</Link>
|
||||||
@ -120,6 +123,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/ci/intro/ci-with-nx"
|
href="/ci/intro/ci-with-nx"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
CI with Nx
|
CI with Nx
|
||||||
</Link>
|
</Link>
|
||||||
@ -153,6 +157,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/recipes/adopting-nx/adding-to-existing-project"
|
href="/recipes/adopting-nx/adding-to-existing-project"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Add Nx to an Existing Project
|
Add Nx to an Existing Project
|
||||||
</Link>
|
</Link>
|
||||||
@ -187,6 +192,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/concepts/module-federation/micro-frontend-architecture"
|
href="/concepts/module-federation/micro-frontend-architecture"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Micro Frontends with Nx
|
Micro Frontends with Nx
|
||||||
</Link>
|
</Link>
|
||||||
@ -211,18 +217,21 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/getting-started/tutorials/react-standalone-tutorial"
|
href="/getting-started/tutorials/react-standalone-tutorial"
|
||||||
className="m-4 w-20"
|
className="m-4 w-20"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{frameworkIcons.react.image}
|
{frameworkIcons.react.image}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
href="/getting-started/tutorials/angular-standalone-tutorial"
|
href="/getting-started/tutorials/angular-standalone-tutorial"
|
||||||
className="m-4 w-20"
|
className="m-4 w-20"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{frameworkIcons.angular.image}
|
{frameworkIcons.angular.image}
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
href="/getting-started/tutorials/vue-standalone-tutorial"
|
href="/getting-started/tutorials/vue-standalone-tutorial"
|
||||||
className="m-4 w-20"
|
className="m-4 w-20"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{frameworkIcons.vue.image}
|
{frameworkIcons.vue.image}
|
||||||
</Link>
|
</Link>
|
||||||
@ -232,6 +241,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/showcase/example-repos"
|
href="/showcase/example-repos"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Nx with your Favorite Tech
|
Nx with your Favorite Tech
|
||||||
</Link>
|
</Link>
|
||||||
@ -266,6 +276,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/extending-nx/recipes/create-install-package"
|
href="/extending-nx/recipes/create-install-package"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Build Your Own CLI
|
Build Your Own CLI
|
||||||
</Link>
|
</Link>
|
||||||
@ -304,6 +315,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="https://go.nx.dev/nx-agents-ea"
|
href="https://go.nx.dev/nx-agents-ea"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Sign up now for early access.
|
Sign up now for early access.
|
||||||
</Link>
|
</Link>
|
||||||
@ -313,6 +325,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/ci/features/distribute-task-execution"
|
href="/ci/features/distribute-task-execution"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Nx Agents
|
Nx Agents
|
||||||
</Link>
|
</Link>
|
||||||
@ -347,6 +360,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/recipes/tips-n-tricks/standalone-to-integrated"
|
href="/recipes/tips-n-tricks/standalone-to-integrated"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
convert a standalone app repo to a monorepo
|
convert a standalone app repo to a monorepo
|
||||||
</Link>
|
</Link>
|
||||||
@ -378,6 +392,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="https://blog.nrwl.io/evergreen-tooling-more-than-just-codemods-fc68f32ce605"
|
href="https://blog.nrwl.io/evergreen-tooling-more-than-just-codemods-fc68f32ce605"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Evergreen Tooling
|
Evergreen Tooling
|
||||||
</Link>
|
</Link>
|
||||||
@ -388,6 +403,7 @@ const tips: NewYearTip[] = [
|
|||||||
<Link
|
<Link
|
||||||
href="/features/automate-updating-dependencies"
|
href="/features/automate-updating-dependencies"
|
||||||
className="text-slate-900 underline dark:text-slate-100"
|
className="text-slate-900 underline dark:text-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Automate Updating Dependencies
|
Automate Updating Dependencies
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -46,6 +46,7 @@ export function BlogDetails({ post }: BlogDetailsProps) {
|
|||||||
<Link
|
<Link
|
||||||
href="/blog"
|
href="/blog"
|
||||||
className="flex w-20 shrink-0 items-center gap-2 text-slate-400 hover:text-slate-800 dark:text-slate-600 dark:hover:text-slate-200"
|
className="flex w-20 shrink-0 items-center gap-2 text-slate-400 hover:text-slate-800 dark:text-slate-600 dark:hover:text-slate-200"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<ChevronLeftIcon className="h-3 w-3" />
|
<ChevronLeftIcon className="h-3 w-3" />
|
||||||
Blog
|
Blog
|
||||||
|
|||||||
@ -28,6 +28,7 @@ export function BlogEntry({ post }: BlogEntryProps) {
|
|||||||
href={`/blog/${post.slug}`}
|
href={`/blog/${post.slug}`}
|
||||||
title={post.title}
|
title={post.title}
|
||||||
className="text-balance text-lg font-semibold text-slate-900 dark:text-white"
|
className="text-balance text-lg font-semibold text-slate-900 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="absolute inset-0" aria-hidden="true" />
|
<span className="absolute inset-0" aria-hidden="true" />
|
||||||
{post.title}
|
{post.title}
|
||||||
|
|||||||
@ -30,6 +30,7 @@ export function MoreBlogs({ blogs }: MoreBlogsProps) {
|
|||||||
href={`/blog/${post.slug}`}
|
href={`/blog/${post.slug}`}
|
||||||
key={post.slug}
|
key={post.slug}
|
||||||
className="relative flex items-center gap-6 border-b border-slate-200 py-5 text-sm before:absolute before:inset-x-[-16px] before:inset-y-[-2px] before:z-[-1] before:rounded-xl before:bg-slate-200 before:opacity-0 last:border-0 before:hover:opacity-100 dark:border-slate-800 dark:before:bg-slate-800/50"
|
className="relative flex items-center gap-6 border-b border-slate-200 py-5 text-sm before:absolute before:inset-x-[-16px] before:inset-y-[-2px] before:z-[-1] before:rounded-xl before:bg-slate-200 before:opacity-0 last:border-0 before:hover:opacity-100 dark:border-slate-800 dark:before:bg-slate-800/50"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="w-1/2 flex-none text-balance font-medium text-slate-500 sm:w-5/12 dark:text-white">
|
<span className="w-1/2 flex-none text-balance font-medium text-slate-500 sm:w-5/12 dark:text-white">
|
||||||
{post.title}
|
{post.title}
|
||||||
|
|||||||
@ -110,6 +110,7 @@ export const ButtonLink = forwardRef(function (
|
|||||||
href={href}
|
href={href}
|
||||||
title={title}
|
title={title}
|
||||||
className={getLayoutClassName(className)}
|
className={getLayoutClassName(className)}
|
||||||
|
prefetch={false}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<ButtonInner variant={variant} size={size}>
|
<ButtonInner variant={variant} size={size}>
|
||||||
|
|||||||
@ -165,6 +165,7 @@ export function Footer(): JSX.Element {
|
|||||||
href={item.href}
|
href={item.href}
|
||||||
title={item.label}
|
title={item.label}
|
||||||
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="sr-only">{item.name}</span>
|
<span className="sr-only">{item.name}</span>
|
||||||
<item.icon className="h-6 w-6" aria-hidden="true" />
|
<item.icon className="h-6 w-6" aria-hidden="true" />
|
||||||
@ -187,6 +188,7 @@ export function Footer(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href={item.href}
|
href={item.href}
|
||||||
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
@ -204,6 +206,7 @@ export function Footer(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href={item.href}
|
href={item.href}
|
||||||
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
@ -223,6 +226,7 @@ export function Footer(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href={item.href}
|
href={item.href}
|
||||||
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
@ -240,6 +244,7 @@ export function Footer(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href={item.href}
|
href={item.href}
|
||||||
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
className="text-sm text-slate-500 hover:text-slate-600 dark:hover:text-slate-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -36,6 +36,7 @@ export function DefaultMenuItem({
|
|||||||
title={item.name}
|
title={item.name}
|
||||||
target={hasExternalLink ? '_blank' : '_self'}
|
target={hasExternalLink ? '_blank' : '_self'}
|
||||||
className="text-sm font-medium text-slate-900 dark:text-slate-200"
|
className="text-sm font-medium text-slate-900 dark:text-slate-200"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
{item.isNew ? (
|
{item.isNew ? (
|
||||||
|
|||||||
@ -43,6 +43,7 @@ function Menu({ tabs }: { tabs: any[] }): JSX.Element {
|
|||||||
'whitespace-nowrap border-b-2 py-2 text-sm font-medium'
|
'whitespace-nowrap border-b-2 py-2 text-sm font-medium'
|
||||||
)}
|
)}
|
||||||
aria-current={tab.current ? 'page' : undefined}
|
aria-current={tab.current ? 'page' : undefined}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{tab.name}
|
{tab.name}
|
||||||
</Link>
|
</Link>
|
||||||
@ -203,6 +204,7 @@ export function DocumentationHeader({
|
|||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="flex flex-grow items-center px-4 text-slate-900 lg:px-0 dark:text-white"
|
className="flex flex-grow items-center px-4 text-slate-900 lg:px-0 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="sr-only">Nx</span>
|
<span className="sr-only">Nx</span>
|
||||||
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
||||||
@ -210,6 +212,7 @@ export function DocumentationHeader({
|
|||||||
<Link
|
<Link
|
||||||
href="/getting-started/intro"
|
href="/getting-started/intro"
|
||||||
className="ml-2 hidden items-center px-4 text-slate-900 lg:flex lg:px-0 dark:text-white"
|
className="ml-2 hidden items-center px-4 text-slate-900 lg:flex lg:px-0 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="text-xl font-bold uppercase tracking-wide">
|
<span className="text-xl font-bold uppercase tracking-wide">
|
||||||
Docs
|
Docs
|
||||||
@ -320,6 +323,7 @@ export function DocumentationHeader({
|
|||||||
href="/getting-started/intro"
|
href="/getting-started/intro"
|
||||||
title="Documentation"
|
title="Documentation"
|
||||||
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Docs
|
Docs
|
||||||
</Link>
|
</Link>
|
||||||
@ -327,6 +331,7 @@ export function DocumentationHeader({
|
|||||||
href="/blog"
|
href="/blog"
|
||||||
title="Blog"
|
title="Blog"
|
||||||
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Blog
|
Blog
|
||||||
</Link>
|
</Link>
|
||||||
@ -391,6 +396,7 @@ export function DocumentationHeader({
|
|||||||
className="hidden cursor-pointer px-3 py-2 text-sm font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
className="hidden cursor-pointer px-3 py-2 text-sm font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
title="Contact Us"
|
title="Contact Us"
|
||||||
href="/contact"
|
href="/contact"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Contact
|
Contact
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -54,6 +54,7 @@ export function Header(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="mr-4 flex items-center text-slate-900 dark:text-white"
|
className="mr-4 flex items-center text-slate-900 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="sr-only">Nx</span>
|
<span className="sr-only">Nx</span>
|
||||||
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
||||||
@ -156,6 +157,7 @@ export function Header(): JSX.Element {
|
|||||||
href="/getting-started/intro"
|
href="/getting-started/intro"
|
||||||
title="Documentation"
|
title="Documentation"
|
||||||
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Docs
|
Docs
|
||||||
</Link>
|
</Link>
|
||||||
@ -163,6 +165,7 @@ export function Header(): JSX.Element {
|
|||||||
href="/blog"
|
href="/blog"
|
||||||
title="Blog"
|
title="Blog"
|
||||||
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Blog
|
Blog
|
||||||
</Link>
|
</Link>
|
||||||
@ -227,6 +230,7 @@ export function Header(): JSX.Element {
|
|||||||
className="hidden cursor-pointer px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
className="hidden cursor-pointer px-3 py-2 font-medium leading-tight hover:text-blue-500 md:inline-flex dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
title="Contact Us"
|
title="Contact Us"
|
||||||
href="/contact"
|
href="/contact"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Contact
|
Contact
|
||||||
</Link>
|
</Link>
|
||||||
@ -260,6 +264,7 @@ export function Header(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="flex items-center text-slate-900 dark:text-white"
|
className="flex items-center text-slate-900 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="sr-only">Nx</span>
|
<span className="sr-only">Nx</span>
|
||||||
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
||||||
@ -315,6 +320,7 @@ export function Header(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="flex items-center text-slate-900 dark:text-white"
|
className="flex items-center text-slate-900 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
role="img"
|
role="img"
|
||||||
@ -435,6 +441,7 @@ export function Header(): JSX.Element {
|
|||||||
href="/getting-started/intro"
|
href="/getting-started/intro"
|
||||||
title="Documentation"
|
title="Documentation"
|
||||||
className="block py-4 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500"
|
className="block py-4 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Docs
|
Docs
|
||||||
</Link>
|
</Link>
|
||||||
@ -442,6 +449,7 @@ export function Header(): JSX.Element {
|
|||||||
href="/blog"
|
href="/blog"
|
||||||
title="Blog"
|
title="Blog"
|
||||||
className="block py-4 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500"
|
className="block py-4 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Blog
|
Blog
|
||||||
</Link>
|
</Link>
|
||||||
@ -501,6 +509,7 @@ export function Header(): JSX.Element {
|
|||||||
href="/contact"
|
href="/contact"
|
||||||
title="Contact"
|
title="Contact"
|
||||||
className="block py-4 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500"
|
className="block py-4 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Contact
|
Contact
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -34,6 +34,7 @@ export function MobileMenuItem({
|
|||||||
title={item.name}
|
title={item.name}
|
||||||
target={hasExternalLink ? '_blank' : '_self'}
|
target={hasExternalLink ? '_blank' : '_self'}
|
||||||
className="text-sm font-medium text-slate-900 dark:text-slate-200"
|
className="text-sm font-medium text-slate-900 dark:text-slate-200"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
{item.isNew ? (
|
{item.isNew ? (
|
||||||
|
|||||||
@ -47,6 +47,7 @@ export function PluginCard({
|
|||||||
target={isOfficial ? undefined : '_blank'}
|
target={isOfficial ? undefined : '_blank'}
|
||||||
rel={isOfficial ? undefined : 'noreferrer'}
|
rel={isOfficial ? undefined : 'noreferrer'}
|
||||||
className="flex grow flex-col focus:outline-none"
|
className="flex grow flex-col focus:outline-none"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="absolute inset-0" aria-hidden="true" />
|
<span className="absolute inset-0" aria-hidden="true" />
|
||||||
<p className="mb-2 line-clamp-3 grow text-sm">{description}</p>
|
<p className="mb-2 line-clamp-3 grow text-sm">{description}</p>
|
||||||
|
|||||||
@ -103,7 +103,11 @@ function SidebarSectionItems({ item }: { item: MenuItem }): JSX.Element {
|
|||||||
onClick={handleCollapseToggle}
|
onClick={handleCollapseToggle}
|
||||||
>
|
>
|
||||||
{item.disableCollapsible ? (
|
{item.disableCollapsible ? (
|
||||||
<Link href={item.path as string} className="hover:underline">
|
<Link
|
||||||
|
href={item.path as string}
|
||||||
|
className="hover:underline"
|
||||||
|
prefetch={false}
|
||||||
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
@ -134,6 +138,7 @@ function SidebarSectionItems({ item }: { item: MenuItem }): JSX.Element {
|
|||||||
className={cx(
|
className={cx(
|
||||||
'relative block py-1 text-slate-500 transition-colors duration-200 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-300'
|
'relative block py-1 text-slate-500 transition-colors duration-200 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-300'
|
||||||
)}
|
)}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
className={cx('relative', {
|
className={cx('relative', {
|
||||||
@ -286,6 +291,7 @@ export function SidebarMobile({
|
|||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="flex flex-grow items-center px-4 text-slate-900 lg:px-0 dark:text-white"
|
className="flex flex-grow items-center px-4 text-slate-900 lg:px-0 dark:text-white"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="sr-only">Nx</span>
|
<span className="sr-only">Nx</span>
|
||||||
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
||||||
@ -307,6 +313,7 @@ export function SidebarMobile({
|
|||||||
'whitespace-nowrap p-4 text-center text-sm font-medium'
|
'whitespace-nowrap p-4 text-center text-sm font-medium'
|
||||||
)}
|
)}
|
||||||
aria-current={section.current ? 'page' : undefined}
|
aria-current={section.current ? 'page' : undefined}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{section.name}
|
{section.name}
|
||||||
</Link>
|
</Link>
|
||||||
@ -324,6 +331,7 @@ export function SidebarMobile({
|
|||||||
'whitespace-nowrap p-4 text-center text-sm font-medium'
|
'whitespace-nowrap p-4 text-center text-sm font-medium'
|
||||||
)}
|
)}
|
||||||
aria-current={section.current ? 'page' : undefined}
|
aria-current={section.current ? 'page' : undefined}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{section.name}
|
{section.name}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -19,7 +19,11 @@ export function ConnectWithUs(): JSX.Element {
|
|||||||
</p>
|
</p>
|
||||||
<p className="py-4">
|
<p className="py-4">
|
||||||
Looking for community plugins? Find them listed in the{' '}
|
Looking for community plugins? Find them listed in the{' '}
|
||||||
<Link href="/plugin-registry" className="font-semibold underline">
|
<Link
|
||||||
|
href="/plugin-registry"
|
||||||
|
className="font-semibold underline"
|
||||||
|
prefetch={false}
|
||||||
|
>
|
||||||
plugin registry
|
plugin registry
|
||||||
</Link>
|
</Link>
|
||||||
.
|
.
|
||||||
|
|||||||
@ -145,6 +145,7 @@ export function ContactLinks(): JSX.Element {
|
|||||||
href="/getting-started/intro"
|
href="/getting-started/intro"
|
||||||
title="Nx documentation"
|
title="Nx documentation"
|
||||||
className="mt-2 flex items-center gap-2 text-sm text-slate-500 transition hover:text-slate-800 dark:hover:text-slate-400"
|
className="mt-2 flex items-center gap-2 text-sm text-slate-500 transition hover:text-slate-800 dark:hover:text-slate-400"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span>Nx docs</span>
|
<span>Nx docs</span>
|
||||||
<ChevronRightIcon aria-hidden="true" className="h-3 w-3" />
|
<ChevronRightIcon aria-hidden="true" className="h-3 w-3" />
|
||||||
|
|||||||
@ -60,6 +60,7 @@ export const BentoGridItem = ({
|
|||||||
href={url}
|
href={url}
|
||||||
title="Learn more"
|
title="Learn more"
|
||||||
className="float-right text-sm font-medium transition duration-200 group-hover/bento:text-blue-500 group-hover/bento:dark:text-sky-500"
|
className="float-right text-sm font-medium transition duration-200 group-hover/bento:text-blue-500 group-hover/bento:dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="group absolute inset-0" />
|
<span className="group absolute inset-0" />
|
||||||
|
|
||||||
|
|||||||
@ -62,6 +62,7 @@ export function CallToAction(): JSX.Element {
|
|||||||
href="/contact/engineering"
|
href="/contact/engineering"
|
||||||
title="Talk to the engineering team"
|
title="Talk to the engineering team"
|
||||||
className="rounded-md bg-slate-950 px-3.5 py-2.5 text-sm font-semibold text-slate-100 shadow-sm hover:bg-slate-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white dark:bg-white dark:text-slate-900 dark:hover:bg-slate-100"
|
className="rounded-md bg-slate-950 px-3.5 py-2.5 text-sm font-semibold text-slate-100 shadow-sm hover:bg-slate-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white dark:bg-white dark:text-slate-900 dark:hover:bg-slate-100"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Talk to engineering
|
Talk to engineering
|
||||||
</Link>
|
</Link>
|
||||||
@ -71,6 +72,7 @@ export function CallToAction(): JSX.Element {
|
|||||||
href="/contact/sales"
|
href="/contact/sales"
|
||||||
title="Talk to the sales team"
|
title="Talk to the sales team"
|
||||||
className="font-semibold underline"
|
className="font-semibold underline"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Speak directly to sales
|
Speak directly to sales
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -33,6 +33,7 @@ export function Hero(): JSX.Element {
|
|||||||
href="/contact/sales"
|
href="/contact/sales"
|
||||||
title="Talk to the sales team"
|
title="Talk to the sales team"
|
||||||
className="font-semibold underline"
|
className="font-semibold underline"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Speak directly to sales
|
Speak directly to sales
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -37,6 +37,7 @@ export function ExtensibleAndIntegrated(): JSX.Element {
|
|||||||
href="/getting-started/editor-setup"
|
href="/getting-started/editor-setup"
|
||||||
title="Install VSCode's native extension for Nx"
|
title="Install VSCode's native extension for Nx"
|
||||||
className="font-medium text-blue-500 dark:text-sky-500"
|
className="font-medium text-blue-500 dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
VSCode
|
VSCode
|
||||||
</Link>{' '}
|
</Link>{' '}
|
||||||
@ -45,6 +46,7 @@ export function ExtensibleAndIntegrated(): JSX.Element {
|
|||||||
href="/getting-started/editor-setup"
|
href="/getting-started/editor-setup"
|
||||||
className="font-medium text-blue-500 dark:text-sky-500"
|
className="font-medium text-blue-500 dark:text-sky-500"
|
||||||
title="Install JetBrains' native plugin for Nx"
|
title="Install JetBrains' native plugin for Nx"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
JetBrains
|
JetBrains
|
||||||
</Link>{' '}
|
</Link>{' '}
|
||||||
@ -52,6 +54,7 @@ export function ExtensibleAndIntegrated(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href="/getting-started/editor-setup#neovim"
|
href="/getting-started/editor-setup#neovim"
|
||||||
className="font-medium text-blue-500 dark:text-sky-500"
|
className="font-medium text-blue-500 dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Neovim
|
Neovim
|
||||||
</Link>
|
</Link>
|
||||||
@ -70,6 +73,7 @@ export function ExtensibleAndIntegrated(): JSX.Element {
|
|||||||
href="https://nx.app/?utm_source=nx.dev"
|
href="https://nx.app/?utm_source=nx.dev"
|
||||||
title="Nx Cloud: Distributed Task execution & Caching"
|
title="Nx Cloud: Distributed Task execution & Caching"
|
||||||
className="font-medium text-blue-500 dark:text-sky-500"
|
className="font-medium text-blue-500 dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -92,7 +92,7 @@ export function IdeIntegrationTab(): JSX.Element {
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-3 sm:ml-3 sm:mt-0">
|
<div className="mt-3 sm:ml-3 sm:mt-0">
|
||||||
<h3 className="text-sm font-medium">{feature.name}</h3>
|
<h3 className="text-sm font-medium">{feature.name}</h3>
|
||||||
<Link href={feature.link}>
|
<Link href={feature.link} prefetch={false}>
|
||||||
<span className="absolute inset-0" aria-hidden="true" />
|
<span className="absolute inset-0" aria-hidden="true" />
|
||||||
<p className="mt-2 text-sm text-slate-500">
|
<p className="mt-2 text-sm text-slate-500">
|
||||||
{feature.description}
|
{feature.description}
|
||||||
|
|||||||
@ -33,6 +33,7 @@ export function Hero(): JSX.Element {
|
|||||||
href="/ci/features/distribute-task-execution"
|
href="/ci/features/distribute-task-execution"
|
||||||
title="Discover Nx Agents"
|
title="Discover Nx Agents"
|
||||||
className="font-semibold text-blue-500 dark:text-sky-500"
|
className="font-semibold text-blue-500 dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="absolute inset-0" aria-hidden="true"></span>Read
|
<span className="absolute inset-0" aria-hidden="true"></span>Read
|
||||||
more <span aria-hidden="true">→</span>
|
more <span aria-hidden="true">→</span>
|
||||||
|
|||||||
@ -116,6 +116,7 @@ export function MigrationsAndCodeGeneration(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href="https://nx.dev/features/automate-updating-dependencies"
|
href="https://nx.dev/features/automate-updating-dependencies"
|
||||||
className="ml-2 underline"
|
className="ml-2 underline"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
https://nx.dev/features/automate-updating-dependencies
|
https://nx.dev/features/automate-updating-dependencies
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -30,6 +30,7 @@ export function MonorepoStyles(): JSX.Element {
|
|||||||
href="/recipes/adopting-nx/adding-to-monorepo"
|
href="/recipes/adopting-nx/adding-to-monorepo"
|
||||||
title="Install VSCode's native extension for Nx"
|
title="Install VSCode's native extension for Nx"
|
||||||
className="font-medium text-blue-500 dark:text-sky-500"
|
className="font-medium text-blue-500 dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Add Nx on top!
|
Add Nx on top!
|
||||||
</Link>{' '}
|
</Link>{' '}
|
||||||
@ -41,6 +42,7 @@ export function MonorepoStyles(): JSX.Element {
|
|||||||
href="/extending-nx"
|
href="/extending-nx"
|
||||||
title="Install VSCode's native extension for Nx"
|
title="Install VSCode's native extension for Nx"
|
||||||
className="font-medium text-blue-500 dark:text-sky-500"
|
className="font-medium text-blue-500 dark:text-sky-500"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
powerful plugins
|
powerful plugins
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -149,6 +149,7 @@ export function NxWithCi(): JSX.Element {
|
|||||||
<Link
|
<Link
|
||||||
href="/ci/features/remote-cache"
|
href="/ci/features/remote-cache"
|
||||||
title="Discover Nx Replay"
|
title="Discover Nx Replay"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="absolute inset-0"></span>Nx Replay
|
<span className="absolute inset-0"></span>Nx Replay
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -6,6 +6,7 @@ export function CustomLink(props: any) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
|
prefetch={false}
|
||||||
{...props}
|
{...props}
|
||||||
passHref
|
passHref
|
||||||
target={target}
|
target={target}
|
||||||
|
|||||||
@ -83,6 +83,7 @@ export function Cards({
|
|||||||
<Link
|
<Link
|
||||||
className="group flex items-center whitespace-nowrap border-transparent px-4 py-0 text-sm font-semibold no-underline transition-all duration-200 ease-in-out hover:text-slate-900 dark:hover:text-sky-400"
|
className="group flex items-center whitespace-nowrap border-transparent px-4 py-0 text-sm font-semibold no-underline transition-all duration-200 ease-in-out hover:text-slate-900 dark:hover:text-sky-400"
|
||||||
href={moreLink}
|
href={moreLink}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
Browse more
|
Browse more
|
||||||
<span
|
<span
|
||||||
@ -117,6 +118,7 @@ export function LinkCard({
|
|||||||
href={url}
|
href={url}
|
||||||
className="no-prose relative col-span-1 flex flex-col items-center rounded-md border border-slate-200 bg-slate-50/40 p-4 text-center font-semibold shadow-sm transition focus-within:ring-2 focus-within:ring-blue-500 focus-within:ring-offset-2 hover:bg-slate-100 dark:border-slate-800/40 dark:bg-slate-800/60 dark:hover:bg-slate-800"
|
className="no-prose relative col-span-1 flex flex-col items-center rounded-md border border-slate-200 bg-slate-50/40 p-4 text-center font-semibold shadow-sm transition focus-within:ring-2 focus-within:ring-blue-500 focus-within:ring-offset-2 hover:bg-slate-100 dark:border-slate-800/40 dark:bg-slate-800/60 dark:hover:bg-slate-800"
|
||||||
style={{ textDecorationLine: 'none' }}
|
style={{ textDecorationLine: 'none' }}
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{icon && (
|
{icon && (
|
||||||
<div
|
<div
|
||||||
@ -177,6 +179,7 @@ export function Card({
|
|||||||
href={url}
|
href={url}
|
||||||
title={title}
|
title={title}
|
||||||
className="group flex flex-col items-stretch rounded-md border border-slate-200 bg-slate-50/40 text-sm no-underline shadow-sm transition focus-within:ring-2 focus-within:ring-blue-500 focus-within:ring-offset-2 hover:bg-slate-50 dark:border-slate-800/40 dark:bg-slate-800/60 dark:hover:bg-slate-800"
|
className="group flex flex-col items-stretch rounded-md border border-slate-200 bg-slate-50/40 text-sm no-underline shadow-sm transition focus-within:ring-2 focus-within:ring-blue-500 focus-within:ring-offset-2 hover:bg-slate-50 dark:border-slate-800/40 dark:bg-slate-800/60 dark:hover:bg-slate-800"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
{!!hasYoutubeId && (
|
{!!hasYoutubeId && (
|
||||||
<div className="max-h-24">
|
<div className="max-h-24">
|
||||||
|
|||||||
@ -207,6 +207,7 @@ export function Persona({
|
|||||||
title={title}
|
title={title}
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
className="absolute inset-0"
|
className="absolute inset-0"
|
||||||
|
prefetch={false}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@ -14,6 +14,7 @@ export function Pill({
|
|||||||
<Link
|
<Link
|
||||||
href={url}
|
href={url}
|
||||||
className="flex items-center font-semibold no-underline group-hover:underline"
|
className="flex items-center font-semibold no-underline group-hover:underline"
|
||||||
|
prefetch={false}
|
||||||
>
|
>
|
||||||
<span className="absolute inset-0" aria-hidden="true"></span>
|
<span className="absolute inset-0" aria-hidden="true"></span>
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user