Не уверен, где должно находиться содержимое всплывающего окна (я предполагаю, что getShortName()
просто показывает содержимое кнопки), однако с помощью приведенного ниже решения вы можете решить проблему независимо от его структуры. Если у вас есть span
или что-то еще внутри в качестве текста всплывающего окна / всплывающей подсказки, его можно решить следующим образом:
function Item ({item}: Props) { //this displays the button like components in picture
return(
<Wrapper>
{getShortName(item)}
<span id='popupOrTooltip'>Whatever you like</span>
</Wrapper>
);
}
const Wrapper = styled(Icon)`
z-index: 1;
font-size: 14px;
`;
const Icon = styled.div<Props>`
width: ${p => (p.size ? `${p.size}px` : '20px')};
height: ${p => (p.size ? `${p.size}px` : '20px')};
flex-shrink: 0;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
& > span {
opacity: 0;
visibility: hidden;
}
&:hover > span {
opacity: 1;
visibility: visible;
}
`;
Оператор &
взят из SASS / S CSS, что означает родительский selector, :hover
- это псевдоним, если элемент селектора завис, >
означает прямой дочерний элемент (ren).