UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

70 lines (66 loc) 2.34 kB
import * as React from "react"; import TileHeader from "./components/TileHeader"; import TileContent from "./components/TileContent"; import TileExpandable from "./components/TileExpandable"; import TileWrapper from "./components/TileWrapper"; import handleKeyDown from "../utils/handleKeyDown"; var Tile = function Tile(_ref) { var href = _ref.href, _ref$external = _ref.external, external = _ref$external === void 0 ? false : _ref$external, dataTest = _ref.dataTest, icon = _ref.icon, title = _ref.title, description = _ref.description, header = _ref.header, children = _ref.children, _ref$noPadding = _ref.noPadding, noPadding = _ref$noPadding === void 0 ? false : _ref$noPadding, _ref$expandable = _ref.expandable, expandable = _ref$expandable === void 0 ? false : _ref$expandable, _ref$initialExpanded = _ref.initialExpanded, initialExpanded = _ref$initialExpanded === void 0 ? false : _ref$initialExpanded, _ref$noHeaderIcon = _ref.noHeaderIcon, noHeaderIcon = _ref$noHeaderIcon === void 0 ? false : _ref$noHeaderIcon, htmlTitle = _ref.htmlTitle, onClick = _ref.onClick; if (expandable) { return /*#__PURE__*/React.createElement(TileExpandable, { dataTest: dataTest, icon: icon, title: title, description: description, header: header, noPadding: noPadding, initialExpanded: initialExpanded, onClick: onClick, htmlTitle: htmlTitle }, children); } var hasHeader = !!(title || description || icon || header); return /*#__PURE__*/React.createElement(TileWrapper, { href: href, external: external, dataTest: dataTest, onClick: onClick, onKeyDown: handleKeyDown(onClick), as: href ? "a" : "div", tabIndex: !href ? "0" : undefined, role: href ? undefined : "button", htmlTitle: htmlTitle }, hasHeader && /*#__PURE__*/React.createElement(TileHeader, { title: title, description: description, icon: icon, external: external, header: header, expandable: expandable, noHeaderIcon: noHeaderIcon }), children && /*#__PURE__*/React.createElement(TileContent, { noPadding: noPadding, withPointer: true, withBorder: hasHeader, useMargins: false }, children)); }; export default Tile;