webapp/src/pages/[...slug].astro
2022-10-09 13:29:35 +03:00

26 lines
604 B
Plaintext

---
import { Root } from '../components/Root'
import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient'
import { initRouter } from '../stores/router'
const slug = Astro.params.slug?.toString()
if (slug.endsWith('.map')) {
return Astro.redirect('/404')
}
const article = await apiClient.getArticle({ slug })
if (!article) {
return Astro.redirect('/404')
}
const { pathname, search } = Astro.url
initRouter(pathname, search)
Astro.response.headers.set('Cache-Control', 's-maxage=1, stale-while-revalidate')
---
<Zine>
<Root article={article} client:load />
</Zine>