import { useParams } from 'react-router-dom' import { PageContainer } from '../components/layout/PageContainer' import { ProfileByline } from '../components/profile/ProfileByline' import { IssueComments } from '../components/repo/IssueComments' import { ErrorPage } from '../components/shared/ErrorPage' import { RepoRecordView } from '../components/repo/RepoRecordView' import { RepoPageSkeleton } from '../components/shared/PageSkeletons' import { useRepoRecordPage } from '../hooks/useRepoRecordPage' import { useDocumentTitle } from '../hooks/useDocumentTitle' import { loadIssuePage } from '../lib/issuePage' import { parseHandle } from '../lib/routes' import { getRepoName, getRepoRkey } from '../lib/tangled/repo' export function IssuePage() { const { repoOwner: routeRepoOwner, repo: repoKey, issueOwner: routeIssueOwner, issue: issueKey, } = useParams() const repoOwnerHandle = parseHandle(routeRepoOwner) const issueOwnerHandle = parseHandle(routeIssueOwner) const { pageData, error } = useRepoRecordPage({ loadPage: loadIssuePage, recordKey: issueKey, recordOwnerHandle: issueOwnerHandle, repoKey, repoOwnerHandle, }) useDocumentTitle( pageData ? `${pageData.record.value.title} ยท ${getRepoName(pageData.repo)}` : undefined, ) if ( repoOwnerHandle === null || issueOwnerHandle === null || repoKey === undefined || issueKey === undefined ) { return } if (error) { return ( ) } if (pageData === null) { return } const { record: issue, recordAuthor, repo, repositoryOwner } = pageData const repositoryUrl = `/${repositoryOwner.miniDoc.handle}/${getRepoRkey(repo)}` const repoUrl = `${repositoryUrl}?view=issues` return (
) }