]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/shared/images/global-icon.component.ts
Fix privacy warning position on mobile
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / images / global-icon.component.ts
CommitLineData
28e0e40d 1import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core'
457bb213
C
2
3const icons = {
4 'add': require('../../../assets/images/global/add.html'),
a55052c9
C
5 'user': require('../../../assets/images/global/user.html'),
6 'sign-out': require('../../../assets/images/global/sign-out.html'),
457bb213
C
7 'syndication': require('../../../assets/images/global/syndication.html'),
8 'help': require('../../../assets/images/global/help.html'),
9 'sparkle': require('../../../assets/images/global/sparkle.html'),
10 'alert': require('../../../assets/images/global/alert.html'),
11 'cloud-error': require('../../../assets/images/global/cloud-error.html'),
12 'user-add': require('../../../assets/images/global/user-add.html'),
13 'no': require('../../../assets/images/global/no.html'),
14 'cloud-download': require('../../../assets/images/global/cloud-download.html'),
15 'undo': require('../../../assets/images/global/undo.html'),
a55052c9 16 'history': require('../../../assets/images/global/history.html'),
457bb213
C
17 'circle-tick': require('../../../assets/images/global/circle-tick.html'),
18 'cog': require('../../../assets/images/global/cog.html'),
19 'download': require('../../../assets/images/global/download.html'),
a55052c9 20 'go': require('../../../assets/images/menu/go.html'),
457bb213
C
21 'edit': require('../../../assets/images/global/edit.html'),
22 'im-with-her': require('../../../assets/images/global/im-with-her.html'),
23 'delete': require('../../../assets/images/global/delete.html'),
a55052c9 24 'server': require('../../../assets/images/global/server.html'),
457bb213
C
25 'cross': require('../../../assets/images/global/cross.html'),
26 'validate': require('../../../assets/images/global/validate.html'),
2c0070c8 27 'tick': require('../../../assets/images/global/tick.html'),
457bb213
C
28 'dislike': require('../../../assets/images/video/dislike.html'),
29 'heart': require('../../../assets/images/video/heart.html'),
30 'like': require('../../../assets/images/video/like.html'),
c5a1ae50
C
31 'more-horizontal': require('../../../assets/images/global/more-horizontal.html'),
32 'more-vertical': require('../../../assets/images/global/more-vertical.html'),
457bb213 33 'share': require('../../../assets/images/video/share.html'),
f0a39880 34 'upload': require('../../../assets/images/video/upload.html'),
e2f01c47 35 'playlist-add': require('../../../assets/images/video/playlist-add.html'),
a55052c9
C
36 'play': require('../../../assets/images/global/play.html'),
37 'playlists': require('../../../assets/images/global/playlists.html'),
38 'about': require('../../../assets/images/menu/about.html'),
39 'globe': require('../../../assets/images/menu/globe.html'),
40 'home': require('../../../assets/images/menu/home.html'),
41 'recently-added': require('../../../assets/images/menu/recently-added.html'),
42 'trending': require('../../../assets/images/menu/trending.html'),
43 'videos': require('../../../assets/images/global/videos.html'),
44 'folder': require('../../../assets/images/global/folder.html'),
45 'administration': require('../../../assets/images/menu/administration.html'),
8ce1ba6e 46 'subscriptions': require('../../../assets/images/menu/subscriptions.html'),
2c22613c
C
47 'users': require('../../../assets/images/global/users.html'),
48 'refresh': require('../../../assets/images/global/refresh.html')
457bb213
C
49}
50
51export type GlobalIconName = keyof typeof icons
52
53@Component({
54 selector: 'my-global-icon',
55 template: '',
28e0e40d
C
56 styleUrls: [ './global-icon.component.scss' ],
57 changeDetection: ChangeDetectionStrategy.OnPush
457bb213
C
58})
59export class GlobalIconComponent implements OnInit {
60 @Input() iconName: GlobalIconName
61
62 constructor (private el: ElementRef) {}
63
64 ngOnInit () {
65 const nativeElement = this.el.nativeElement
66
67 nativeElement.innerHTML = icons[this.iconName]
68 }
69}