PromucFlow_constructor/app/client/src/components/designSystems/blueprint/TextComponent.tsx

46 lines
1.1 KiB
TypeScript
Raw Normal View History

2019-10-31 05:28:11 +00:00
import * as React from "react";
import { Text, Classes } from "@blueprintjs/core";
import styled from "styled-components";
2019-11-25 05:07:27 +00:00
import { ComponentProps } from "components/designSystems/appsmith/BaseComponent";
import { TextStyle } from "widgets/TextWidget";
2019-10-31 05:28:11 +00:00
type TextStyleProps = {
2019-11-28 07:08:39 +00:00
accent: "primary" | "secondary" | "error";
2019-10-31 05:28:11 +00:00
};
export const BaseText = styled(Text)<TextStyleProps>``;
export interface TextComponentProps extends ComponentProps {
text?: string;
ellipsize?: boolean;
textStyle?: TextStyle;
}
class TextComponent extends React.Component<TextComponentProps> {
getTextClass(textStyle?: TextStyle) {
switch (textStyle) {
case "HEADING":
return Classes.TEXT_LARGE;
case "LABEL":
return undefined;
case "BODY":
return Classes.TEXT_SMALL;
default:
return undefined;
}
}
render() {
return (
<Text
className={this.getTextClass(this.props.textStyle)}
ellipsize={this.props.ellipsize}
>
{this.props.text}
</Text>
2019-10-31 05:28:11 +00:00
);
}
}
export default TextComponent;