17f9cc6188d54ac839a19084c179a0ee8ee11f76
[oweals/peertube.git] / client / src / app / shared / buttons / action-dropdown.component.ts
1 import { Component, Input } from '@angular/core'
2
3 export type DropdownAction<T> = {
4   label?: string
5   handler?: (T) => any
6   linkBuilder?: (T) => (string | number)[]
7   isDisplayed?: (T) => boolean
8 }
9
10 @Component({
11   selector: 'my-action-dropdown',
12   styleUrls: [ './action-dropdown.component.scss' ],
13   templateUrl: './action-dropdown.component.html'
14 })
15
16 export class ActionDropdownComponent<T> {
17   @Input() actions: DropdownAction<T>[] = []
18   @Input() entry: T
19   @Input() placement = 'left'
20 }