@crave/farmblocks-input-select
Version:
Select box form component
45 lines (42 loc) • 1.71 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import React from "react";
import PropTypes from "prop-types";
import styled from "styled-components";
import Image, { thumbnailSizes } from "@crave/farmblocks-image";
import { Checkbox } from "@crave/farmblocks-input-checkbox";
import { SmCheck } from "@crave/farmblocks-icon";
import ItemContainer from "../styledComponents/ItemContainer";
import LabelContainer from "../styledComponents/LabelContainer";
const ItemImage = styled(Image).withConfig({
displayName: "Item__ItemImage",
componentId: "sc-1gqi50q-0"
})(["margin:-6px 8px -6px 0;&:first-child{margin-left:-6px;}"]);
const Item = ({
selected,
image,
label,
checkbox,
className,
...props
}) => /*#__PURE__*/React.createElement(ItemContainer, _extends({
className: `itemContainer ${className || ""}`
}, props), /*#__PURE__*/React.createElement(LabelContainer, {
className: "labelContainer"
}, checkbox && /*#__PURE__*/React.createElement(Checkbox, {
className: "checkbox",
checked: selected
}), image && /*#__PURE__*/React.createElement(ItemImage, {
className: "itemImage",
src: image,
size: thumbnailSizes.SMALL
}), label), !checkbox && selected && /*#__PURE__*/React.createElement(SmCheck, {
size: 24
}));
Item.propTypes = {
selected: PropTypes.bool,
image: PropTypes.string,
className: PropTypes.string,
label: PropTypes.node.isRequired,
checkbox: PropTypes.bool
};
export default Item;