fix: anchor link for events

This commit is contained in:
iCrawl
2024-03-04 00:00:06 +01:00
parent 9fa115df86
commit 0efd1bea46
14 changed files with 83 additions and 57 deletions

View File

@@ -1,6 +1,7 @@
import { VscSymbolMethod } from '@react-icons/all-files/vsc/VscSymbolMethod';
import { Code2, LinkIcon } from 'lucide-react';
import Link from 'next/link';
import { ENV } from '~/util/env';
import { ParameterNode } from './ParameterNode';
import { SummaryNode } from './SummaryNode';
@@ -13,7 +14,10 @@ export async function ConstructorNode({ node, version }: { readonly node: any; r
</h2>
<div className="flex place-content-between place-items-center">
<h3 id="constructor" className="group scroll-mt-8 break-words font-mono font-semibold">
<h3
id="constructor"
className={`${ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-16' : 'scroll-mt-8'} group break-words font-mono font-semibold`}
>
{/* constructor({parsedContent.constructor.parametersString}) */}
<Link href="#constructor" className="float-left -ml-6 hidden pb-2 pr-2 group-hover:block">
<LinkIcon aria-hidden size={16} />

View File

@@ -2,6 +2,7 @@ import { VscSymbolEnumMember } from '@react-icons/all-files/vsc/VscSymbolEnumMem
import { Code2, LinkIcon } from 'lucide-react';
import Link from 'next/link';
import { Fragment } from 'react';
import { ENV } from '~/util/env';
import { Badges } from './Badges';
import { DeprecatedNode } from './DeprecatedNode';
import { ExampleNode } from './ExampleNode';
@@ -34,7 +35,10 @@ export async function EnumMemberNode({
<Fragment key={`${enumMember.displayName}-${idx}`}>
<div className="flex flex-col gap-4">
<div className="flex place-content-between place-items-center">
<h3 id={enumMember.displayName} className="group scroll-mt-8 break-words font-mono font-semibold">
<h3
id={enumMember.displayName}
className={`${ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-16' : 'scroll-mt-8'} group break-words font-mono font-semibold`}
>
<Badges node={enumMember} />
<span>
<Link

View File

@@ -1,5 +1,7 @@
import { VscSymbolEvent } from '@react-icons/all-files/vsc/VscSymbolEvent';
import { ChevronDown, ChevronUp, Code2 } from 'lucide-react';
import { ChevronDown, ChevronUp, Code2, LinkIcon } from 'lucide-react';
import Link from 'next/link';
import { ENV } from '~/util/env';
import { Badges } from './Badges';
import { DeprecatedNode } from './DeprecatedNode';
import { ExampleNode } from './ExampleNode';
@@ -29,17 +31,22 @@ async function EventBodyNode({
<div className="flex place-content-between place-items-center">
<h3
id={event.displayName}
className={`${overload ? 'scroll-mt-16' : 'scroll-mt-8'} break-words font-mono font-semibold`}
className={`${overload ? (ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-24' : 'scroll-mt-16') : ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-16' : 'scroll-mt-8'} group break-words font-mono font-semibold`}
>
<Badges node={event} /> {event.displayName}
{event.typeParameters?.length ? (
<>
{'<'}
<TypeParameterNode node={event.typeParameters} version={version} />
{'>'}
</>
) : null}
({event.parameters?.length ? <ParameterNode node={event.parameters} version={version} /> : null})
<span>
<Link href={`#${event.displayName}`} className="float-left -ml-6 hidden pb-2 pr-2 group-hover:block">
<LinkIcon aria-hidden size={16} />
</Link>
{event.typeParameters?.length ? (
<>
{'<'}
<TypeParameterNode node={event.typeParameters} version={version} />
{'>'}
</>
) : null}
({event.parameters?.length ? <ParameterNode node={event.parameters} version={version} /> : null})
</span>
</h3>
<a

View File

@@ -1,6 +1,7 @@
import { VscSymbolMethod } from '@react-icons/all-files/vsc/VscSymbolMethod';
import { ChevronDown, ChevronUp, Code2, LinkIcon } from 'lucide-react';
import Link from 'next/link';
import { ENV } from '~/util/env';
import { Badges } from './Badges';
import { DeprecatedNode } from './DeprecatedNode';
import { ExampleNode } from './ExampleNode';
@@ -31,7 +32,7 @@ async function MethodBodyNode({
<div className="flex place-content-between place-items-center">
<h3
id={method.displayName}
className={`${overload ? 'scroll-mt-16' : 'scroll-mt-8'} group break-words font-mono font-semibold`}
className={`${overload ? (ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-24' : 'scroll-mt-16') : ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-16' : 'scroll-mt-8'} group break-words font-mono font-semibold`}
>
<Badges node={method} /> {method.displayName}
<span>

View File

@@ -2,6 +2,7 @@ import { VscSymbolProperty } from '@react-icons/all-files/vsc/VscSymbolProperty'
import { ChevronDown, ChevronUp, Code2, LinkIcon } from 'lucide-react';
import Link from 'next/link';
import { Fragment } from 'react';
import { ENV } from '~/util/env';
import { Badges } from './Badges';
import { DeprecatedNode } from './DeprecatedNode';
import { ExcerptNode } from './ExcerptNode';
@@ -39,7 +40,7 @@ export async function PropertyNode({
<div className="flex place-content-between place-items-center">
<h3
id={property.displayName}
className="group flex scroll-mt-8 flex-col gap-2 break-words font-mono font-semibold"
className={`${ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-16' : 'scroll-mt-8'} group flex flex-col gap-2 break-words font-mono font-semibold`}
>
<Badges node={property} />
<span>

View File

@@ -1,6 +1,7 @@
import { LinkIcon } from 'lucide-react';
import Link from 'next/link';
import { Fragment } from 'react';
import { ENV } from '~/util/env';
import { Badges } from './Badges';
import { DocNode } from './DocNode';
import { ExcerptNode } from './ExcerptNode';
@@ -20,7 +21,10 @@ export async function TypeParameterNode({
return (
<Fragment key={`${typeParameter.name}-${idx}`}>
<div className={description ? '' : 'inline after:content-[",_"] last-of-type:after:content-none'}>
<h3 id={typeParameter.name} className="group inline scroll-mt-8 break-words font-mono font-semibold">
<h3
id={typeParameter.name}
className={`${ENV.IS_LOCAL_DEV || ENV.IS_PREVIEW ? 'scroll-mt-16' : 'scroll-mt-8'} group inline break-words font-mono font-semibold`}
>
{description ? <Badges node={typeParameter} /> : null}
<span>
{description ? (