|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { h, Component, VNode } from 'preact';
-
- class WBTabs extends Component {
- render({ tabs, onTabChanged }) {
- return (
- <ul class={ 'nav nav-tabs ' + this.props.class }>
- { tabs.map((t, idx) => {
- let name, isActive, isDisabled, onClick;
-
- if (!t)
- return null;
-
- if (typeof(t) === 'object') {
- name = t.name;
- isActive = t.isActive;
- isDisabled = t.isDisabled;
- onClick = t.onClick;
-
- } else if (typeof(t) === 'string') {
- name = t;
- }
-
- let cls = ['nav-link'];
- if (isActive)
- cls.push('active');
- if (isDisabled)
- cls.push('disabled');
- cls = cls.join(' ');
- return (
- <li class="nav-item">
- <a class={ cls } href="#"
- onclick={ e => { e.preventDefault();
- onClick ? onClick() : onTabChanged(t); } }>
- { name }
- </a>
- </li>
- );
- }) }
- </ul>
- );
- }
- }
-
- WBTabs.defaultProps = {
- 'onTabChanged': () => {}
- };
-
- export default WBTabs;
|