forked from alibaba-fusion/next
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtext.jsx
102 lines (91 loc) · 2.09 KB
/
text.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import ConfigProvider from '../config-provider';
/**
* Typography.Text
* @order 3
*/
class Text extends Component {
static propTypes = {
prefix: PropTypes.string,
/**
* 添加删除线样式
*/
delete: PropTypes.bool,
/**
* 添加标记样式
*/
mark: PropTypes.bool,
/**
* 添加下划线样式
*/
underline: PropTypes.bool,
/**
* 是否加粗
*/
strong: PropTypes.bool,
/**
* 添加代码样式
*/
code: PropTypes.bool,
/**
* 设置标签类型
*/
component: PropTypes.elementType,
children: PropTypes.node,
rtl: PropTypes.bool,
};
static defaultProps = {
prefix: 'next-',
delete: false,
mark: false,
underline: false,
strong: false,
code: false,
component: 'span',
rtl: false,
};
render() {
const {
prefix,
className,
component,
strong,
underline,
delete: deleteProp,
code,
mark,
rtl,
...others
} = this.props;
const Tag = component;
let children = this.props.children;
if (strong) {
children = <strong>{children}</strong>;
}
if (underline) {
children = <u>{children}</u>;
}
if (deleteProp) {
children = <del>{children}</del>;
}
if (code) {
children = <code>{children}</code>;
}
if (mark) {
children = <mark>{children}</mark>;
}
if (rtl) {
others.dir = 'rtl';
}
return (
<Tag
{...others}
className={`${className || ''} ${prefix}typography`}
>
{children}
</Tag>
);
}
}
export default ConfigProvider.config(Text);