2020-09-15 07:10:53 +00:00
|
|
|
import React from "react";
|
|
|
|
|
import { CommonComponentProps, Classes } from "./common";
|
|
|
|
|
import Text, { TextType } from "./Text";
|
|
|
|
|
import styled from "styled-components";
|
2020-10-12 07:15:35 +00:00
|
|
|
import { Variant } from "./Button";
|
2020-08-10 04:54:33 +00:00
|
|
|
|
|
|
|
|
type CalloutProps = CommonComponentProps & {
|
2020-09-15 07:10:53 +00:00
|
|
|
variant?: Variant;
|
|
|
|
|
text: string;
|
|
|
|
|
fill?: boolean;
|
2020-08-10 04:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
2020-09-15 07:10:53 +00:00
|
|
|
const CalloutContainer = styled.div<{
|
|
|
|
|
variant?: Variant;
|
|
|
|
|
fill?: boolean;
|
|
|
|
|
}>`
|
|
|
|
|
padding: ${props => props.theme.spaces[5]}px
|
|
|
|
|
${props => props.theme.spaces[11] + 1}px;
|
|
|
|
|
background: ${props =>
|
2020-10-12 07:15:35 +00:00
|
|
|
props.variant ? props.theme.colors.callout[props.variant].bgColor : null};
|
2020-09-15 07:10:53 +00:00
|
|
|
height: 42px;
|
|
|
|
|
|
|
|
|
|
${props =>
|
|
|
|
|
props.fill
|
|
|
|
|
? `
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
`
|
|
|
|
|
: null};
|
|
|
|
|
|
|
|
|
|
.${Classes.TEXT} {
|
|
|
|
|
color: ${props =>
|
2020-10-12 07:15:35 +00:00
|
|
|
props.variant ? props.theme.colors.callout[props.variant].color : null};
|
2020-09-15 07:10:53 +00:00
|
|
|
}
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
Callout.defaultProps = {
|
|
|
|
|
fill: false,
|
|
|
|
|
variant: "note",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function Callout(props: CalloutProps) {
|
|
|
|
|
return (
|
2020-10-12 07:15:35 +00:00
|
|
|
<CalloutContainer variant={props.variant} fill={props.fill}>
|
2020-09-15 07:10:53 +00:00
|
|
|
<Text type={TextType.P2}>{props.text}</Text>
|
|
|
|
|
</CalloutContainer>
|
|
|
|
|
);
|
2020-08-10 04:54:33 +00:00
|
|
|
}
|
2020-09-15 07:10:53 +00:00
|
|
|
|
|
|
|
|
export default Callout;
|