added Tooltip component
This commit is contained in:
parent
5e76d6d865
commit
d0111e7741
4 changed files with 51 additions and 21 deletions
|
@ -2,8 +2,8 @@ import React from 'react';
|
|||
import PropTypes from 'prop-types';
|
||||
import './IconButton.scss';
|
||||
|
||||
import Tippy from '@tippyjs/react';
|
||||
import RawIcon from '../system-icons/RawIcon';
|
||||
import Tooltip from '../tooltip/Tooltip';
|
||||
import { blurOnBubbling } from './script';
|
||||
import Text from '../text/Text';
|
||||
|
||||
|
@ -17,15 +17,9 @@ const IconButton = React.forwardRef(({
|
|||
variant, size, type,
|
||||
tooltip, tooltipPlacement, src, onClick,
|
||||
}, ref) => (
|
||||
<Tippy
|
||||
content={<Text variant="b2">{tooltip}</Text>}
|
||||
className="ic-btn-tippy"
|
||||
touch="hold"
|
||||
arrow={false}
|
||||
maxWidth={250}
|
||||
<Tooltip
|
||||
placement={tooltipPlacement}
|
||||
delay={[0, 0]}
|
||||
duration={[100, 0]}
|
||||
content={<Text variant="b2">{tooltip}</Text>}
|
||||
>
|
||||
<button
|
||||
ref={ref}
|
||||
|
@ -36,7 +30,7 @@ const IconButton = React.forwardRef(({
|
|||
>
|
||||
<RawIcon size={size} src={src} />
|
||||
</button>
|
||||
</Tippy>
|
||||
</Tooltip>
|
||||
));
|
||||
|
||||
IconButton.defaultProps = {
|
||||
|
|
|
@ -32,14 +32,3 @@
|
|||
@include focus(var(--bg-surface-hover));
|
||||
@include state.active(var(--bg-surface-active));
|
||||
}
|
||||
|
||||
.ic-btn-tippy {
|
||||
padding: var(--sp-extra-tight) var(--sp-normal);
|
||||
background-color: var(--bg-tooltip);
|
||||
border-radius: var(--bo-radius);
|
||||
box-shadow: var(--bs-popup);
|
||||
|
||||
.text {
|
||||
color: var(--tc-tooltip);
|
||||
}
|
||||
}
|
37
src/app/atoms/tooltip/Tooltip.jsx
Normal file
37
src/app/atoms/tooltip/Tooltip.jsx
Normal file
|
@ -0,0 +1,37 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import './Tooltip.scss';
|
||||
import Tippy from '@tippyjs/react';
|
||||
|
||||
function Tooltip({
|
||||
className, placement, content, children,
|
||||
}) {
|
||||
return (
|
||||
<Tippy
|
||||
content={content}
|
||||
className={`tooltip ${className}`}
|
||||
touch="hold"
|
||||
arrow={false}
|
||||
maxWidth={250}
|
||||
placement={placement}
|
||||
delay={[0, 0]}
|
||||
duration={[100, 0]}
|
||||
>
|
||||
{children}
|
||||
</Tippy>
|
||||
);
|
||||
}
|
||||
|
||||
Tooltip.defaultProps = {
|
||||
placement: 'top',
|
||||
className: '',
|
||||
};
|
||||
|
||||
Tooltip.propTypes = {
|
||||
className: PropTypes.string,
|
||||
placement: PropTypes.string,
|
||||
content: PropTypes.node.isRequired,
|
||||
children: PropTypes.node.isRequired,
|
||||
};
|
||||
|
||||
export default Tooltip;
|
10
src/app/atoms/tooltip/Tooltip.scss
Normal file
10
src/app/atoms/tooltip/Tooltip.scss
Normal file
|
@ -0,0 +1,10 @@
|
|||
.tooltip {
|
||||
padding: var(--sp-extra-tight) var(--sp-normal);
|
||||
background-color: var(--bg-tooltip);
|
||||
border-radius: var(--bo-radius);
|
||||
box-shadow: var(--bs-popup);
|
||||
|
||||
.text {
|
||||
color: var(--tc-tooltip);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue