From 4372557a513d2633920cea92835107e1b4102c18 Mon Sep 17 00:00:00 2001 From: anlyyao Date: Thu, 22 Aug 2024 18:35:31 +0800 Subject: [PATCH 1/2] feat(Badge): use new style --- site/mobile/mobile.config.js | 2 +- src/badge/Badge.tsx | 138 +- src/badge/_example/base.jsx | 23 - src/badge/_example/base.tsx | 38 + src/badge/_example/button.jsx | 40 - src/badge/_example/cell.jsx | 24 - src/badge/_example/{index.jsx => index.tsx} | 22 +- src/badge/_example/size.tsx | 19 + src/badge/_example/style/index.less | 28 +- src/badge/_example/theme.tsx | 35 + src/badge/badge.en-US.md | 21 + src/badge/badge.md | 15 +- src/badge/defaultProps.ts | 14 + src/badge/style/index.js | 2 +- src/badge/type.ts | 4 +- test/snap/__snapshots__/csr.test.jsx.snap | 1539 ++++++++++++++++--- test/snap/__snapshots__/ssr.test.jsx.snap | 18 +- 17 files changed, 1564 insertions(+), 418 deletions(-) delete mode 100644 src/badge/_example/base.jsx create mode 100644 src/badge/_example/base.tsx delete mode 100644 src/badge/_example/button.jsx delete mode 100644 src/badge/_example/cell.jsx rename src/badge/_example/{index.jsx => index.tsx} (57%) create mode 100644 src/badge/_example/size.tsx create mode 100644 src/badge/_example/theme.tsx create mode 100644 src/badge/badge.en-US.md create mode 100644 src/badge/defaultProps.ts diff --git a/site/mobile/mobile.config.js b/site/mobile/mobile.config.js index a915f7db..dfbf675e 100644 --- a/site/mobile/mobile.config.js +++ b/site/mobile/mobile.config.js @@ -73,7 +73,7 @@ export default { { title: 'Badge 徽标', name: 'badge', - component: () => import('tdesign-mobile-react/badge/_example/index.jsx'), + component: () => import('tdesign-mobile-react/badge/_example/index.tsx'), }, { title: 'CountDown 倒计时', diff --git a/src/badge/Badge.tsx b/src/badge/Badge.tsx index b73ced72..3d8909dc 100644 --- a/src/badge/Badge.tsx +++ b/src/badge/Badge.tsx @@ -1,90 +1,106 @@ -import React, { forwardRef, useContext, useMemo } from 'react'; -import cls from 'classnames'; -import { ConfigContext } from '../config-provider'; +import React, { forwardRef, useMemo } from 'react'; +import classNames from 'classnames'; +import isNumber from 'lodash/isNumber'; +import isString from 'lodash/isString'; import type { StyledProps } from '../common'; import type { TdBadgeProps } from './type'; +import { badgeDefaultProps } from './defaultProps'; +import parseTNode from '../_util/parseTNode'; +import useDefaultProps from '../hooks/useDefaultProps'; +import useConfig from '../hooks/useConfig'; +import { usePrefixClass } from '../hooks/useClass'; export interface BadgeProps extends TdBadgeProps, StyledProps {} -function resolveOffset(ofs): number | string | undefined { - if (typeof ofs === 'undefined') return ofs; - if (Number.isNaN(ofs)) return; - if (typeof ofs === 'number') return (ofs * -1) as number; - return (ofs as string).startsWith('-') ? ofs.replace(/^-/, '') : `-${ofs}`; -} +const hasUnit = (unit: string) => + unit.indexOf('px') > 0 || + unit.indexOf('rpx') > 0 || + unit.indexOf('em') > 0 || + unit.indexOf('rem') > 0 || + unit.indexOf('%') > 0 || + unit.indexOf('vh') > 0 || + unit.indexOf('vm') > 0; -const Badge = forwardRef((props, ref) => { - const { - children, - className, - style, - color = '', - content, - count = 0, - dot = false, - maxCount = 99, - offset, - shape = 'circle', - showZero = false, - size = 'medium', - ...resetProps - } = props; - const { classPrefix } = useContext(ConfigContext); - const name = useMemo(() => `${classPrefix}-badge`, [classPrefix]); - const hasChildren = useMemo(() => !!(content || children), [content, children]); - // const isRibbon = useMemo(() => !dot && shape === 'ribbon', [shape, dot]); +const Badge = forwardRef((originProps, ref) => { + const props = useDefaultProps(originProps, badgeDefaultProps); + const { children, className, style, color, content, count, dot, maxCount, offset, shape, showZero, size } = props; + + const { classPrefix } = useConfig(); + const badgeClass = usePrefixClass('badge'); // 徽标自定义样式 - const computedStyle = useMemo(() => { - const mergedStyle = { ...style }; + const badgeInnerStyles = useMemo(() => { + const mergedStyle: React.CSSProperties = {}; if (color) mergedStyle.backgroundColor = color; if (offset && Array.isArray(offset)) { - const [right, top] = offset; - mergedStyle.right = resolveOffset(right); - mergedStyle.top = resolveOffset(top); + const [right = 0, top = 0]: Array = offset; + mergedStyle.right = hasUnit(right.toString()) ? right : `${right}px`; + mergedStyle.top = hasUnit(top.toString()) ? top : `${top}px`; } return mergedStyle; - }, [style, color, offset]); + }, [color, offset]); // 徽标外层样式类 - const badgeClasses = cls({ - [`${name}`]: true, - // [`${name}__ribbon--outer`]: isRibbon, + const badgeClasses = classNames(className, { + [`${badgeClass}`]: true, + [`${badgeClass}__ribbon-outer`]: shape === 'ribbon', }); // 徽标内层样式类 - const badgeInnerClasses = cls( - { - [`${name}__inner`]: true, - [`${name}--dot`]: dot, - [`${name}--${shape}`]: !dot && shape, - [`${classPrefix}-badge--has-children`]: hasChildren, - }, - size === 'small' ? `${name}--${size}` : `${name}--medium`, - className, - ); + const badgeInnerClasses = classNames({ + [`${badgeClass}--basic`]: true, + [`${badgeClass}--dot`]: dot, + [`${badgeClass}--${size}`]: true, + [`${badgeClass}--${shape}`]: true, + [`${badgeClass}--count`]: !dot && count, + [`${classPrefix}-has-count`]: true, + }); + + // 是否展示角标 + const isShowBadge = useMemo(() => { + if (dot) { + return true; + } + if (!showZero && Number(count) === 0) { + return false; + } + if (count == null) return false; + return true; + }, [dot, count, showZero]); - const renderBadgeContent = useMemo(() => { + const readerCount = useMemo(() => { if (dot) return null; - if (typeof count === 'number') { - if (count === 0) { + if (isString(count) || isNumber(count)) { + if (Number(count) === 0) { return showZero ? count : null; } - return count >= +maxCount ? maxCount : count; + return Number(count) > Number(maxCount) ? `${maxCount}+` : count; } - return count; + return parseTNode(count); }, [dot, count, maxCount, showZero]); - const renderBadge = ( -
- {renderBadgeContent} -
- ); + const childNode = content || children; + + const readerContent = () => + childNode && ( +
+ {parseTNode(childNode)} +
+ ); + + const readerBadge = () => { + if (!isShowBadge) return null; + return ( +
+ {readerCount} +
+ ); + }; return ( -
- {renderBadge} - {content || children} +
+ {readerContent()} + {readerBadge()}
); }); diff --git a/src/badge/_example/base.jsx b/src/badge/_example/base.jsx deleted file mode 100644 index 212796ea..00000000 --- a/src/badge/_example/base.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { Badge } from 'tdesign-mobile-react'; - -export default function BadgeBaseDemo() { - return ( -
-
-
- 消息 -
-
- 消息 -
-
- 消息 -
-
- 消息 -
-
-
- ); -} diff --git a/src/badge/_example/base.tsx b/src/badge/_example/base.tsx new file mode 100644 index 00000000..00276947 --- /dev/null +++ b/src/badge/_example/base.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { Badge, Button } from 'tdesign-mobile-react'; +import { NotificationIcon } from 'tdesign-icons-react'; + +export default function BaseBadge() { + return ( + <> +
红点徽标
+
+ + + + + + + +
+ +
数字徽标
+
+ + + + + + + +
+ +
自定义徽标
+
+ +
+ + ); +} diff --git a/src/badge/_example/button.jsx b/src/badge/_example/button.jsx deleted file mode 100644 index 6b00faa8..00000000 --- a/src/badge/_example/button.jsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; -import { Badge, Button } from 'tdesign-mobile-react'; - -export default function BadgeButtonDemo() { - return ( -
-
-
- - - -
-
- - - -
- -
- - - -
-
- - - -
-
-
- ); -} diff --git a/src/badge/_example/cell.jsx b/src/badge/_example/cell.jsx deleted file mode 100644 index 828409ee..00000000 --- a/src/badge/_example/cell.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { Badge, CellGroup, Cell } from 'tdesign-mobile-react'; - -export default function BadgeCellDemo() { - return ( -
- - }> - }> - - - - - } - > - }> - -
- ); -} diff --git a/src/badge/_example/index.jsx b/src/badge/_example/index.tsx similarity index 57% rename from src/badge/_example/index.jsx rename to src/badge/_example/index.tsx index e72cfc0b..96b7c97f 100644 --- a/src/badge/_example/index.jsx +++ b/src/badge/_example/index.tsx @@ -1,23 +1,25 @@ import React from 'react'; import TDemoBlock from '../../../site/mobile/components/DemoBlock'; import TDemoHeader from '../../../site/mobile/components/DemoHeader'; -import BaseDemo from './base'; -import ButtonDemo from './button'; -import CellDemo from './cell'; + +import BaseBadge from './base'; +import ThemeBadge from './theme'; +import SizeBadge from './size'; + import './style/index.less'; export default function BadgeDemo() { return ( -
+
- - + + - - + + - - + +
); diff --git a/src/badge/_example/size.tsx b/src/badge/_example/size.tsx new file mode 100644 index 00000000..16373bf0 --- /dev/null +++ b/src/badge/_example/size.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { Avatar } from 'tdesign-mobile-react'; +import { UserIcon } from 'tdesign-icons-react'; + +export default function SizeBadge() { + return ( + <> +
Large
+
+ } size="large" badgeProps={{ count: 8, size: 'large', offset: [7, 7] }} /> +
+ +
Middle
+
+ } badgeProps={{ count: 8, offset: [5, 5] }} /> +
+ + ); +} diff --git a/src/badge/_example/style/index.less b/src/badge/_example/style/index.less index b812a887..06ffa54e 100644 --- a/src/badge/_example/style/index.less +++ b/src/badge/_example/style/index.less @@ -1,18 +1,16 @@ -.tdesign-mobile-demo { - .badge-demo { - display: flex; - padding: 16px 0; - width: 100%; +.badge-demo { + display: flex; + margin-top: 28px; + margin-bottom: 24px; + margin-left: 16px; + align-items: center; + color: var(--td-text-color-primary, rgba(0, 0, 0, 0.9)); - &__container { - width: 24%; - text-align: center; - position: relative; - } - - .badge-item { - width: 24%; - text-align: center; - } + .badge-item { + margin-right: 48px; } } + +.block { + padding: 16px 16px 24px; +} diff --git a/src/badge/_example/theme.tsx b/src/badge/_example/theme.tsx new file mode 100644 index 00000000..ad3a90bd --- /dev/null +++ b/src/badge/_example/theme.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { Badge, Button, Cell } from 'tdesign-mobile-react'; +import { NotificationIcon, ShopIcon } from 'tdesign-icons-react'; + +export default function ThemeBadge() { + return ( + <> +
圆形徽标
+
+ + + +
+ +
方形徽标
+
+ + + +
+ +
气泡徽标
+
+ +
+ +
+ 角标 +
+ }> + + ); +} diff --git a/src/badge/badge.en-US.md b/src/badge/badge.en-US.md new file mode 100644 index 00000000..51a6c0a2 --- /dev/null +++ b/src/badge/badge.en-US.md @@ -0,0 +1,21 @@ +:: BASE_DOC :: + +## API + + +### Badge Props + +name | type | default | description | required +-- | -- | -- | -- | -- +className | String | - | className of component | N +style | Object | - | CSS(Cascading Style Sheets),Typescript:`React.CSSProperties` | N +children | TNode | - | Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N +color | String | - | \- | N +content | TNode | - | Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N +count | TNode | 0 | Typescript:`string \| number \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N +dot | Boolean | false | \- | N +maxCount | Number | 99 | \- | N +offset | Array | - | Typescript:`Array` | N +shape | String | circle | options: circle/square/bubble/ribbon | N +showZero | Boolean | false | \- | N +size | String | medium | options: medium/large | N diff --git a/src/badge/badge.md b/src/badge/badge.md index 03e899e9..7eb84596 100644 --- a/src/badge/badge.md +++ b/src/badge/badge.md @@ -1,19 +1,20 @@ :: BASE_DOC :: ## API + ### Badge Props -名称 | 类型 | 默认值 | 说明 | 必传 +名称 | 类型 | 默认值 | 描述 | 必传 -- | -- | -- | -- | -- className | String | - | 类名 | N style | Object | - | 样式,TS 类型:`React.CSSProperties` | N -children | TNode | - | 徽标内容,同 content。TS 类型:`string | TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N +children | TNode | - | 徽标内容,同 content。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N color | String | - | 颜色 | N -content | TNode | - | 徽标内容。TS 类型:`string | TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N -count | TNode | 0 | 徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+。TS 类型:`string | number | TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N +content | TNode | - | 徽标内容。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N +count | TNode | 0 | 徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+。TS 类型:`string \| number \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N dot | Boolean | false | 是否为红点 | N maxCount | Number | 99 | 封顶的数字值 | N -offset | Array | - | 设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem']。TS 类型:`Array` | N -shape | String | circle | 形状。可选项:circle/round | N +offset | Array | - | 设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem']。TS 类型:`Array` | N +shape | String | circle | 形状。可选项:circle/square/bubble/ribbon | N showZero | Boolean | false | 当数值为 0 时,是否展示徽标 | N -size | String | medium | 尺寸。可选项:small/medium | N +size | String | medium | 尺寸。可选项:medium/large | N diff --git a/src/badge/defaultProps.ts b/src/badge/defaultProps.ts new file mode 100644 index 00000000..a394baed --- /dev/null +++ b/src/badge/defaultProps.ts @@ -0,0 +1,14 @@ +/** + * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC + * */ + +import { TdBadgeProps } from './type'; + +export const badgeDefaultProps: TdBadgeProps = { + count: 0, + dot: false, + maxCount: 99, + shape: 'circle', + showZero: false, + size: 'medium', +}; diff --git a/src/badge/style/index.js b/src/badge/style/index.js index 4ad483f7..c89cf8d6 100644 --- a/src/badge/style/index.js +++ b/src/badge/style/index.js @@ -1 +1 @@ -import '../../_common/style/mobile/components/badge/_index.less'; +import '../../_common/style/mobile/components/badge/v2/_index.less'; diff --git a/src/badge/type.ts b/src/badge/type.ts index f848586b..1b787c7a 100644 --- a/src/badge/type.ts +++ b/src/badge/type.ts @@ -43,7 +43,7 @@ export interface TdBadgeProps { * 形状 * @default circle */ - shape?: 'circle' | 'round'; + shape?: 'circle' | 'square' | 'bubble' | 'ribbon'; /** * 当数值为 0 时,是否展示徽标 * @default false @@ -53,5 +53,5 @@ export interface TdBadgeProps { * 尺寸 * @default medium */ - size?: 'small' | 'medium'; + size?: 'medium' | 'large'; } diff --git a/test/snap/__snapshots__/csr.test.jsx.snap b/test/snap/__snapshots__/csr.test.jsx.snap index 0af32b49..f4616760 100644 --- a/test/snap/__snapshots__/csr.test.jsx.snap +++ b/test/snap/__snapshots__/csr.test.jsx.snap @@ -276,6 +276,1015 @@ exports[`csr snapshot test > csr test src/back-top/_example/index.tsx 1`] = `
`; +exports[`csr snapshot test > csr test src/badge/_example/base.tsx 1`] = ` +
+
+ 红点徽标 +
+
+
+
+ + 消息 + +
+
+
+
+
+ + + + + +
+
+
+
+
+ + + +
+
+
+
+
+ 数字徽标 +
+
+
+
+ + 消息 + +
+
+ 8 +
+
+
+
+ + + + + +
+
+ 2 +
+
+
+
+ + + +
+
+ 8 +
+
+
+
+ 自定义徽标 +
+
+
+
+ + + +
+
+ NEW +
+
+
+
+`; + +exports[`csr snapshot test > csr test src/badge/_example/index.tsx 1`] = ` +
+
+
+

+ Badge 徽标 +

+

+ 用于告知用户,该区域的状态变化或者待处理任务的数量。 +

+
+
+
+

+ 01 组件类型 +

+
+
+
+ 红点徽标 +
+
+
+
+ + 消息 + +
+
+
+
+
+ + + + + +
+
+
+
+
+ + + +
+
+
+
+
+ 数字徽标 +
+
+
+
+ + 消息 + +
+
+ 8 +
+
+
+
+ + + + + +
+
+ 2 +
+
+
+
+ + + +
+
+ 8 +
+
+
+
+ 自定义徽标 +
+
+
+
+ + + +
+
+ NEW +
+
+
+
+
+
+
+

+ 02 组件样式 +

+
+
+
+ 圆形徽标 +
+
+
+
+ + + + + +
+
+ 2 +
+
+
+
+ 方形徽标 +
+
+
+
+ + + + + +
+
+ 2 +
+
+
+
+ 气泡徽标 +
+
+
+
+ + + +
+
+ 领积分 +
+
+
+
+ 角标 +
+
+
+
+ 单行标题 +
+
+
+
+ New +
+
+
+
+
+
+
+
+

+ 03 组件尺寸 +

+
+
+
+ Large +
+
+
+
+ +
+ + + +
+
+
+
+
+ 8 +
+
+
+
+
+
+ Middle +
+
+
+
+ +
+ + + +
+
+
+
+
+ 8 +
+
+
+
+
+
+
+
+
+`; + +exports[`csr snapshot test > csr test src/badge/_example/size.tsx 1`] = ` +
+
+ Large +
+
+
+
+ +
+ + + +
+
+
+
+
+ 8 +
+
+
+
+
+
+ Middle +
+
+
+
+ +
+ + + +
+
+
+
+
+ 8 +
+
+
+
+
+
+`; + +exports[`csr snapshot test > csr test src/badge/_example/theme.tsx 1`] = ` +
+
+ 圆形徽标 +
+
+
+
+ + + + + +
+
+ 2 +
+
+
+
+ 方形徽标 +
+
+
+
+ + + + + +
+
+ 2 +
+
+
+
+ 气泡徽标 +
+
+
+
+ + + +
+
+ 领积分 +
+
+
+
+ 角标 +
+
+
+
+ 单行标题 +
+
+
+
+ New +
+
+
+
+
+`; + exports[`csr snapshot test > csr test src/button/_example/base.tsx 1`] = `
csr test src/cell/_example/base.tsx 1`] = ` class="t-badge" >
16
@@ -2188,7 +3197,7 @@ exports[`csr snapshot test > csr test src/cell/_example/base.tsx 1`] = ` class="t-badge" >
16
@@ -2910,7 +3919,7 @@ exports[`csr snapshot test > csr test src/cell/_example/multiple.tsx 1`] = ` class="t-badge" >
16
@@ -3278,7 +4287,7 @@ exports[`csr snapshot test > csr test src/cell/_example/single.tsx 1`] = ` class="t-badge" >
16
@@ -3765,42 +4774,50 @@ exports[`csr snapshot test > csr test src/grid/_example/badge.tsx 1`] = ` class="t-badge" >
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- +
+
csr test src/grid/_example/badge.tsx 1`] = ` class="t-badge" >
- 8 -
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- + +
+
+ 8
@@ -3891,43 +4916,51 @@ exports[`csr snapshot test > csr test src/grid/_example/badge.tsx 1`] = ` class="t-badge" >
- 13 -
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- + +
+
+ 13
@@ -3955,43 +4988,51 @@ exports[`csr snapshot test > csr test src/grid/_example/badge.tsx 1`] = ` class="t-badge" >
- NEW -
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- + +
+
+ NEW
@@ -7503,42 +8544,50 @@ exports[`csr snapshot test > csr test src/grid/_example/index.tsx 1`] = ` class="t-badge" >
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- +
+
csr test src/grid/_example/index.tsx 1`] = ` class="t-badge" >
- 8 -
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- + +
+
+ 8
@@ -7629,43 +8686,51 @@ exports[`csr snapshot test > csr test src/grid/_example/index.tsx 1`] = ` class="t-badge" >
- 13 -
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- + +
+
+ 13
@@ -7693,43 +8758,51 @@ exports[`csr snapshot test > csr test src/grid/_example/index.tsx 1`] = ` class="t-badge" >
- NEW -
-
-
-
-
+ class="t-loading t-loading--center" + style="font-size: 20px;" + > +
+
+
+
+
+
+
-
- + +
+
+ NEW
@@ -20702,6 +21775,14 @@ exports[`ssr snapshot test > ssr test src/back-top/_example/base.tsx 1`] = `" ssr test src/back-top/_example/index.tsx 1`] = `"

