Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / dist / components / molecules / AccordionBlock / AccordionTitle.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

const tslib_1 = require("tslib");

const react_1 = tslib_1.__importDefault(require("react"));

const classnames_1 = tslib_1.__importDefault(require("classnames")); // @todo


const MaterialIcon_1 = require("../../atoms/MaterialIcon");

const styled_1 = require("./styled");

const AccordionHeader_1 = require("./AccordionHeader");

function toTitle(props) {
  const title = props.children || props.text || props.title;
  const activeText = props.activeText || title;
  return props.isActive === true ? activeText : title;
} // renderText
// renderIcon


class AccordionTitle extends react_1.default.PureComponent {
  constructor() {
    super(...arguments);

    this.handleClick = event => {
      const {
        isDisabled,
        onToggle
      } = this.props;

      if (isDisabled === true) {
        console.info('[Accordion] item disabled!');
      } else {
        onToggle(event);
      }
    };
  }

  get title() {
    return toTitle(this.props);
  }
  /**
   * change to only renderProp
   */


  get defaultIcon() {
    const {
      isActive,
      isPlusMinus
    } = this.props;

    if (isPlusMinus === true) {
      return react_1.default.createElement(MaterialIcon_1.MaterialIcon, {
        type: isActive ? 'minus' : 'plus'
      });
    } else {
      return react_1.default.createElement(MaterialIcon_1.MaterialIcon, {
        type: isActive ? 'up' : 'down'
      });
    }
  }

  render() {
    const {
      isDisabled,
      isActive,
      shouldShowArrowIcon
    } = this.props;
    const title = this.title; // @todo - into styled

    const className = classnames_1.default({
      title: true,
      down: isActive,
      disable: isDisabled
    });
    const defaultIcon = shouldShowArrowIcon === true ? this.defaultIcon : '';
    return react_1.default.createElement(AccordionHeader_1.AccordionHeader, {
      key: "accordion-header",
      onClick: this.handleClick,
      className: className,
      "aria-expanded": !isActive,
      "data-qa": this.props['data-qa']
    }, react_1.default.createElement(styled_1.TitleSpan, null, react_1.default.createElement(styled_1.Title, {
      key: "title"
    }, title), defaultIcon));
  }

}

AccordionTitle.defaultProps = {
  title: '',
  isActive: false,
  isDisabled: false,
  defaultIcon: '',
  qa: ''
};
exports.AccordionTitle = AccordionTitle;
exports.default = AccordionTitle; //# sourceMappingURL=AccordionTitle.js.map