1
0
mirror of synced 2025-12-22 03:16:52 -05:00
Files
docs/components/page-header/RestRepoBanner.tsx
Rachael Sewell a340162d84 reorganize repository apis (#23728)
Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>
Co-authored-by: Peter Bengtsson <peterbe@github.com>
2022-01-11 11:53:12 +10:00

62 lines
1.7 KiB
TypeScript

import React from 'react'
import { Flash } from '@primer/components'
import { useRouter } from 'next/router'
import { Link } from 'components/Link'
const restDisplayPages = [
'/rest/reference/branches',
'/rest/reference/collaborators',
'/rest/reference/commits',
'/rest/reference/deployments',
'/rest/reference/pages',
'/rest/reference/releases',
'/rest/reference/repos',
'/rest/reference/metrics',
'/rest/reference/webhooks',
]
const restRepoCategoryExceptionsTitles = {
branches: 'Branches',
collaborators: 'Collaborators',
commits: 'Commits',
deployments: 'Deployments',
pages: 'GitHub Pages',
releases: 'Releases',
metrics: 'Metrics',
webhooks: 'Webhooks',
}
export const RestRepoBanner = () => {
const router = useRouter()
const asPathRoot = router.asPath.split('?')[0].split('#')[0]
if (!restDisplayPages.includes(asPathRoot)) {
return null
}
const pages = Object.keys(restRepoCategoryExceptionsTitles) as Array<
keyof typeof restRepoCategoryExceptionsTitles
>
const newRestPagesText = pages.map((page, i) => [
<React.Fragment key={page}>
<Link href={`/${router.locale}/rest/reference/${page}`}>
{restRepoCategoryExceptionsTitles[page]}
</Link>
{i < pages.length - 1 && ', '}
</React.Fragment>,
])
return (
<div data-testid="rest-api-repos-banner" className="container-xl mt-3 mx-auto p-responsive">
<Flash variant="warning">
<p>
<b className="text-bold">
<span>
We've recently moved some of the REST API documentation. If you can't find what you're
looking for, you might try the new {newRestPagesText} REST API pages.
</span>
</b>{' '}
</p>
</Flash>
</div>
)
}