diff --git a/app/src/pages/SeriesPage.jsx b/app/src/pages/SeriesPage.jsx new file mode 100644 index 0000000..4a63c2f --- /dev/null +++ b/app/src/pages/SeriesPage.jsx @@ -0,0 +1,51 @@ +import { useState, useEffect } from 'react'; +import { useNav, EmptyState, pillBtn } from '../../teknav-ui.jsx'; +import { ArticleRow } from '../../teknav-articles.jsx'; +import { contentApi } from '../../src/lib/content-api.js'; + +export function SeriesPage({ slug }) { + const { navigate } = useNav(); + const [series, setSeries] = useState(null); + const [error, setError] = useState(false); + + useEffect(() => { + let cancelled = false; + setError(false); + contentApi.getSeries(slug) + .then((item) => { if (!cancelled) setSeries(item); }) + .catch(() => { if (!cancelled) setError(true); }); + return () => { cancelled = true; }; + }, [slug]); + + if (error) { + return ( +
{series.description}
} + {(series.articles ?? []).length === 0 ?