chore: 修复 DropDownButton 在 hover 状态下不好点击按钮的问题 (#3690)

This commit is contained in:
吴多益 2022-03-03 18:57:35 +08:00 committed by GitHub
parent 6dcf81706d
commit 42c658178e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 4 deletions

View File

@ -696,7 +696,7 @@ export const examples = [
{
label: 'APP 多页应用',
icon: 'fa fa-cubes',
path: '/app/',
path: '/examples/app/',
component: () => {
// gh-pages
if (/^\/amis/.test(window.location.pathname)) {

View File

@ -147,12 +147,14 @@ export default class DropDownButton extends React.Component<
};
target: any;
timer: ReturnType<typeof setTimeout>;
constructor(props: DropDownButtonProps) {
super(props);
this.open = this.open.bind(this);
this.close = this.close.bind(this);
this.toogle = this.toogle.bind(this);
this.keepOpen = this.keepOpen.bind(this);
this.domRef = this.domRef.bind(this);
}
@ -183,9 +185,17 @@ export default class DropDownButton extends React.Component<
}
close() {
this.setState({
isOpened: false
});
this.timer = setTimeout(() => {
this.setState({
isOpened: false
});
}, 200);
}
keepOpen() {
if (this.timer) {
clearTimeout(this.timer);
}
}
renderButton(
@ -260,6 +270,7 @@ export default class DropDownButton extends React.Component<
menuClassName
)}
onClick={closeOnClick ? this.close : noop}
onMouseEnter={this.keepOpen}
ref={ref}
>
{children