-
-
Notifications
You must be signed in to change notification settings - Fork 268
/
Copy path-CTooltip-org.js
71 lines (58 loc) · 1.26 KB
/
-CTooltip-org.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import React, {useState} from 'react';
import classNames from 'classnames';
import PropTypes from 'prop-types';
import CTooltipPopoverWrapper from './CTooltipPopoverWrapper';
//component - CoreUI / CTooltip
const CTooltip = props=>{
let {
custom,
//
show,
toggle,
defaultOpen,
...attributes
} = props;
const [isOpen, setIsOpen] = useState(defaultOpen || false);
if (!custom){
const userToggle = toggle;
toggle = (e)=>{
setIsOpen(!isOpen);
if (userToggle)
userToggle(e);
}
show = isOpen;
}
// render
const popperClasses = classNames(
'tooltip',
'show',
props.className
);
const classes = classNames(
'tooltip-inner',
props.innerClassName
);
return (
<CTooltipPopoverWrapper
{...attributes}
toggle={toggle}
show={show}
className={popperClasses}
innerClassName={classes}
/>
);
}
CTooltip.propTypes = {
...CTooltipPopoverWrapper.propTypes,
custom: PropTypes.bool,
//
innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),
defaultOpen: PropTypes.bool
}
CTooltip.defaultProps = {
placement: 'top',
autohide: true,
placementPrefix: 'bs-tooltip',
trigger: 'hover focus',
};
export default CTooltip;