Skip to content

Commit 9c1dfc0

Browse files
committed
fix Mentions not hide when mentions lose focuse
fix ant-design/ant-design#18921
1 parent 331757d commit 9c1dfc0

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

src/DropdownMenu.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class DropdownMenu extends React.Component<DropdownMenuProps, {}> {
1919
setActiveIndex,
2020
selectOption,
2121
onFocus,
22+
onBlur,
2223
}: MentionsContextProps) => {
2324
const { prefixCls, options } = this.props;
2425
const activeOption = options[activeIndex] || {};
@@ -32,6 +33,7 @@ class DropdownMenu extends React.Component<DropdownMenuProps, {}> {
3233
selectOption(option);
3334
}}
3435
onFocus={onFocus}
36+
onBlur={onBlur}
3537
>
3638
{options.map((option, index) => {
3739
const { value, disabled, children, className, style } = option;

src/Mentions.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,10 @@ class Mentions extends React.Component<MentionsProps, MentionsState> {
219219
this.onFocus();
220220
};
221221

222+
public onDropdownBlur = () => {
223+
this.onBlur();
224+
};
225+
222226
public onFocus = (event?: React.FocusEvent<HTMLTextAreaElement>) => {
223227
window.clearTimeout(this.focusId);
224228
const { isFocus } = this.state;
@@ -229,7 +233,7 @@ class Mentions extends React.Component<MentionsProps, MentionsState> {
229233
this.setState({ isFocus: true });
230234
};
231235

232-
public onBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {
236+
public onBlur = (event?: React.FocusEvent<HTMLTextAreaElement>) => {
233237
this.focusId = window.setTimeout(() => {
234238
const { onBlur } = this.props;
235239
this.setState({ isFocus: false });
@@ -373,6 +377,7 @@ class Mentions extends React.Component<MentionsProps, MentionsState> {
373377
setActiveIndex: this.setActiveIndex,
374378
selectOption: this.selectOption,
375379
onFocus: this.onDropdownFocus,
380+
onBlur: this.onDropdownBlur,
376381
}}
377382
>
378383
<KeywordTrigger

src/MentionsContext.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export interface MentionsContextProps {
88
activeIndex: number;
99
setActiveIndex: (index: number) => void;
1010
selectOption: (option: OptionProps) => void;
11-
onFocus: () => void;
11+
onFocus: React.FocusEventHandler<HTMLElement>;
12+
onBlur: React.FocusEventHandler<HTMLElement>;
1213
}
1314

1415
// We will never use default, here only to fix TypeScript warning

0 commit comments

Comments
 (0)