import type {HTML} from "../../../common/html";
import {html} from "../../../common/html";
import type {TabProps} from "./tab";
import Tab from "./tab";
export default class FunctionalTab extends Tab {
$closeButton: Element;
constructor(props: TabProps) {
super(props);
this.init();
}
templateHTML(): HTML {
return html`
close
${this.props.materialIcon}
`;
}
init(): void {
this.$el = this.generateNodeFromHTML(this.templateHTML());
if (this.props.name !== "Settings") {
this.props.$root.append(this.$el);
this.$closeButton = this.$el.querySelector(".server-tab-badge");
this.registerListeners();
}
}
registerListeners(): void {
super.registerListeners();
this.$el.addEventListener("mouseover", () => {
this.$closeButton.classList.add("active");
});
this.$el.addEventListener("mouseout", () => {
this.$closeButton.classList.remove("active");
});
this.$closeButton.addEventListener("click", (event: Event) => {
this.props.onDestroy();
event.stopPropagation();
});
}
}