mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
* fix: codeblock background * fix: horizontal scroll on properties * fix: badge text wrapping * fix: wrap overload tab list
42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import { AlertTriangle } from 'lucide-react';
|
|
import type { PropsWithChildren } from 'react';
|
|
|
|
export function Badge({ children, className = '' }: PropsWithChildren<{ readonly className?: string }>) {
|
|
return (
|
|
<span
|
|
className={`inline-flex place-items-center gap-1 rounded-full px-2 py-1 font-sans text-sm leading-none font-normal whitespace-nowrap ${className}`}
|
|
>
|
|
{children}
|
|
</span>
|
|
);
|
|
}
|
|
|
|
export async function Badges({ node }: { readonly node: any }) {
|
|
const isDeprecated = Boolean(node.summary?.deprecatedBlock?.length);
|
|
const isProtected = node.isProtected;
|
|
const isStatic = node.isStatic;
|
|
const isAbstract = node.isAbstract;
|
|
const isReadonly = node.isReadonly;
|
|
const isOptional = node.isOptional;
|
|
const isExternal = node.isExternal;
|
|
|
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
const isAny = isDeprecated || isProtected || isStatic || isAbstract || isReadonly || isOptional || isExternal;
|
|
|
|
return isAny ? (
|
|
<div className="mb-1 flex flex-wrap gap-3">
|
|
{isDeprecated ? (
|
|
<Badge className="bg-red-500/20 text-red-500">
|
|
<AlertTriangle aria-hidden size={14} /> deprecated
|
|
</Badge>
|
|
) : null}
|
|
{isProtected ? <Badge className="bg-purple-500/20 text-purple-500">protected</Badge> : null}
|
|
{isStatic ? <Badge className="bg-purple-500/20 text-purple-500">static</Badge> : null}
|
|
{isAbstract ? <Badge className="bg-cyan-500/20 text-cyan-500">abstract</Badge> : null}
|
|
{isReadonly ? <Badge className="bg-purple-500/20 text-purple-500">readonly</Badge> : null}
|
|
{isOptional ? <Badge className="bg-cyan-500/20 text-cyan-500">optional</Badge> : null}
|
|
{isExternal ? <Badge className="bg-purple-500/20 text-purple-500">external</Badge> : null}
|
|
</div>
|
|
) : null;
|
|
}
|