]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/shared/images/global-icon.component.ts
Add ability to search available plugins
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / images / global-icon.component.ts
1 import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core'
2
3 const icons = {
4 'add': require('../../../assets/images/global/add.html'),
5 'user': require('../../../assets/images/global/user.html'),
6 'sign-out': require('../../../assets/images/global/sign-out.html'),
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'),
16 'history': require('../../../assets/images/global/history.html'),
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'),
20 'go': require('../../../assets/images/menu/go.html'),
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'),
24 'server': require('../../../assets/images/global/server.html'),
25 'cross': require('../../../assets/images/global/cross.html'),
26 'validate': require('../../../assets/images/global/validate.html'),
27 'tick': require('../../../assets/images/global/tick.html'),
28 'dislike': require('../../../assets/images/video/dislike.html'),
29 'heart': require('../../../assets/images/video/heart.html'),
30 'like': require('../../../assets/images/video/like.html'),
31 'more-horizontal': require('../../../assets/images/global/more-horizontal.html'),
32 'more-vertical': require('../../../assets/images/global/more-vertical.html'),
33 'share': require('../../../assets/images/video/share.html'),
34 'upload': require('../../../assets/images/video/upload.html'),
35 'playlist-add': require('../../../assets/images/video/playlist-add.html'),
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'),
46 'subscriptions': require('../../../assets/images/menu/subscriptions.html'),
47 'users': require('../../../assets/images/global/users.html'),
48 'search': require('../../../assets/images/global/search.html'),
49 'refresh': require('../../../assets/images/global/refresh.html')
50 }
51
52 export type GlobalIconName = keyof typeof icons
53
54 @Component({
55 selector: 'my-global-icon',
56 template: '',
57 styleUrls: [ './global-icon.component.scss' ],
58 changeDetection: ChangeDetectionStrategy.OnPush
59 })
60 export class GlobalIconComponent implements OnInit {
61 @Input() iconName: GlobalIconName
62
63 constructor (private el: ElementRef) {}
64
65 ngOnInit () {
66 const nativeElement = this.el.nativeElement
67
68 nativeElement.innerHTML = icons[this.iconName]
69 }
70 }