diff --git a/packages/website/src/pages/docs/packages/index.tsx b/packages/website/src/pages/docs/packages/index.tsx index 1412800b0..928af3e36 100644 --- a/packages/website/src/pages/docs/packages/index.tsx +++ b/packages/website/src/pages/docs/packages/index.tsx @@ -8,8 +8,11 @@ import { Stack, Title, useMantineColorScheme, + Button, } from '@mantine/core'; import Link from 'next/link'; +import { useRouter } from 'next/router'; +import type { MouseEvent } from 'react'; import { VscArrowRight, VscPackage } from 'react-icons/vsc'; import { PACKAGES } from '~/util/packages'; @@ -35,6 +38,17 @@ const useStyles = createStyles((theme) => ({ export default function PackagesRoute() { const { classes } = useStyles(); const { colorScheme } = useMantineColorScheme(); + const router = useRouter(); + + const handleClick = async (ev: MouseEvent, packageName: string) => { + ev.stopPropagation(); + + const res = await fetch(`https://docs.discordjs.dev/api/info?package=${packageName ?? 'builders'}`); + const data: string[] = await res.json(); + + const latestVersion = data.at(-2); + void router.push(`/docs/packages/${packageName}/${latestVersion}`); + }; return ( @@ -43,9 +57,15 @@ export default function PackagesRoute() { Select a package: {PACKAGES.map((pkg) => ( - - - + ) => void handleClick(ev, pkg)} + > + + @@ -54,10 +74,20 @@ export default function PackagesRoute() { {pkg} - + + + - - + + + ))}