BackTop 返回顶部

当页面过长往下滑动是会出现返回顶部的便捷操作,帮助用户快速回到页面顶部

形状

"`; +exports[`ssr snapshot test > ssr test src/badge/_example/base.tsx 1`] = `"
红点徽标
消息
数字徽标
消息
8
2
8
自定义徽标
NEW
"`; + +exports[`ssr snapshot test > ssr test src/badge/_example/index.tsx 1`] = `"

Badge 徽标

用于告知用户,该区域的状态变化或者待处理任务的数量。

01 组件类型

红点徽标
消息
数字徽标
消息
8
2
8
自定义徽标
NEW

02 组件样式

圆形徽标
2
方形徽标
2
气泡徽标
领积分
角标
单行标题
New

03 组件尺寸

Large
8
Middle
8
"`; + +exports[`ssr snapshot test > ssr test src/badge/_example/size.tsx 1`] = `"
Large
8
Middle
8
"`; + +exports[`ssr snapshot test > ssr test src/badge/_example/theme.tsx 1`] = `"
圆形徽标
2
方形徽标
2
气泡徽标
领积分
角标
单行标题
New
"`; + exports[`ssr snapshot test > ssr test src/button/_example/base.tsx 1`] = `"
"`; exports[`ssr snapshot test > ssr test src/button/_example/block.tsx 1`] = `"
"`; @@ -20724,13 +21805,13 @@ exports[`ssr snapshot test > ssr test src/button/_example/test.tsx 1`] = `"
exports[`ssr snapshot test > ssr test src/button/_example/theme.tsx 1`] = `"
"`; -exports[`ssr snapshot test > ssr test src/cell/_example/base.tsx 1`] = `"

Cell 单元格

一行内容/功能的垂直排列方式。一行项目左侧为主要内容展示区域,右侧可增加更多操作内容

01 类型

单行单元格

单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题

02

多行单元格

单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字

03 组件样式

卡片单元格

单行标题
单行标题
单行标题
"`; +exports[`ssr snapshot test > ssr test src/cell/_example/base.tsx 1`] = `"

Cell 单元格

一行内容/功能的垂直排列方式。一行项目左侧为主要内容展示区域,右侧可增加更多操作内容

01 类型

单行单元格

单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题

02

多行单元格

单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字

03 组件样式

卡片单元格

单行标题
单行标题
单行标题
"`; exports[`ssr snapshot test > ssr test src/cell/_example/group.tsx 1`] = `"
单行标题
单行标题
单行标题
"`; -exports[`ssr snapshot test > ssr test src/cell/_example/multiple.tsx 1`] = `"
单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字
"`; +exports[`ssr snapshot test > ssr test src/cell/_example/multiple.tsx 1`] = `"
单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字
"`; -exports[`ssr snapshot test > ssr test src/cell/_example/single.tsx 1`] = `"
单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题
"`; +exports[`ssr snapshot test > ssr test src/cell/_example/single.tsx 1`] = `"
单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题
"`; exports[`ssr snapshot test > ssr test src/divider/_example/base.tsx 1`] = `"
水平分割线
带文字水平分割线
垂直分割线
文字信息文字信息文字信息
"`; @@ -20738,7 +21819,7 @@ exports[`ssr snapshot test > ssr test src/divider/_example/index.tsx 1`] = `" ssr test src/divider/_example/theme.tsx 1`] = `"
虚线样式
"`; -exports[`ssr snapshot test > ssr test src/grid/_example/badge.tsx 1`] = `"
标题文字
8
标题文字
13
标题五字内
NEW
标题五字内
"`; +exports[`ssr snapshot test > ssr test src/grid/_example/badge.tsx 1`] = `"
标题文字
8
标题文字
13
标题五字内
NEW
标题五字内
"`; exports[`ssr snapshot test > ssr test src/grid/_example/base.tsx 1`] = `"
标题文字
标题文字
标题文字
标题文字
最多四个字
标题文字
标题文字
标题文字
最多五个字
标题文字
标题文字
最多六个文字
"`; @@ -20750,7 +21831,7 @@ exports[`ssr snapshot test > ssr test src/grid/_example/desc.tsx 1`] = `"
ssr test src/grid/_example/icon.tsx 1`] = `"
分享
收藏
保存
编辑
"`; -exports[`ssr snapshot test > ssr test src/grid/_example/index.tsx 1`] = `"

Grid 宫格

用于功能入口布局,将页面或特定区域切分成若干等大的区块,形成若干功能入口。

01 组件类型

基础宫格

标题文字
标题文字
标题文字
标题文字
最多四个字
标题文字
标题文字
标题文字
最多五个字
标题文字
标题文字
最多六个文字

带描述宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带边框宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带徽标宫格

标题文字
8
标题文字
13
标题五字内
NEW
标题五字内

可滑动宫格

标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字

02 组件样式

可传图标的宫格

分享
收藏
保存
编辑

卡片宫格

标题文字
描述文字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
"`; +exports[`ssr snapshot test > ssr test src/grid/_example/index.tsx 1`] = `"

Grid 宫格

用于功能入口布局,将页面或特定区域切分成若干等大的区块,形成若干功能入口。

01 组件类型

基础宫格

标题文字
标题文字
标题文字
标题文字
最多四个字
标题文字
标题文字
标题文字
最多五个字
标题文字
标题文字
最多六个文字

带描述宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带边框宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带徽标宫格

标题文字
8
标题文字
13
标题五字内
NEW
标题五字内

可滑动宫格

标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字

02 组件样式

可传图标的宫格

分享
收藏
保存
编辑

卡片宫格

标题文字
描述文字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
"`; exports[`ssr snapshot test > ssr test src/grid/_example/scroll.tsx 1`] = `"
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
"`; diff --git a/test/snap/__snapshots__/ssr.test.jsx.snap b/test/snap/__snapshots__/ssr.test.jsx.snap index ccfcde64..5663b425 100644 --- a/test/snap/__snapshots__/ssr.test.jsx.snap +++ b/test/snap/__snapshots__/ssr.test.jsx.snap @@ -4,6 +4,14 @@ exports[`ssr snapshot test > ssr test src/back-top/_example/base.tsx 1`] = `" ssr test src/back-top/_example/index.tsx 1`] = `"

BackTop 返回顶部

当页面过长往下滑动是会出现返回顶部的便捷操作,帮助用户快速回到页面顶部

形状

"`; +exports[`ssr snapshot test > ssr test src/badge/_example/base.tsx 1`] = `"
红点徽标
消息
数字徽标
消息
8
2
8
自定义徽标
NEW
"`; + +exports[`ssr snapshot test > ssr test src/badge/_example/index.tsx 1`] = `"

Badge 徽标

用于告知用户,该区域的状态变化或者待处理任务的数量。

01 组件类型

红点徽标
消息
数字徽标
消息
8
2
8
自定义徽标
NEW

02 组件样式

圆形徽标
2
方形徽标
2
气泡徽标
领积分
角标
单行标题
New

03 组件尺寸

Large
8
Middle
8
"`; + +exports[`ssr snapshot test > ssr test src/badge/_example/size.tsx 1`] = `"
Large
8
Middle
8
"`; + +exports[`ssr snapshot test > ssr test src/badge/_example/theme.tsx 1`] = `"
圆形徽标
2
方形徽标
2
气泡徽标
领积分
角标
单行标题
New
"`; + exports[`ssr snapshot test > ssr test src/button/_example/base.tsx 1`] = `"
"`; exports[`ssr snapshot test > ssr test src/button/_example/block.tsx 1`] = `"
"`; @@ -26,13 +34,13 @@ exports[`ssr snapshot test > ssr test src/button/_example/test.tsx 1`] = `"
exports[`ssr snapshot test > ssr test src/button/_example/theme.tsx 1`] = `"
"`; -exports[`ssr snapshot test > ssr test src/cell/_example/base.tsx 1`] = `"

