vcc-ui
Version:
VCC UI is a collection of React UI Components that can be used for developing front-end applications at Volvo Car Corporation.
66 lines (60 loc) • 1.38 kB
JavaScript
import React from "react";
import PropTypes from "prop-types";
import { Block } from "../block";
const buttonResetStyle = {
background: "none",
margin: 0,
padding: 0,
textAlign: "left",
cursor: "pointer",
appearance: "none",
borderWidth: 0,
"::-moz-focus-inner": {
borderWidth: 0,
padding: 0
}
};
const linkResetStyle = {
textDecoration: "none"
};
export function Click({ children, extend, innerRef, ...props }) {
const as = props.href ? "a" : "button";
return (
<Block
{...props}
innerRef={innerRef}
as={as}
type={as === "button" ? props.type || "button" : null}
extend={[
{
boxSizing: "border-box",
color: "#000",
fontSize: "12px",
fontFamily: "sans-serif"
},
as === "button" ? buttonResetStyle : linkResetStyle,
extend
]}
>
{children}
</Block>
);
}
Click.propTypes = {
/** Any valid React element, function, or a string specifying a name for an HTML element */
as: PropTypes.oneOfType([
PropTypes.string,
PropTypes.element,
PropTypes.func
]),
/** An object containing valid CSS style declarations */
extend: PropTypes.oneOfType([
PropTypes.object,
PropTypes.func,
PropTypes.array
]),
/** A JSX node */
children: PropTypes.node,
/** React DOM ref object or fn to be passed through to the DOM element **/
innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func])
};