UNPKG

@kiwicom/smart-faq

Version:

85 lines (77 loc) 1.76 kB
// @flow import * as React from 'react'; import classNames from 'classnames'; import Tooltip from './Tooltip'; export type Props = {| content: React.Node, placement: 'top' | 'right' | 'bottom' | 'left', mobilePlacement: | 'sm-top' | 'sm-right' | 'sm-bottom' | 'sm-left' | 'sm-left-top' | 'sm-right-top', children?: React.Node, className?: string, open?: boolean, |}; const HelpTooltip = ({ content, children, placement, mobilePlacement, className, open, }: Props) => { const tooltipClassNames = classNames('HelpTooltip', placement, className, { _visible: open, }); return ( <div className={tooltipClassNames} style={{ display: 'flex', alignItems: 'content' }} > <div className="HelpTooltip-content">{children}</div> <Tooltip open={open} placement={placement} placementMobile={mobilePlacement} mobileArrow={false} > {content} </Tooltip> <style jsx> {` .HelpTooltip { position relative; display inline-block; vertical-align middle; } .HelpTooltip .HelpTooltip-content { display inline-block; } .HelpTooltip .HelpTooltip-content:after { overflow hidden; } .HelpTooltip .Tooltip { z-index 7000; animation fadein .2s; } // fix not to overlay other elements .HelpTooltip .Tooltip.out { pointer-events none; } .HelpTooltip .Tooltip.bottom { top 100%; } `} </style> </div> ); }; HelpTooltip.defaultProps = { placement: 'bottom', mobilePlacement: 'sm-left', }; export default HelpTooltip;