-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathlist-sessions.astro
More file actions
80 lines (76 loc) · 2.07 KB
/
list-sessions.astro
File metadata and controls
80 lines (76 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
---
const { sessions } = Astro.props;
import Prose from "../prose/prose.astro";
import { Tag } from "../tag/tag";
import SessionSpeakers from "../session-speakers.astro";
type Session = {
data: {
title: string;
speakers: Array<{
id: string;
collection: "speakers";
}>;
session_type: string;
track: string;
level: string;
};
id: string;
};
---
<ol class="sessions">
{
sessions.map((session: Session) => (
<li
class="mb-12"
data-track={session.data.track}
data-type={session.data.session_type}
data-level={session.data.level}
>
<Prose>
<h4>
<a href={`/session/${session.id}`} class="underline">
{session.data.title}
</a>
</h4>
<p>
<span class="sr-only">Speakers:</span>
{/* @ts-ignore */}
<SessionSpeakers speakers={session.data.speakers} />
</p>
</Prose>
<ul class="space-y-2 md:space-y-0 md:space-x-2 md:flex capitalize">
{session.data.session_type && (
<li class="md:inline-block">
<Tag
href={`/sessions?type=${encodeURIComponent(session.data.session_type)}`}
>
<span class="sr-only">Type:</span>
{session.data.session_type}
</Tag>
</li>
)}
{session.data.track && (
<li class="md:inline-block">
<Tag
href={`/sessions?track=${encodeURIComponent(session.data.track)}`}
>
<span class="sr-only">Track:</span>
{session.data.track}
</Tag>
</li>
)}
{session.data.level && (
<li class="md:inline-block">
<Tag
href={`/sessions?level=${encodeURIComponent(session.data.level)}`}
>
<span class="sr-only">Level:</span>
{session.data.level}
</Tag>
</li>
)}
</ul>
</li>
))
}
</ol>