1
0
mirror of synced 2025-12-22 03:16:52 -05:00
Files
docs/components/page-header/RestBanner.tsx
Grace Park 2c8713037d Move deploy keys from deployments to keys in rest pages (#26166)
* move deploy keys from deployments to keys in rest pages

* move minitocs above intro

* Update content/rest/reference/keys.md

Co-authored-by: Sarah Edwards <skedwards88@github.com>

* add to banner, add redirects from deployments

* remove deploy keys from deployments intro

* update data/reusables name

* update - to _

* update script and add redirects for subcategories turned categories

Co-authored-by: Sarah Edwards <skedwards88@github.com>
2022-03-17 17:25:12 +00:00

80 lines
2.2 KiB
TypeScript

import React from 'react'
import { Flash } from '@primer/react'
import { useRouter } from 'next/router'
import { Link } from 'components/Link'
const restRepoDisplayPages = [
'branches',
'collaborators',
'commits',
'deploy_keys',
'deployments',
'pages',
'releases',
'repos',
'metrics',
'webhooks',
]
const restEnterpriseDisplayPages = ['enterprise-admin']
const restRepoCategoryExceptionsTitles = {
branches: 'Branches',
collaborators: 'Collaborators',
commits: 'Commits',
deploy_keys: 'Deploy Keys',
deployments: 'Deployments',
pages: 'GitHub Pages',
releases: 'Releases',
metrics: 'Metrics',
webhooks: 'Webhooks',
}
export const RestBanner = () => {
const router = useRouter()
const restPage = router.query.category as string
if (!restRepoDisplayPages.includes(restPage) && !restEnterpriseDisplayPages.includes(restPage)) {
return null
}
let noticeString
if (restRepoDisplayPages.includes(restPage)) {
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>,
])
noticeString = (
<React.Fragment>
If you can't find what you're looking for, you might try the new {newRestPagesText} REST API
pages.
</React.Fragment>
)
} else if (restEnterpriseDisplayPages.includes(restPage)) {
noticeString = (
<React.Fragment>
If you can't find what you're looking for, you might try the{' '}
<Link href={`/${router.locale}/rest/reference/actions`}>Actions</Link> REST API page.
</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. {noticeString}</span>
</b>{' '}
</p>
</Flash>
</div>
)
}