import { useRouter } from 'next/router' import cx from 'classnames' import { Dropdown, Heading, Details, Box, Text, useDetails } from '@primer/components' import { ArrowRightIcon, ChevronDownIcon } from '@primer/octicons-react' import { Link } from 'components/Link' import { useMainContext } from 'components/context/MainContext' import { useVersion } from 'components/hooks/useVersion' import { useTranslation } from 'components/hooks/useTranslation' type Props = { hideLabel?: boolean variant?: 'default' | 'compact' | 'inline' popoverVariant?: 'inline' | 'dropdown' } export const VersionPicker = ({ variant = 'default', popoverVariant, hideLabel }: Props) => { const router = useRouter() const { currentVersion } = useVersion() const { allVersions, page, enterpriseServerVersions } = useMainContext() const { getDetailsProps, setOpen } = useDetails({ closeOnOutsideClick: true }) const { t } = useTranslation('pages') if (page.permalinks && page.permalinks.length <= 1) { return null } return ( <> {!hideLabel && ( {t('article_version')} )}
{(variant === 'compact' || variant === 'inline') && ( {variant === 'inline' ? (
{allVersions[currentVersion].versionTitle}
) : ( <> {allVersions[currentVersion].versionTitle} )}
)} {variant === 'default' && ( {allVersions[currentVersion].versionTitle} )} {popoverVariant === 'inline' ? ( {(page.permalinks || []).map((permalink) => { return ( setOpen(false)}> {permalink.pageVersionTitle} ) })} { setOpen(false) }} href={`/${router.locale}/${enterpriseServerVersions[0]}/admin/all-releases`} className="f6 no-underline color-text-tertiary pl-3 pr-2 no-wrap" > {t('all_enterprise_releases')}{' '} ) : ( {(page.permalinks || []).map((permalink) => { return ( setOpen(false)}> {permalink.pageVersionTitle} ) })} { setOpen(false) }} href={`/${router.locale}/${enterpriseServerVersions[0]}/admin/all-releases`} className="f6 no-underline color-text-tertiary pl-3 pr-2 no-wrap" > {t('all_enterprise_releases')}{' '} )}
) }