Cell 单元格

一行内容/功能的垂直排列方式。一行项目左侧为主要内容展示区域,右侧可增加更多操作内容

01 类型

单行单元格

单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题

02

多行单元格

单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字

03 组件样式

卡片单元格

单行标题
单行标题
单行标题
"`; +exports[`ssr snapshot test > ssr test src/cell/_example/base.tsx 1`] = `"

Cell 单元格

一行内容/功能的垂直排列方式。一行项目左侧为主要内容展示区域,右侧可增加更多操作内容

01 类型

单行单元格

单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题

02

多行单元格

单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字

03 组件样式

卡片单元格

单行标题
单行标题
单行标题
"`; exports[`ssr snapshot test > ssr test src/cell/_example/group.tsx 1`] = `"
单行标题
单行标题
单行标题
"`; -exports[`ssr snapshot test > ssr test src/cell/_example/multiple.tsx 1`] = `"
单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字
"`; +exports[`ssr snapshot test > ssr test src/cell/_example/multiple.tsx 1`] = `"
单行标题
一段很长很长的内容文字
单行标题 *
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
16
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字
辅助信息
单行标题
一段很长很长的内容文字
单行标题
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行高度不定,长文本自动换行,该选项的描述是一段很长的内容
一段很长很长的内容文字,长文本自动换行,该选项的描述是一段很长的内容
多行带头像
一段很长很长的内容文字
多行带图片
一段很长很长的内容文字
"`; -exports[`ssr snapshot test > ssr test src/cell/_example/single.tsx 1`] = `"
单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题
"`; +exports[`ssr snapshot test > ssr test src/cell/_example/single.tsx 1`] = `"
单行标题
单行标题 *
单行标题
16
单行标题
单行标题
辅助信息
单行标题
"`; exports[`ssr snapshot test > ssr test src/divider/_example/base.tsx 1`] = `"
水平分割线
带文字水平分割线
垂直分割线
文字信息文字信息文字信息
"`; @@ -40,7 +48,7 @@ exports[`ssr snapshot test > ssr test src/divider/_example/index.tsx 1`] = `" ssr test src/divider/_example/theme.tsx 1`] = `"
虚线样式
"`; -exports[`ssr snapshot test > ssr test src/grid/_example/badge.tsx 1`] = `"
标题文字
8
标题文字
13
标题五字内
NEW
标题五字内
"`; +exports[`ssr snapshot test > ssr test src/grid/_example/badge.tsx 1`] = `"
标题文字
8
标题文字
13
标题五字内
NEW
标题五字内
"`; exports[`ssr snapshot test > ssr test src/grid/_example/base.tsx 1`] = `"
标题文字
标题文字
标题文字
标题文字
最多四个字
标题文字
标题文字
标题文字
最多五个字
标题文字
标题文字
最多六个文字
"`; @@ -52,7 +60,7 @@ exports[`ssr snapshot test > ssr test src/grid/_example/desc.tsx 1`] = `"
ssr test src/grid/_example/icon.tsx 1`] = `"
分享
收藏
保存
编辑
"`; -exports[`ssr snapshot test > ssr test src/grid/_example/index.tsx 1`] = `"

