Skip to content

Commit 3aff996

Browse files
committed
update
1 parent 68834db commit 3aff996

File tree

6 files changed

+87
-147
lines changed

6 files changed

+87
-147
lines changed

tdesign/desktop/.prettierrc.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ module.exports = {
55
tabWidth: 2,
66
// 不使用缩进符,而使用空格
77
useTabs: false,
8-
// 行尾需要有分号
9-
semi: true,
8+
// 行尾不需要有分号
9+
semi: false,
1010
// 使用单引号
1111
singleQuote: true,
1212
// 对象的 key 仅在必要时用引号

tdesign/desktop/src/button/index.tsx

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
import { h, OmiProps, tag, WeElement, render } from 'omi'
2-
import css from './style'
3-
import { ButtonProps } from './types'
1+
import { h, OmiProps, tag, WeElement, render } from 'omi';
2+
import css from './style';
3+
import { ButtonProps } from './types';
44
import clsx from 'clsx';
5-
import { TdClassNamePefix } from '../utils'
6-
7-
@tag("t-button")
8-
export default class Button extends WeElement<ButtonProps>{
5+
import { TdClassNamePefix } from '../utils';
96

7+
@tag('t-button')
8+
export default class Button extends WeElement<ButtonProps> {
109
static propTypes = {
1110
disabled: Boolean,
1211
loading: Boolean,
1312
block: Boolean,
14-
ghost: Boolean
15-
}
13+
ghost: Boolean,
14+
};
1615
static css = css as string;
1716

1817
render(props: OmiProps<ButtonProps>) {
19-
2018
const { disabled, loading, block, ghost } = props;
2119

2220
const { href, icon } = props;
@@ -25,52 +23,54 @@ export default class Button extends WeElement<ButtonProps>{
2523

2624
return (
2725
<button
28-
className={
29-
clsx(
30-
TdClassNamePefix('button'),
31-
TdClassNamePefix('button--theme-primary'),
32-
TdClassNamePefix('button--variant-base'),
33-
{
34-
[TdClassNamePefix('size-full-width')]: block
35-
},
36-
{
37-
[TdClassNamePefix('is-loading')]: loading
38-
},
39-
{
40-
[TdClassNamePefix('is-disabled')]: disabled
41-
},
42-
{
43-
[TdClassNamePefix('button--ghost')]: ghost
44-
}
45-
)
46-
}
26+
className={clsx(
27+
TdClassNamePefix('button'),
28+
TdClassNamePefix('button--theme-primary'),
29+
TdClassNamePefix('button--variant-base'),
30+
{
31+
[TdClassNamePefix('size-full-width')]: block,
32+
},
33+
{
34+
[TdClassNamePefix('is-loading')]: loading,
35+
},
36+
{
37+
[TdClassNamePefix('is-disabled')]: disabled,
38+
},
39+
{
40+
[TdClassNamePefix('button--ghost')]: ghost,
41+
},
42+
)}
4743
>
48-
{
49-
loading && (
50-
<div
51-
style="display:flex;"
52-
class={clsx(
53-
TdClassNamePefix('loading'),
54-
TdClassNamePefix('loading--center'),
55-
TdClassNamePefix('size-m'),
56-
TdClassNamePefix('loading--inherit-color'),
57-
)}>
58-
<svg
59-
className={
60-
clsx(
61-
TdClassNamePefix('loading__gradient'),
62-
TdClassNamePefix('icon-loading')
63-
)
64-
} width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
65-
<path fill="#FFF" d="M8 1.5C4.41038 1.5 1.5 4.41038 1.5 8C1.5 11.5896 4.41038 14.5 8 14.5V12.875C5.30761 12.875 3.125 10.6924 3.125 8C3.125 5.30761 5.30761 3.125 8 3.125C10.6924 3.125 12.875 5.30761 12.875 8H14.5C14.5 4.41038 11.5896 1.5 8 1.5Z" fill-opacity="0.9" />
66-
</svg>
67-
</div>
68-
)
69-
}
70-
<span className='t-button__text'>
44+
{loading && (
45+
<div
46+
style="display:flex;"
47+
class={clsx(
48+
TdClassNamePefix('loading'),
49+
TdClassNamePefix('loading--center'),
50+
TdClassNamePefix('size-m'),
51+
TdClassNamePefix('loading--inherit-color'),
52+
)}
53+
>
54+
<svg
55+
className={clsx(TdClassNamePefix('loading__gradient'), TdClassNamePefix('icon-loading'))}
56+
width="16"
57+
height="16"
58+
viewBox="0 0 16 16"
59+
fill="none"
60+
xmlns="http://www.w3.org/2000/svg"
61+
>
62+
<path
63+
fill="#FFF"
64+
d="M8 1.5C4.41038 1.5 1.5 4.41038 1.5 8C1.5 11.5896 4.41038 14.5 8 14.5V12.875C5.30761 12.875 3.125 10.6924 3.125 8C3.125 5.30761 5.30761 3.125 8 3.125C10.6924 3.125 12.875 5.30761 12.875 8H14.5C14.5 4.41038 11.5896 1.5 8 1.5Z"
65+
fill-opacity="0.9"
66+
/>
67+
</svg>
68+
</div>
69+
)}
70+
<span className="t-button__text">
7171
<slot></slot>
7272
</span>
7373
</button>
74-
)
74+
);
7575
}
7676
}

tdesign/desktop/src/link/link.tsx

Lines changed: 13 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,20 @@
1-
import { h, tag, extractClass, WeElement } from 'omi'
2-
1+
import { h, tag, extractClass, WeElement, OmiProps } from 'omi'
2+
import { LinkProps } from './type'
33
import './style/index.js'
4-
import css from './style/index.ts'
5-
6-
interface LinkProps {
7-
/**
8-
* 链接内容
9-
*/
10-
content?: string | WeElement
11-
/**
12-
* 链接内容,同 content
13-
*/
14-
default?: string | WeElement
15-
/**
16-
* 禁用链接
17-
*/
18-
disabled?: boolean
19-
/**
20-
* 链接悬浮态样式,有 文本颜色变化、添加下划线等 2 种方法
21-
* @default underline
22-
*/
23-
hover?: 'color' | 'underline'
24-
/**
25-
* 跳转链接
26-
* @default ''
27-
*/
28-
href?: string
29-
/**
30-
* 前置图标: TODO: need to be unified with icon
31-
*/
32-
prefixIcon?: WeElement
33-
/**
34-
* 尺寸
35-
* @default medium
36-
*/
37-
size?: 'small' | 'medium' | 'large'
38-
/**
39-
* 后置图标
40-
*/
41-
suffixIcon?: WeElement
42-
/**
43-
* 跳转方式,如:当前页面打开、新页面打开等,同 HTML 属性 target 含义相同
44-
* @default ''
45-
*/
46-
target?: string
47-
/**
48-
* 组件风格,依次为默认色、品牌色、危险色、警告色、成功色
49-
* @default default
50-
*/
51-
theme?: 'default' | 'primary' | 'danger' | 'warning' | 'success'
52-
/**
53-
* 普通状态是否显示链接下划线
54-
*/
55-
underline?: boolean
56-
/**
57-
* 点击事件,禁用状态不会触发点击事件
58-
*/
59-
onClick?: (e: MouseEvent) => void
60-
}
4+
import css from './style/index'
615

626
@tag('t-link')
637
export default class Link extends WeElement<LinkProps> {
648
static css = css as string
659
static defaultProps = {
6610
underline: false,
6711
disabled: false,
68-
size: 'medium'
12+
size: 'medium',
6913
}
7014

71-
//TODO: enum type?
7215
static propTypes = {
73-
content: WeElement, //String | WeElement
74-
default: WeElement, //String | WeElement
16+
content: Object,
17+
default: Object,
7518
disabled: Boolean,
7619
hover: String,
7720
href: String,
@@ -81,7 +24,7 @@ export default class Link extends WeElement<LinkProps> {
8124
target: String,
8225
theme: String,
8326
underline: Boolean,
84-
onClick: Function
27+
onClick: Function, // need to test
8528
}
8629

8730
handleClick(e: MouseEvent): void {
@@ -95,17 +38,12 @@ export default class Link extends WeElement<LinkProps> {
9538
TODO: remain size and status
9639
remain prefixContent and suffixContent
9740
**/
98-
const linkClass = extractClass(
99-
props,
100-
`${classPrefix}-link`,
101-
`${classPrefix}-link--theme-${props.theme}`,
102-
{
103-
// [commonSizeClassName[props.size]]: props.size !== 'medium',
104-
// [commonStatusClassName.disabled]: props.disabled,
105-
[`${classPrefix}-is-underline`]: props.underline,
106-
[`${classPrefix}-link--hover-${props.hover}`]: !props.disabled
107-
}
108-
)
41+
const linkClass = extractClass(props, `${classPrefix}-link`, `${classPrefix}-link--theme-${props.theme}`, {
42+
// [commonSizeClassName[props.size]]: props.size !== 'medium',
43+
// [commonStatusClassName.disabled]: props.disabled,
44+
[`${classPrefix}-is-underline`]: props.underline,
45+
[`${classPrefix}-link--hover-${props.hover}`]: !props.disabled,
46+
})
10947

11048
return (
11149
<h.f>

tdesign/desktop/src/link/theme.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ export default class LinkTheme extends WeElement<Props> {
2121
}
2222

2323
render(<link-theme></link-theme>, 'body', {
24-
ignoreAttrs: true
24+
ignoreAttrs: true,
2525
})

tdesign/desktop/src/link/type.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,58 @@
1-
import { WeElement } from 'omi'
1+
/* eslint-disable */
2+
3+
import { TNode, TElement, SizeEnum } from '../common';
4+
25
export interface LinkProps {
36
/**
47
* 链接内容
58
*/
6-
content?: string | WeElement
9+
content?: TNode;
710
/**
811
* 链接内容,同 content
912
*/
10-
default?: string | WeElement
13+
default?: TNode;
1114
/**
1215
* 禁用链接
1316
*/
14-
disabled?: boolean
17+
disabled?: boolean;
1518
/**
1619
* 链接悬浮态样式,有 文本颜色变化、添加下划线等 2 种方法
1720
* @default underline
1821
*/
19-
hover?: 'color' | 'underline'
22+
hover?: 'color' | 'underline';
2023
/**
2124
* 跳转链接
2225
* @default ''
2326
*/
24-
href?: string
27+
href?: string;
2528
/**
2629
* 前置图标: TODO: need to be unified with icon
2730
*/
28-
prefixIcon?: WeElement
29-
/**
30-
* 尺寸
31+
prefixIcon?: TElement;
32+
/** 尺寸
3133
* @default medium
3234
*/
33-
size?: 'small' | 'medium' | 'large'
35+
size?: SizeEnum;
3436
/**
3537
* 后置图标
3638
*/
37-
suffixIcon?: WeElement
39+
suffixIcon?: TElement;
3840
/**
3941
* 跳转方式,如:当前页面打开、新页面打开等,同 HTML 属性 target 含义相同
4042
* @default ''
4143
*/
42-
target?: string
44+
target?: string;
4345
/**
4446
* 组件风格,依次为默认色、品牌色、危险色、警告色、成功色
4547
* @default default
4648
*/
47-
theme?: 'default' | 'primary' | 'danger' | 'warning' | 'success'
49+
theme?: 'default' | 'primary' | 'danger' | 'warning' | 'success';
4850
/**
4951
* 普通状态是否显示链接下划线
5052
*/
51-
underline?: boolean
53+
underline?: boolean;
5254
/**
5355
* 点击事件,禁用状态不会触发点击事件
5456
*/
55-
onClick?: (e: MouseEvent) => void
57+
onClick?: (e: MouseEvent) => void;
5658
}

tutorial/pass-complex-type-props-to-custom-elements.cn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ define('my-element', class extends WeElement {
122122
break
123123
```
124124

125-
这里可以看到,omi 内部还会对 josn 格式进行处理,防止 `JSON.parse` 出错。当然 eval 和 new Function 可以转化错误格式的 json 字符串,但是考虑到安全性,还是使用`JSON.parse`
125+
这里可以看到,omi 内部还会对 json 格式进行处理,防止 `JSON.parse` 出错。当然 eval 和 new Function 可以转化错误格式的 json 字符串,但是考虑到安全性,还是使用`JSON.parse`
126126

127127
## 实战
128128

0 commit comments

Comments
 (0)