aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/assets/player/dock/peertube-dock-component.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2022-03-08 16:26:30 +0100
committerChocobozzz <me@florianbigard.com>2022-03-08 16:36:08 +0100
commit01dd04cd5ab7b55d2a9af7d0ebf405bee9579b09 (patch)
treeb7096d36dbf9607ae1977685e3088a340902a3f8 /client/src/assets/player/dock/peertube-dock-component.ts
parent383386d8e25b5734f8b7ea7277c1a1a118cc488a (diff)
downloadPeerTube-01dd04cd5ab7b55d2a9af7d0ebf405bee9579b09.tar.gz
PeerTube-01dd04cd5ab7b55d2a9af7d0ebf405bee9579b09.tar.zst
PeerTube-01dd04cd5ab7b55d2a9af7d0ebf405bee9579b09.zip
Display avatar in embed poster
Diffstat (limited to 'client/src/assets/player/dock/peertube-dock-component.ts')
-rw-r--r--client/src/assets/player/dock/peertube-dock-component.ts65
1 files changed, 65 insertions, 0 deletions
diff --git a/client/src/assets/player/dock/peertube-dock-component.ts b/client/src/assets/player/dock/peertube-dock-component.ts
new file mode 100644
index 000000000..183c7a00f
--- /dev/null
+++ b/client/src/assets/player/dock/peertube-dock-component.ts
@@ -0,0 +1,65 @@
1import videojs from 'video.js'
2
3const Component = videojs.getComponent('Component')
4
5export type PeerTubeDockComponentOptions = {
6 title?: string
7 description?: string
8 avatarUrl?: string
9}
10
11class PeerTubeDockComponent extends Component {
12
13 createEl () {
14 const options = this.options_ as PeerTubeDockComponentOptions
15
16 const el = super.createEl('div', {
17 className: 'peertube-dock'
18 })
19
20 if (options.avatarUrl) {
21 const avatar = videojs.dom.createEl('img', {
22 className: 'peertube-dock-avatar',
23 src: options.avatarUrl
24 })
25
26 el.appendChild(avatar)
27 }
28
29 const elWrapperTitleDescription = super.createEl('div', {
30 className: 'peertube-dock-title-description'
31 })
32
33 if (options.title) {
34 const title = videojs.dom.createEl('div', {
35 className: 'peertube-dock-title',
36 title: options.title,
37 innerHTML: options.title
38 })
39
40 elWrapperTitleDescription.appendChild(title)
41 }
42
43 if (options.description) {
44 const description = videojs.dom.createEl('div', {
45 className: 'peertube-dock-description',
46 title: options.description,
47 innerHTML: options.description
48 })
49
50 elWrapperTitleDescription.appendChild(description)
51 }
52
53 if (options.title || options.description) {
54 el.appendChild(elWrapperTitleDescription)
55 }
56
57 return el
58 }
59}
60
61videojs.registerComponent('PeerTubeDockComponent', PeerTubeDockComponent)
62
63export {
64 PeerTubeDockComponent
65}