{announcement.title}
{formatDateRange(announcement.starts_at, announcement.ends_at)}
{announcement.placement.replaceAll('_', ' ')}
import React from 'react'
import { Head, Link, router, usePage } from '@inertiajs/react'
import AdminLayout from '../../../Layouts/AdminLayout'
import HomepageAnnouncement from '../../../components/homepage/HomepageAnnouncement'
function formatDateRange(startsAt, endsAt) {
const formatter = new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit' })
const start = startsAt ? formatter.format(new Date(startsAt)) : 'Now'
const end = endsAt ? formatter.format(new Date(endsAt)) : 'Open ended'
return `${start} → ${end}`
}
function StatusBadge({ status, active }) {
const tone = status === 'published'
? 'border-emerald-300/20 bg-emerald-300/10 text-emerald-100'
: status === 'archived'
? 'border-amber-300/20 bg-amber-300/10 text-amber-100'
: 'border-slate-300/15 bg-slate-300/10 text-slate-200'
return (
{status}
)
}
export default function HomepageAnnouncementsIndex({ announcements, createUrl }) {
const { props } = usePage()
const flash = props.flash ?? {}
return (
{formatDateRange(announcement.starts_at, announcement.ends_at)}
{announcement.placement.replaceAll('_', ' ')}
Showing {announcements.from}–{announcements.to} of {announcements.total} announcements