MCPcopy
hub / github.com/github/docs / VersionPicker

Function VersionPicker

components/page-header/VersionPicker.tsx:16–108  ·  view source on GitHub ↗
({ mediumOrLower }: Props)

Source from the content-addressed store, hash-verified

14}
15
16export const VersionPicker = ({ mediumOrLower }: Props) => {
17 const router = useRouter()
18 const { currentVersion } = useVersion()
19 const { allVersions, page, enterpriseServerVersions } = useMainContext()
20 const { t } = useTranslation(['pages', 'picker'])
21 const isSearchResultsPage = router.route === '/search' || router.route === '/[versionId]/search'
22
23 if (page.permalinks && page.permalinks.length < 1) {
24 return null
25 }
26
27 const allLinks = (page.permalinks || []).map((permalink) => ({
28 text: allVersions[permalink.pageVersion].versionTitle,
29 selected: currentVersion === permalink.pageVersion,
30 href:
31 isSearchResultsPage && typeof router.query.query === 'string'
32 ? permalink.href + `?${new URLSearchParams({ query: router.query.query })}`
33 : permalink.href,
34 extra: {
35 arrow: false,
36 info: false,
37 },
38 divider: false,
39 }))
40
41 const hasEnterpriseVersions = (page.permalinks || []).some((permalink) =>
42 permalink.pageVersion.startsWith('enterprise-server')
43 )
44
45 allLinks.push({
46 text: '',
47 selected: false,
48 href: ``,
49 extra: {
50 arrow: false,
51 info: false,
52 },
53 divider: true,
54 })
55
56 if (hasEnterpriseVersions) {
57 allLinks.push({
58 text: t('all_enterprise_releases'),
59 selected: false,
60 href: `/${router.locale}/${enterpriseServerVersions[0]}/admin/all-releases`,
61 extra: {
62 arrow: true,
63 info: false,
64 },
65 divider: false,
66 })
67 }
68
69 if (allLinks) {
70 const currentVersionPathSegment = currentVersion === DEFAULT_VERSION ? '' : `/${currentVersion}`
71
72 allLinks.push({
73 text: t('about_versions'),

Callers

nothing calls this directly

Calls 3

useVersionFunction · 0.90
useMainContextFunction · 0.90
useTranslationFunction · 0.90

Tested by

no test coverage detected