UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

65 lines (64 loc) 2.06 kB
import _extends from "@babel/runtime/helpers/extends"; /* eslint-disable react/forbid-prop-types */ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import classNames from 'clsx'; import ListItemHeader from './ListItemHeader'; const ExpandableListHeader = _ref => { let { title, subtitle, image, icon, onClick, hideIndicator = false, right, style, headerProps, open, headMultiline = false, className, ...props } = _ref; const [wasOpen, setWasOpen] = useState(false); useEffect(() => { if (open) { setWasOpen(true); } }, [open]); return /*#__PURE__*/React.createElement(ListItemHeader, _extends({ title: title, subtitle: subtitle, onClick: onClick, image: image, icon: icon, right: right, left: !hideIndicator && /*#__PURE__*/React.createElement("div", { className: "list-item__indicator" }, /*#__PURE__*/React.createElement("div", { className: "icon-wrapper" }, /*#__PURE__*/React.createElement("i", { className: "ts-icon ts-angle-right" }))), style: style && style.head ? style.head : null, open: open, className: classNames(className, headMultiline && wasOpen && 'list-item__header--multiline') }, props, headerProps)); }; ExpandableListHeader.propTypes = { title: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]).isRequired, subtitle: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]), image: PropTypes.string, icon: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), onClick: PropTypes.func, hideIndicator: PropTypes.bool, right: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]), style: PropTypes.object, headerProps: PropTypes.object, open: PropTypes.bool, headMultiline: PropTypes.bool, className: PropTypes.string }; ExpandableListHeader.displayName = 'ExpandableListHeader'; export default ExpandableListHeader; //# sourceMappingURL=ExpandableListHeader.js.map