Repository: expo/expo
File: docs/ui/components/Footer/Footer.tsx (TypeScript)

Code before:
  title,
  sourceCodeUrl,
  packageName,
  previousPage,
  nextPage,
  modificationDate,
}: Props) => {
  const router = useRouter();
  const isAPIPage = router?.pathname.includes('/sdk/') ?? false;
  const isTutorial = router?.pathname.includes('/tutorial/') ?? false;
  const isExpoPackage = packageName ? packageName.startsWith('expo-') : isAPIPage;

  const shouldShowModifiedDate = !isExpoPackage && !isTutorial && title;

  return (
    <footer
      className={mergeClasses(
        'flex flex-col gap-10 px-14 pb-10',
        title ? 'pt-10' : 'pt-6',
        'max-lg-gutters:px-4 max-lg-gutters:pb-12'
      )}>
      {title && (previousPage || nextPage) && (
        <div
          className={mergeClasses(
            'flex gap-4',
            'max-xl-gutters:flex-col-reverse',
            'max-lg-gutters:flex-row',
            'max-md-gutters:flex-col-reverse'
          )}
          data-nosnippet>
          {previousPage ? (
            <LinkBase
              href={previousPage.href}
              className={mergeClasses(
                'flex w-full items-center gap-3 rounded-md border border-solid border-default px-4 py-3 transition',
                'hocus:bg-subtle hocus:shadow-xs'
              )}>
              <ArrowLeftIcon className="shrink-0 text-icon-secondary" />
              <div>
                <FOOTNOTE theme="secondary">
                  Previous{previousPage.section ? ` (${previousPage.section})` : ''}
                </FOOTNOTE>
                <P weight="medium">{previousPage.sidebarTitle ?? previousPage.name}</P>
              </div>
            </LinkBase>
          ) : (
            <div className="w-full" />
          )}
          {nextPage ? (
            <LinkBase
              href={nextPage.href}

Review comment (suggestion):
The `llms-full.txt` here links to `http://localhost:3002/llms-eas.txt` (correct) - should is also have a label of `llms-eas.txt` in this case?
<img width="704" height="380" alt="Image" src="https://github.com/user-attachments/assets/ff370dd8-5bfd-4cc3-ae6c-5923cdf2fc88" />

Code after:
const LLMS_SDK_VERSIONS = ['v53.0.0', 'v52.0.0'];
const LLMS_SDK_LATEST_VERSION = LLMS_SDK_VERSIONS[0];

export const Footer = ({
  title,
  sourceCodeUrl,
  packageName,
  previousPage,
  nextPage,
  modificationDate,
}: Props) => {
  const { hasVersion, version } = usePageApiVersion();
  const router = useRouter();
  const isAPIPage = router?.pathname.includes('/sdk/') ?? false;
  const isTutorial = router?.pathname.includes('/tutorial/') ?? false;
  const isExpoPackage = packageName ? packageName.startsWith('expo-') : isAPIPage;
  const llmsSdkVersion = version === 'latest' ? LLMS_SDK_LATEST_VERSION : version;
  const shouldUseLlmsSdkFile = hasVersion && LLMS_SDK_VERSIONS.includes(llmsSdkVersion);
  const isEasPage = router?.pathname ? isEasPath(router.pathname) : false;
  const llmsFullFilename = isEasPage
    ? 'llms-eas.txt'
    : shouldUseLlmsSdkFile
      ? `llms-sdk-${llmsSdkVersion}.txt`
      : 'llms-full.txt';
  const llmsFullHref = `/${llmsFullFilename}`;
  const llmsFullLabel = 'llms-full.txt';

  const shouldShowModifiedDate = !isExpoPackage && !isTutorial && title;

  return (
    <footer
      className={mergeClasses(
        'flex flex-col gap-10 px-14 pb-10',
        title ? 'pt-10' : 'pt-6',
        'max-lg-gutters:px-4 max-lg-gutters:pb-12'
      )}>
      {title && (previousPage || nextPage) && (
        <div
          className={mergeClasses(
            'flex gap-4',
            'max-xl-gutters:flex-col-reverse',
            'max-lg-gutters:flex-row',
            'max-md-gutters:flex-col-reverse'
          )}
          data-nosnippet>
          {previousPage ? (
            <LinkBase
              href={previousPage.href}
              className={mergeClasses(
                'flex w-full items-center gap-3 rounded-md border border-solid border-default px-4 py-3 transition',
                'hocus:bg-subtle hocus:shadow-xs'