petals-ui
Version:
Front-end UI components foundation
50 lines (36 loc) • 1.21 kB
text/typescript
import { getComponentConfig, BaseHeadlessComponent } from '../../basic';
import { ITabNavComponent } from '../typing';
import { getTabBarComponentName } from './utils';
class TabNavHeadlessComponent extends BaseHeadlessComponent<ITabNavComponent> {
protected getDescendantOfParent(): string {
return 'nav';
}
public getParentComponentName(): string {
return getTabBarComponentName();
}
public getComponentName(): string {
return getComponentConfig('tabNav', 'name') || 'TabNav';
}
public getClassNames(): string[] {
const classNames: string[] = super.getClassNames();
if (this.sc.active) {
classNames.push('is-active');
}
if (this.sc.disabled) {
classNames.push('is-disabled');
}
return classNames;
}
public getExtraClassNames(): string[] {
const classNames: string[] = [];
const { active, activeClassName, disabled, disabledClassName } = this.sc;
if (active && activeClassName) {
classNames.push(activeClassName);
}
if (disabled && disabledClassName) {
classNames.push(disabledClassName);
}
return [...super.getExtraClassNames(), ...classNames];
}
}
export { TabNavHeadlessComponent };