2019-12-04 09:36:13 +00:00
|
|
|
import React from "react";
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
import styled, { css } from 'styled-components';
|
|
|
|
import commonTextStyles from './common-text-styles';
|
|
|
|
|
|
|
|
const styleCss = css`
|
2019-12-11 10:45:04 +00:00
|
|
|
font-size: ${props => props.fontSize};
|
2019-12-23 12:33:58 +00:00
|
|
|
outline: 0 !important;
|
|
|
|
font-weight: ${props => props.fontWeight
|
2019-12-04 09:36:13 +00:00
|
|
|
? props.fontWeight
|
2020-01-14 09:18:12 +00:00
|
|
|
: props.isBold == true ? 700 : 'normal'};
|
2019-12-04 09:36:13 +00:00
|
|
|
${props => props.isItalic == true && css`font-style: italic;`}
|
|
|
|
${props => props.backgroundColor && css`background-color: ${props => props.backgroundColor};`}
|
|
|
|
${props => props.isInline
|
|
|
|
? css`display: inline-block;`
|
|
|
|
: props.display && css`display: ${props => props.display};`}
|
|
|
|
margin: 0;
|
|
|
|
`;
|
|
|
|
|
|
|
|
const StyledText = styled.p`
|
|
|
|
${styleCss};
|
|
|
|
${commonTextStyles};
|
|
|
|
`;
|
|
|
|
|
|
|
|
const Text = ({ title, tag, as, ...rest }) => {
|
|
|
|
//console.log("Text render", rest)
|
|
|
|
return (
|
|
|
|
<StyledText as={!as && tag ? tag : as} title={title} {...rest} />
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
Text.propTypes = {
|
|
|
|
as: PropTypes.string,
|
|
|
|
tag: PropTypes.string,
|
|
|
|
title: PropTypes.string,
|
|
|
|
color: PropTypes.string,
|
2019-12-10 14:12:38 +00:00
|
|
|
fontSize: PropTypes.string,
|
2019-12-23 12:33:58 +00:00
|
|
|
fontWeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
2019-12-04 09:36:13 +00:00
|
|
|
backgroundColor: PropTypes.string,
|
|
|
|
truncate: PropTypes.bool,
|
|
|
|
isBold: PropTypes.bool,
|
|
|
|
isInline: PropTypes.bool,
|
|
|
|
isItalic: PropTypes.bool,
|
|
|
|
display: PropTypes.string
|
|
|
|
};
|
|
|
|
|
|
|
|
Text.defaultProps = {
|
|
|
|
title: '',
|
|
|
|
color: '#333333',
|
2019-12-10 14:12:38 +00:00
|
|
|
fontSize: '13px',
|
2019-12-04 09:36:13 +00:00
|
|
|
truncate: false,
|
|
|
|
isBold: false,
|
|
|
|
isInline: false,
|
|
|
|
isItalic: false,
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Text;
|