Похоже, что всплывающая подсказка события не настраивается в react-big-calendar
Поскольку у вас есть пользовательский компонент Event
, и если вы используете загрузчик, вы можете попытаться добиться этого, используя Наложение и Подсказка из react-bootstrap
.
Все становится сложнее, когда наложения / всплывающие подсказки закрываются, как только вы удаляетесь от целевого элемента ,
Поскольку ваша всплывающая подсказка содержит кнопки delete , edit , вам необходимо иметь некоторую логику, чтобы подсказка оставалась на экране и обрабатывать когда закрывать всплывающую подсказку.
Пример реализации ниже ..
Открывает всплывающую подсказку о событии при наведении курсора.
Закрывает всплывающую подсказку при нажатии кнопки закрытиявнутренняя всплывающая подсказка.
Закрывает всплывающую подсказку в любом месте за пределами всплывающей подсказки (включая цель).
Кстати, я не вижу это как хорошее решение, но может быть хорошим началом.
const IconStyle = {
cursor: "pointer"
};
const TooltipContent = ({ onClose, event }) => {
return (
<React.Fragment>
<FontAwesomeIcon
icon={faWindowClose}
className="pull-right"
style={IconStyle}
onClick={onClose}
/>
<div>{event.title}</div>
<div>Some other Info</div>
<Row>
<Button variant="light">Button 1</Button>
<Button variant="light">Button 2</Button>
</Row>
</React.Fragment>
);
};
function Event(event) {
const [showTooltip, setShowTooltip] = useState(false);
const closeTooltip = () => {
setShowTooltip(false);
};
const openTooltip = () => {
setShowTooltip(true);
};
const ref = useRef(null);
const getTarget = () => {
return ReactDOM.findDOMNode(ref.current);
};
return (
<div ref={ref}>
<span onMouseOver={openTooltip}>{event.title}</span>
<Overlay
rootClose
target={getTarget}
show={showTooltip}
placement="top"
onHide={closeTooltip}
>
<Tooltip id="test">
<TooltipContent event={event} onClose={closeTooltip} />
</Tooltip>
</Overlay>
</div>
);
}
Я добавил демонстрацию stackblitz в качестве комментария