import { useEffect, useState } from 'react'; import { apiGet } from '../api.js'; import { Markdown } from '../markdown.jsx'; const dateFmt = new Intl.DateTimeFormat('de-DE', { day: '2-digit', month: 'long', year: 'numeric', }); export default function Changelog() { const [data, setData] = useState(null); const [page, setPage] = useState(1); const [error, setError] = useState(false); useEffect(() => { setError(false); apiGet(`/api/releases?page=${page}`).then(setData).catch(() => setError(true)); window.scrollTo(0, 0); }, [page]); const pages = data ? Math.ceil(data.total / data.pageSize) : 0; return ( <>
CHANGELOG
{error &&

Changelog konnte nicht geladen werden.

} {!error && !data &&

Lade …

} {data?.total === 0 &&

Noch keine Releases veröffentlicht.

} {data?.total > 0 && data.items.map((r) => (
{r.tag} {r.prerelease ? Pre-Release : null} {r.repo.split('/').pop()} {dateFmt.format(new Date(r.published_at))}
{r.name && r.name !== r.tag &&

{r.name}

}
{r.url && (
Release in Gitea ansehen →
)}
))} {pages > 1 && (
{String(page).padStart(2, '0')} / {String(pages).padStart(2, '0')}
)}
); }