This repository has been archived by the owner on May 20, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathpage-speaker-list.tsx
87 lines (76 loc) · 2.6 KB
/
page-speaker-list.tsx
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
81
82
83
84
85
86
87
import { Component, h } from '@stencil/core';
import { Plugins } from '@capacitor/core';
import { ConferenceData } from '../../providers/conference-data';
const { Browser } = Plugins;
@Component({
tag: 'page-speaker-list',
styleUrl: 'page-speaker-list.css'
})
export class PageSpeakerList {
mode!: string;
speakers: any[] = [];
async componentWillLoad() {
this.speakers = await ConferenceData.getSpeakers();
}
goToSpeakerTwitter(speaker: any) {
Browser.open({
url: `https://twitter.com/${speaker.twitter}`
});
}
render() {
return [
<ion-header translucent={true}>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title>Speakers</ion-title>
</ion-toolbar>
</ion-header>,
<ion-content fullscreen={true}>
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">Speakers</ion-title>
</ion-toolbar>
</ion-header>
<ion-grid fixed>
<ion-row>
{this.speakers.map(speaker => (
<ion-col size="12" size-md="6">
<ion-card class="speaker-card">
<ion-card-header>
<ion-item detail={false} lines="none" class="speaker-item" href={`/speakers/${speaker.id}`}>
<ion-avatar slot="start">
<img src={speaker.profilePic} alt={speaker.name + ' profile pic'}/>
</ion-avatar>
<ion-label>
<h2>{speaker.name}</h2>
<p>{speaker.title}</p>
</ion-label>
</ion-item>
</ion-card-header>
<ion-card-content>
<ion-list lines="none">
{speaker.sessions.map(session => (
<ion-item detail={false} href={`/speakers/session/${session.id}`}>
<ion-label>
<h3>{session.name}</h3>
</ion-label>
</ion-item>
))}
<ion-item detail={false} href={`/speakers/${speaker.id}`}>
<ion-label>
<h3>About {speaker.name}</h3>
</ion-label>
</ion-item>
</ion-list>
</ion-card-content>
</ion-card>
</ion-col>
))}
</ion-row>
</ion-grid>
</ion-content>
];
}
}