blob: 542d11f863bd4240b1bfeef63b0793b67ba55d2a (
plain)
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
|
---
import CommitteeRole from '$enums/CommitteeRole';
import tRole from '$i18n/translations/enums/committeeRole';
import translate from '$i18n/translate';
import type { CommitteeMember } from '$types/CommitteeMember';
import type Locale from '$types/Locale';
interface Props {
committeeMember: CommitteeMember;
}
const { committeeMember } = Astro.props;
const locale = Astro.params.locale as Locale;
const t = translate(locale);
---
<li class="committee__member">
{
committeeMember.img && (
<img
class="committee__member__img"
srcset={`
${committeeMember.img.width106.src} 106w,
${committeeMember.img.width146.src} 146w,
${committeeMember.img.width192.src} 192w,
${committeeMember.img.width222.src} 222w
`}
sizes="
(min-width: 120rem) 222px,
(min-width: 96rem) 146px,
(min-width: 64rem) 192px,
(min-width: 48rem) 222px,
106px
"
alt=""
/>
)
}
<div class="committee__member__text">
<h4>
{committeeMember.name}
{
committeeMember.roles.length > 0 && (
<span class="committee__member__role">
{committeeMember.roles.map((role) => t(tRole, { key: CommitteeRole[role] })).join(', ')}
</span>
)
}
</h4>
{committeeMember.bio && <p set:html={committeeMember.bio[locale]} />}
</div>
</li>
|