feat(privat/CV): sync to latest upstream (cv-upstream/main, 30f9608b)
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import React from 'react'
|
||||
import { useParams, Link } from 'react-router-dom'
|
||||
import { useContentItem } from '../hooks/useContent'
|
||||
import { formatDate } from '../utils/formatDate'
|
||||
|
||||
export default function KniepunktIssue() {
|
||||
const { slug } = useParams()
|
||||
const issue = useContentItem('kniepunkt', slug)
|
||||
|
||||
if (!issue) {
|
||||
return (
|
||||
<main style={{ paddingTop: '120px', minHeight: '100vh' }}>
|
||||
<div className="app-container" style={{ textAlign: 'center' }}>
|
||||
<h1>Ausgabe nicht gefunden</h1>
|
||||
<p style={{ color: 'var(--text-secondary)' }}>Diese Kniepunkt-Ausgabe existiert nicht.</p>
|
||||
<Link to="/kniepunkt" className="secondary-button">Zurück zur Übersicht</Link>
|
||||
</div>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<main style={{ paddingTop: '120px', minHeight: '100vh' }}>
|
||||
<div className="app-container" style={{ maxWidth: '700px' }}>
|
||||
<Link to="/kniepunkt" style={{ color: 'var(--text-secondary)', fontSize: '0.9rem', marginBottom: '24px', display: 'inline-block' }}>← Alle Ausgaben</Link>
|
||||
<h1 style={{ marginBottom: '12px' }}>{issue.title}</h1>
|
||||
<p style={{ color: 'var(--text-secondary)', marginBottom: '40px' }}>{formatDate(issue.date)}</p>
|
||||
<div className="content-body" dangerouslySetInnerHTML={{ __html: issue.body }} />
|
||||
</div>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user