backpack-ui
Version:
Lonely Planet's Components
115 lines (93 loc) • 2.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _radium = require("radium");
var _radium2 = _interopRequireDefault(_radium);
var _colors = require("../../styles/colors");
var _colors2 = _interopRequireDefault(_colors);
var _timing = require("../../styles/timing");
var _timing2 = _interopRequireDefault(_timing);
var _icon = require("../../utils/icon");
var _icon2 = _interopRequireDefault(_icon);
var _settingBlock = require("../settingBlock");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var styles = {
flexContainer: {
alignItems: "center",
display: "flex",
justifyContent: "space-between"
},
icon: {
fill: _colors2.default.textPrimary,
height: "16px",
width: "16px"
},
accordion: {
maxHeight: 0,
overflow: "hidden",
transition: "max-height " + _timing2.default.default + " ease,\n padding-bottom " + _timing2.default.default + " ease"
},
accordionOpen: {
maxHeight: "100vh",
paddingBottom: "16px"
}
};
var SettingBlockAccordion = function SettingBlockAccordion(_ref) {
var children = _ref.children,
description = _ref.description,
expanded = _ref.expanded,
error = _ref.error,
title = _ref.title,
subtitle = _ref.subtitle,
onClick = _ref.onClick;
return _react2.default.createElement(
_settingBlock.SettingBlockWrapper,
{ error: error },
_react2.default.createElement(
_settingBlock.SettingBlockButtonWrapper,
{ onClick: onClick },
_react2.default.createElement(
"div",
{ style: styles.flexContainer },
_react2.default.createElement(
_settingBlock.SettingBlockButtonDescription,
null,
_react2.default.createElement(
_settingBlock.SettingBlockHeader,
{ subtitle: subtitle },
title
),
description && _react2.default.createElement(
_settingBlock.SettingBlockDescription,
null,
description
)
),
expanded ? (0, _icon2.default)("ChevronUp", styles.icon) : (0, _icon2.default)("ChevronDown", styles.icon)
)
),
_react2.default.createElement(
"div",
{
className: "AccordionContent",
style: [styles.accordion, expanded && styles.accordionOpen]
},
children
)
);
};
SettingBlockAccordion.propTypes = {
children: _propTypes2.default.element,
description: _propTypes2.default.string,
expanded: _propTypes2.default.bool,
error: _propTypes2.default.bool,
title: _propTypes2.default.string,
subtitle: _propTypes2.default.string,
onClick: _propTypes2.default.func
};
exports.default = (0, _radium2.default)(SettingBlockAccordion);