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 (
)
}