import { Link, useNavigate, useParams } from "react-router-dom"; import { mediaUrl } from "../api"; import { ArticleAttachments } from "../components/ArticleUploads"; import ArticleAdminActions from "../components/ArticleAdminActions"; import useJournalResource from "../useJournalResource"; import Icon from "../components/Icon"; import { RichTextArticle } from "../components/RichTextEditor"; import { ErrorState, LoadingState } from "../components/Status"; function formatDate(date) { return new Intl.DateTimeFormat("en-US", { month: "long", day: "numeric", year: "numeric", }).format(new Date(`${date}T12:00:00`)); } export default function BlogPostPage() { const { slug } = useParams(); const navigate = useNavigate(); const { data: post, loading, error, reload } = useJournalResource(slug); if (loading && !post) { return
; } if (error && !post) { return
; } if (!post) { return
; } return (
{error &&
}
{post.banner && }
Back to journal navigate("/blog")} />
{post.tags.map((tag) => {tag})}

{post.title}

{post.excerpt}

{formatDate(post.published_at)} {post.read_time} min read
{Array.isArray(post.content) ? post.content.map((section) => (

{section.heading}

{section.paragraphs.map((paragraph) =>

{paragraph}

)}
)) : }

Thanks for reading.

Continue the conversation
); }