oliverdavies.uk/src/components/talk/Events.astro

50 lines
948 B
Plaintext
Raw Normal View History

---
import Markdown from "../Markdown.astro";
interface Event {
2023-01-08 19:25:23 +00:00
date: string;
location: string;
name: string;
online?: boolean;
time: string;
url?: string;
}
interface Props {
2023-01-08 19:25:23 +00:00
events: Event[];
}
2023-01-08 19:25:23 +00:00
const { events } = Astro.props;
---
2023-01-08 19:25:23 +00:00
{
events && (
<Markdown>
2023-01-08 19:25:23 +00:00
<h2>Events</h2>
2023-01-08 19:25:23 +00:00
<div>
<ul>
2023-01-08 19:25:23 +00:00
{events.map((event) => (
<li>
{event.url ? (
<a class="inline-block" href={event.url}>
2023-01-08 19:25:23 +00:00
{event.name}
</a>
) : (
event.name
2023-04-25 00:09:10 +00:00
)}
{event.location && `in ${event.location} -`}
2023-01-08 19:25:23 +00:00
{new Date(event.date).toLocaleDateString("en-GB", {
day: "numeric",
month: "long",
year: "numeric",
})}
{event.online && "(online)"}
</li>
))}
</ul>
</div>
</Markdown>
2023-01-08 19:25:23 +00:00
)
}