import { TabInfo } from '@t/ui'; import i18n from '@/i18n/i18n'; import { cls } from '@/utils/dom'; import html from '../vdom/template'; import { Component } from '../vdom/component'; interface Props { tabs: TabInfo[]; activeTab: string; onClick: (ev: MouseEvent, activeTab: string) => void; } export class Tabs extends Component { private toggleTab(ev: MouseEvent, activeTab: string) { this.props.onClick(ev, activeTab); } render() { return html`
${this.props.tabs.map(({ name, text }) => { const isActive = this.props.activeTab === name; return html`
this.toggleTab(ev, name)} aria-role="tab" aria-label="${i18n.get(text)}" aria-selected="${isActive ? 'true' : 'false'}" tabindex="${isActive ? '0' : '-1'}" > ${i18n.get(text)}
`; })}
`; } }