Skip to content

Commit 443f356

Browse files
nullptr-zjaywcjlovegssggssgcuilanxin
authoredMar 23, 2022
feat(DateInput): 添加autoClose自动隐藏弹层API #660 #665 (#705)
* chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * chore: update workflows config. * docs(SearchTree): 文档整理 * doc(Tag): 修复文档示例错误 (#599) #598 修复 * Revert "doc(Tag): 修复文档示例错误 (#599)" (#600) * doc(Tag): 修复文档示例错误 (#599) #598 修复 * Revert "doc(Tag): 修复文档示例错误 (#599)" (#600) * 暂存 * clean:无效代码 * feat(Tabs): 选项卡过多,超过宽度时,收缩超出部分 #559 (#626) * fix(SearchTree): 修复数字key为0导致无法选中问题 * fix(Drawer): 修复层级问题,Dropdown被遮挡 #620 * revert:撤销 * fix(Drawer): 修复层级问题,Dropdown被遮挡 #620 * feat(SearchTree): 操作流程优化 #629 #631 * chore(Form): Select 跟Input 在表单中使用,错误样式统一 #622 (#628) * fix react-search-tree: remove remark * style(Tabs): 收缩菜单优化 * clean:删除调试代码 * chore: 更改'提交问题'链接地址 * fix(SearchSelect): 修复单选模式无法显示初始lable问题 & 文档补全 * feat(SearchSelect): 和SearchTree统一操作流程 * fix(SearchSelect): 修复单选模式无法显示初始lable问题 & 文档补全 * feat(SearchSelect): 和SearchTree统一操作流程 * docs(FileInput): 补全示例文档 #642 * fix(SearchTree): 修复数字key无法被选中问题&增加示例文档 * fix(SearchTree): 修复数字key无法被选中问题&增加示例文档 * fix(Tree): 节点key为0时children无法渲染 #619 * style(Progress): 进度起始和末尾圆角溢出 * style(Progress): 进度起始和末尾圆角溢出 * fix(SearchSelect): 清空操作不再展开下拉选项&文档补全 * fix(SearchSelect): 清空操作不再展开下拉选项&文档补全 * fix(Popover): 修复children为Icon弹窗无法准确定位问题 #639 * docs(Popover): 文档格式化 * fix(SearchSelect): 修复form在没有initValue情况默认赋值了空字符串问题 * feat(Transfer): 增加双栏穿梭选择框 * 暂存 * feat(Transfer): 增加选项搜索功能 * chore: 依赖撤销 * chore:transfer组件发布 * fix(Transfer): 选项为多层tree时总数统计错误 * docs(Transfer): 文档与菜单统一名称 * docs(Steps):示例文档错误 * style(Transfer): 添加穿梭箭头边框样式 * feat(Transfer): 增加选项栏全选功能 * style:样式调整 * faeat(Transfer): 添加Tree节点多选支持 * style(Transfer): 添加选中样式 * fix(Transfer): 潜在bug * fix(Transfer): 修复潜在BUG * style(Tree): Tree没有子节点时展开箭头不再占位 #641 * fix(Tree): 被隐藏(hideNode)的子节点,勾选父节点时,不再选中 * fix(Transfer): 修复Map对象引用拷贝导致的BUG * fix(SearchSelect): 样式调整 #652 * faeat(Carousel): 增加走马灯组件Carousel * clean:删除多余包引用 * chore: 添加发布代码 * fix: 代码格式调整 * docs: 文字描述错误 * fix(SearchSelect): 修复禁用后任然可以删除问题 * feat(Carousel):滚动效果总是从左向右滚动 * docs:描述错误 * fix(Carousel): 添加ref类型 * fix(SearchTree): 修复禁用后可以删问题 * fix(FileInput): 隐藏原生input file提示文字 #700 * fix(Popover): children为Icon定位错误问题 * feat(Carousel): 增加竖向滚动功能 * upd(DateInput): 添加autoClose自动隐藏弹层API #660 Co-authored-by: jaywcjlove <398188662@qq.com> Co-authored-by: gssggssg <490104722@qq.com> Co-authored-by: 小弟调调™ <kennyiseeyou@gmail.com> Co-authored-by: 崔兰鑫 <1192065030@qq.com>
1 parent cd312ac commit 443f356

File tree

2 files changed

+70
-32
lines changed

2 files changed

+70
-32
lines changed
 

‎packages/react-date-input/README.md

+62-32
Original file line numberDiff line numberDiff line change
@@ -26,40 +26,41 @@ function Demo () {
2626

2727
const [dataRange,dataRangeSet] =React.useState(['2022-02-25 15:06:24','2022-02-27 14:47:32'])
2828

29-
function onChange(selectedDate,dataRange) {
29+
function onChange(selectedDate,dataRange) {
3030
console.log('selectedDate',selectedDate,dataRange)
3131
}
32-
return (
33-
<div>
34-
<Row gutter={10} style={{ maxWidth: 360,marginBottom:10 }}>
35-
<Col fixed>
36-
<DateInput
37-
value={new Date()}
38-
datePickerProps={{ todayButton: '今天' }}
39-
onChange={onChange}
40-
/>
41-
</Col>
42-
<Col>
43-
<DateInput
44-
value={new Date()}
45-
disabled
46-
onChange={onChange}
47-
/>
48-
</Col>
49-
</Row>
50-
<Row gutter={10}>
51-
<Col>
52-
<DateInputRange
53-
bodyStyle={{width:350}}
54-
format="YYYY/MM/DD HH:mm:ss"
55-
value={dataRange}
56-
datePickerProps={{ todayButton: '今天',showTime:true }}
57-
onChange={onChange}
58-
/>
59-
</Col>
60-
</Row>
61-
</div>
62-
)
32+
33+
return (
34+
<div>
35+
<Row gutter={10} style={{ maxWidth: 360,marginBottom:10 }}>
36+
<Col fixed>
37+
<DateInput
38+
value={new Date()}
39+
datePickerProps={{ todayButton: '今天' }}
40+
onChange={onChange}
41+
/>
42+
</Col>
43+
<Col>
44+
<DateInput
45+
value={new Date()}
46+
disabled
47+
onChange={onChange}
48+
/>
49+
</Col>
50+
</Row>
51+
<Row gutter={10}>
52+
<Col>
53+
<DateInputRange
54+
bodyStyle={{width:350}}
55+
format="YYYY/MM/DD HH:mm:ss"
56+
value={dataRange}
57+
datePickerProps={{ todayButton: '今天',showTime:true }}
58+
onChange={onChange}
59+
/>
60+
</Col>
61+
</Row>
62+
</div>
63+
)
6364
}
6465
ReactDOM.render(<Demo />, _mount_);
6566
```
@@ -196,6 +197,34 @@ class Demo extends React.Component {
196197
ReactDOM.render(<Demo />, _mount_);
197198
```
198199

200+
## 自动隐藏弹层
201+
202+
<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->
203+
```jsx
204+
import React from 'react';
205+
import ReactDOM from 'react-dom';
206+
import { DateInput } from 'uiw';
207+
208+
class Demo extends React.Component {
209+
onChange(selectedDate) {
210+
console.log('selectedDate:', selectedDate);
211+
}
212+
render() {
213+
return (
214+
<div style={{ maxWidth: 200 }}>
215+
<DateInput
216+
autoClose={true}
217+
format="YYYY/MM/DD HH:mm:ss"
218+
datePickerProps={{ showTime: true, todayButton: '今天' }}
219+
onChange={this.onChange.bind(this)}
220+
/>
221+
</div>
222+
)
223+
}
224+
}
225+
ReactDOM.render(<Demo />, _mount_);
226+
```
227+
199228
## Props
200229

201230
| 参数 | 说明 | 类型 | 默认值 |
@@ -208,6 +237,7 @@ ReactDOM.render(<Demo />, _mount_);
208237
| popoverProps | 将参数传递给 [`<Popover>`](#/components/popover) 组件 | Object | - |
209238
| datePickerProps | 将参数传递给 [`<DatePicker>`](#/components/date-picker) 组件 | Object | - |
210239
| disabled | 组件 [`<Input>`](#/components/input) 的属性,禁用日历 | Boolean | - |
240+
| autoClose | 是否自动关闭弹层 | Boolean | false |
211241

212242
组件 `DateInput` 继承 `<Input>` 组件,更多属性文档请参考 [`<Input>`](#/components/input)
213243

‎packages/react-date-input/src/index.tsx

+8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export interface DateInputProps extends IProps, Omit<InputProps, 'onChange' | 'v
1515
format?: string;
1616
allowClear?: boolean;
1717
onChange?: (selectedDate?: Date) => void;
18+
autoClose?: boolean;
1819
}
1920

2021
export default function DateInput(props: DateInputProps) {
@@ -24,6 +25,7 @@ export default function DateInput(props: DateInputProps) {
2425
popoverProps,
2526
datePickerProps,
2627
allowClear = true,
28+
autoClose = false,
2729
format = 'YYYY/MM/DD',
2830
onChange,
2931
...inputProps
@@ -40,6 +42,7 @@ export default function DateInput(props: DateInputProps) {
4042
}, [props.value]);
4143

4244
function handleChange(cdate?: Date) {
45+
autoClose && setIsOpen(false);
4346
setDate(cdate);
4447
onChange && onChange(cdate);
4548
}
@@ -48,11 +51,16 @@ export default function DateInput(props: DateInputProps) {
4851
<Icon className={`${prefixCls}-close-btn`} onClick={() => handleChange(undefined)} type="close" />
4952
);
5053
}
54+
55+
const [isOpen, setIsOpen] = useState(false);
56+
5157
return (
5258
<Popover
5359
trigger="focus"
5460
placement="bottomLeft"
5561
autoAdjustOverflow
62+
isOpen={isOpen}
63+
onVisibleChange={(open) => setIsOpen(open)}
5664
{...popoverProps}
5765
content={
5866
<DatePicker

0 commit comments

Comments
 (0)
Please sign in to comment.