Grid 宫格

用于功能入口布局,将页面或特定区域切分成若干等大的区块,形成若干功能入口。

01 组件类型

基础宫格

标题文字
标题文字
标题文字
标题文字
最多四个字
标题文字
标题文字
标题文字
最多五个字
标题文字
标题文字
最多六个文字

带描述宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带边框宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带徽标宫格

标题文字
8
标题文字
13
标题五字内
NEW
标题五字内

可滑动宫格

标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字

02 组件样式

可传图标的宫格

分享
收藏
保存
编辑

卡片宫格

标题文字
描述文字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
"`; +exports[`ssr snapshot test > ssr test src/grid/_example/index.tsx 1`] = `"

Grid 宫格

用于功能入口布局,将页面或特定区域切分成若干等大的区块,形成若干功能入口。

01 组件类型

基础宫格

标题文字
标题文字
标题文字
标题文字
最多四个字
标题文字
标题文字
标题文字
最多五个字
标题文字
标题文字
最多六个文字

带描述宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带边框宫格

标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字

带徽标宫格

标题文字
8
标题文字
13
标题五字内
NEW
标题五字内

可滑动宫格

标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字

02 组件样式

可传图标的宫格

分享
收藏
保存
编辑

卡片宫格

标题文字
描述文字
标题文字
描述文字
标题文字
描述文字
最多六个文字
描述最多六字
标题文字
描述文字
标题文字
描述文字
"`; exports[`ssr snapshot test > ssr test src/grid/_example/scroll.tsx 1`] = `"
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
标题文字
"`; From 1969281833df9d891c9a3a5b19a8db97ac669d39 Mon Sep 17 00:00:00 2001 From: anlyyao Date: Thu, 22 Aug 2024 19:51:41 +0800 Subject: [PATCH 2/2] chore: update _common --- src/_common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_common b/src/_common index d42b7fc2..f1adcf08 160000 --- a/src/_common +++ b/src/_common @@ -1 +1 @@ -Subproject commit d42b7fc27b4e38a45ba28ff2ad50af060d8dd936 +Subproject commit f1adcf087ce845e27c6cedbdeb044a57130b7e8e