matrix-dimension/web/app/configs/widget/twitch/twitch.widget.component.ts

45 lines
1.6 KiB
TypeScript
Raw Normal View History

2017-12-23 22:03:24 +00:00
import { WidgetComponent } from "../widget.component";
import { EditableWidget, WIDGET_TWITCH } from "../../../shared/models/widget";
import { Component } from "@angular/core";
import { TranslateService } from "@ngx-translate/core";
2017-12-23 22:03:24 +00:00
@Component({
templateUrl: "twitch.widget.component.html",
styleUrls: ["twitch.widget.component.scss"],
})
export class TwitchWidgetConfigComponent extends WidgetComponent {
constructor(public translate: TranslateService) {
2020-12-29 04:05:45 +00:00
super(WIDGET_TWITCH, "Twitch Livestream", "video", translate , "twitch");
2017-12-23 22:03:24 +00:00
}
protected OnNewWidgetPrepared(widget: EditableWidget) {
widget.dimension.newData.channelName = "";
}
protected OnWidgetsDiscovered(widgets: EditableWidget[]) {
for (const widget of widgets) {
if (!widget.data.channelName) {
// Convert legacy Dimension widgets to new format
widget.data.channelName = widget.data.dimChannelName;
}
}
}
protected OnWidgetBeforeAdd(widget: EditableWidget) {
this.setTwitchUrl(widget);
}
protected OnWidgetBeforeEdit(widget: EditableWidget) {
this.setTwitchUrl(widget);
}
private setTwitchUrl(widget: EditableWidget) {
if (!widget.dimension.newData.channelName || widget.dimension.newData.channelName.trim().length === 0) {
2017-12-23 22:28:42 +00:00
throw new Error("Please enter a channel name");
2017-12-23 22:03:24 +00:00
}
widget.dimension.newUrl = "https://player.twitch.tv/?channel=$channelName";
widget.dimension.newTitle = widget.dimension.newData.channelName;
}
}