1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/open-hand-choerodon-ui

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
TextFieldGroup.tsx 1.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
huihuawk Отправлено 3 лет назад 063096a
import React, { FocusEventHandler, FunctionComponent, ReactNode, useEffect, useRef } from 'react';
import classNames from 'classnames';
export interface TextFieldGroupProps {
prefixCls?: string;
onBlur?: FocusEventHandler<any>;
children?: ReactNode;
className?: string;
}
const TextFieldGroup: FunctionComponent<TextFieldGroupProps> = ({ prefixCls, onBlur, children, className, ...otherProps }) => {
const ref = useRef<HTMLDivElement | null>(null);
const selfPrefixCls = `${prefixCls}-group-wrapper`;
useEffect(() => {
const { current } = ref;
if (current && onBlur) {
const handleMousedown = (e) => {
const { target } = e;
if (!e.defaultPrevented && !current.contains(target)) {
onBlur(e);
}
};
document.addEventListener('mousedown', handleMousedown, false);
return () => {
document.removeEventListener('mousedown', handleMousedown, false);
};
}
}, [onBlur, ref]);
return (
<div ref={ref} {...otherProps} className={classNames(selfPrefixCls, className)}>
{children}
</div>
);
};
TextFieldGroup.displayName = 'TextFieldGroup';
export default TextFieldGroup;

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/open-hand-choerodon-ui.git
git@gitlife.ru:oschina-mirror/open-hand-choerodon-ui.git
oschina-mirror
open-hand-choerodon-ui
open-hand-choerodon-ui
master