IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

49 řádky
1.2KB

  1. import { h, Component, VNode } from 'preact';
  2. class WBTabs extends Component {
  3. render({ tabs, onTabChanged }) {
  4. return (
  5. <ul class={ 'nav nav-tabs ' + this.props.class }>
  6. { tabs.map((t, idx) => {
  7. let name, isActive, isDisabled, onClick;
  8. if (!t)
  9. return null;
  10. if (typeof(t) === 'object') {
  11. name = t.name;
  12. isActive = t.isActive;
  13. isDisabled = t.isDisabled;
  14. onClick = t.onClick;
  15. } else if (typeof(t) === 'string') {
  16. name = t;
  17. }
  18. let cls = ['nav-link'];
  19. if (isActive)
  20. cls.push('active');
  21. if (isDisabled)
  22. cls.push('disabled');
  23. cls = cls.join(' ');
  24. return (
  25. <li class="nav-item">
  26. <a class={ cls } href="#"
  27. onclick={ e => { e.preventDefault();
  28. onClick ? onClick() : onTabChanged(t); } }>
  29. { name }
  30. </a>
  31. </li>
  32. );
  33. }) }
  34. </ul>
  35. );
  36. }
  37. }
  38. WBTabs.defaultProps = {
  39. 'onTabChanged': () => {}
  40. };
  41. export default WBTabs;