diff --git a/src/packages/cell/cell.scss b/src/packages/cell/cell.scss index 8182ff25b8..ab271e5265 100644 --- a/src/packages/cell/cell.scss +++ b/src/packages/cell/cell.scss @@ -35,4 +35,24 @@ font-size: $cell-extra-font-size; color: $cell-extra-color; } + &:active::before { + opacity: 0.1; + } + &-clickable { + cursor: pointer; + &::before { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 100%; + background-color: $black; + border: inherit; + border-color: $black; + border-radius: inherit; + transform: translate(-50%, -50%); + opacity: 0; + content: ' '; + } + } } diff --git a/src/packages/cell/cell.taro.tsx b/src/packages/cell/cell.taro.tsx index 808b053c29..6d8164c816 100644 --- a/src/packages/cell/cell.taro.tsx +++ b/src/packages/cell/cell.taro.tsx @@ -10,6 +10,7 @@ export interface CellProps extends BasicComponent { extra: ReactNode radius: string | number align: 'flex-start' | 'center' | 'flex-end' + clickable: boolean onClick: (event: React.MouseEvent) => void } @@ -20,6 +21,7 @@ const defaultProps = { extra: null, radius: '6px', align: 'flex-start', + clickable: false, onClick: (event: React.MouseEvent) => {}, } as CellProps @@ -39,6 +41,7 @@ export const Cell: FunctionComponent< align, className, style, + clickable, ...rest } = { ...defaultProps, @@ -63,7 +66,7 @@ export const Cell: FunctionComponent< } return (
handleClick(event)} style={baseStyle} {...rest} diff --git a/src/packages/cell/cell.tsx b/src/packages/cell/cell.tsx index 23e65bf181..685bff634b 100644 --- a/src/packages/cell/cell.tsx +++ b/src/packages/cell/cell.tsx @@ -10,6 +10,7 @@ export interface CellProps extends BasicComponent { extra: ReactNode radius: string | number align: 'flex-start' | 'center' | 'flex-end' + clickable: boolean onClick: (event: React.MouseEvent) => void } @@ -20,6 +21,7 @@ const defaultProps = { extra: null, radius: '6px', align: 'flex-start', + clickable: false, onClick: (event: React.MouseEvent) => {}, } as CellProps @@ -31,6 +33,7 @@ export const Cell: FunctionComponent< const ctx = useContext(CellGroupContext) const { children, + clickable, onClick, title, description, @@ -63,7 +66,7 @@ export const Cell: FunctionComponent< } return (
handleClick(event)} style={baseStyle} {...rest} diff --git a/src/packages/cell/demos/h5/demo1.tsx b/src/packages/cell/demos/h5/demo1.tsx index 2fffd178e6..b38ecf4078 100644 --- a/src/packages/cell/demos/h5/demo1.tsx +++ b/src/packages/cell/demos/h5/demo1.tsx @@ -12,6 +12,7 @@ const Demo1 = () => { diff --git a/src/packages/cell/demos/taro/demo1.tsx b/src/packages/cell/demos/taro/demo1.tsx index 1531b94e31..52d0a0117f 100644 --- a/src/packages/cell/demos/taro/demo1.tsx +++ b/src/packages/cell/demos/taro/demo1.tsx @@ -13,6 +13,7 @@ const Demo1 = () => { ) => testClick(event)} diff --git a/src/packages/cell/doc.en-US.md b/src/packages/cell/doc.en-US.md index 955633df35..681e983cc3 100644 --- a/src/packages/cell/doc.en-US.md +++ b/src/packages/cell/doc.en-US.md @@ -91,6 +91,7 @@ The 'divider' property allows you to keep the lower edge from being displayed be | extra | Extra | `ReactNode` | `-` | | radius | Corner radius | `string` | `6px` | | align | Alignment in the vertical direction | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | click style feedback | `boolean` | `false` | | onClick | Emitted when cell is clicked | `onClick: (event: React.MouseEvent) => void` | `false` | ## Theming diff --git a/src/packages/cell/doc.md b/src/packages/cell/doc.md index b517a21933..d8bb8df9c1 100644 --- a/src/packages/cell/doc.md +++ b/src/packages/cell/doc.md @@ -93,6 +93,7 @@ import { Cell } from '@nutui/nutui-react' | extra | 右侧描述 | `ReactNode` | `-` | | radius | 圆角半径 | `string` | `6px` | | align | 纵轴方向上的对齐方式 | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | 点击的样式反馈 | `boolean` | `false` | | onClick | 点击事件 | `onClick: (event: React.MouseEvent) => void` | `false` | ## 主题定制 diff --git a/src/packages/cell/doc.taro.md b/src/packages/cell/doc.taro.md index 6531161c3b..a9da543d04 100644 --- a/src/packages/cell/doc.taro.md +++ b/src/packages/cell/doc.taro.md @@ -92,6 +92,7 @@ import { Cell } from '@nutui/nutui-react-taro' | extra | 右侧描述 | `ReactNode` | `-` | | radius | 圆角半径 | `string` | `6px` | | align | 纵轴方向上的对齐方式 | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | 点击的样式反馈 | `boolean` | `false` | | onClick | 点击事件 | `onClick: (event: React.MouseEvent) => void` | `false` | ## 主题定制 diff --git a/src/packages/cell/doc.zh-TW.md b/src/packages/cell/doc.zh-TW.md index f43244ac0d..f061f8b1cd 100644 --- a/src/packages/cell/doc.zh-TW.md +++ b/src/packages/cell/doc.zh-TW.md @@ -93,6 +93,7 @@ import { Cell } from '@nutui/nutui-react' | extra | 右側描述 | `ReactNode` | `-` | | radius | 圓角半徑 | `string` | `6px` | | align | 縱軸方向上的對齊方式 | `flex-start` \| `center` \| `flex-end` | `flex-start` | +| clickable | 點擊的樣式反饋 | `boolean` | `false` | | onClick | 點擊事件 | `onClick: (event: React.MouseEvent) => void` | `false` | ## 主題定製