react-asc 25.2.13 → 25.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/Tooltip/Tooltip.d.ts +3 -0
- package/index.es.js +33 -11
- package/index.js +33 -11
- package/package.json +1 -1
|
@@ -2,5 +2,8 @@ import React from 'react';
|
|
|
2
2
|
export interface ITooltipProps extends React.ComponentProps<'div'> {
|
|
3
3
|
placement?: 'top' | 'bottom' | 'right' | 'left';
|
|
4
4
|
text?: string;
|
|
5
|
+
delay?: number;
|
|
6
|
+
isOpen?: boolean;
|
|
7
|
+
isShowClose?: boolean;
|
|
5
8
|
}
|
|
6
9
|
export declare const Tooltip: (props: ITooltipProps) => JSX.Element;
|
package/index.es.js
CHANGED
|
@@ -2019,13 +2019,25 @@ var styles$l = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","too
|
|
|
2019
2019
|
styleInject(css_248z$l);
|
|
2020
2020
|
|
|
2021
2021
|
const Tooltip = (props) => {
|
|
2022
|
-
const { children, text, placement = 'bottom' } = props;
|
|
2023
|
-
const [
|
|
2022
|
+
const { children, text, placement = 'bottom', isOpen = false, isShowClose = false, delay = 0 } = props;
|
|
2023
|
+
const [debounce, setDebounce] = useState(delay);
|
|
2024
|
+
const [open, setOpen] = useState(isOpen);
|
|
2025
|
+
const [show, setShow] = useState(isOpen);
|
|
2026
|
+
const [showClose, setShowClose] = useState(isShowClose);
|
|
2024
2027
|
const refChild = useRef();
|
|
2025
2028
|
const refTooltip = useRef();
|
|
2029
|
+
useDebounce(() => { setOpen(show); }, debounce, [show]);
|
|
2026
2030
|
useEffect(() => {
|
|
2027
|
-
|
|
2028
|
-
|
|
2031
|
+
setShow(isOpen);
|
|
2032
|
+
}, [isOpen]);
|
|
2033
|
+
useEffect(() => {
|
|
2034
|
+
setShowClose(isShowClose);
|
|
2035
|
+
}, [isShowClose]);
|
|
2036
|
+
useEffect(() => {
|
|
2037
|
+
setDebounce(delay);
|
|
2038
|
+
}, [delay]);
|
|
2039
|
+
useEffect(() => {
|
|
2040
|
+
if (open === true && refChild && refChild.current && refTooltip && refTooltip.current) {
|
|
2029
2041
|
createPopper(refChild.current, refTooltip.current, {
|
|
2030
2042
|
placement: placement,
|
|
2031
2043
|
modifiers: [
|
|
@@ -2036,21 +2048,31 @@ const Tooltip = (props) => {
|
|
|
2036
2048
|
]
|
|
2037
2049
|
});
|
|
2038
2050
|
}
|
|
2039
|
-
}, [
|
|
2051
|
+
}, [open]);
|
|
2040
2052
|
const handleMouseOver = () => {
|
|
2041
2053
|
setShow(true);
|
|
2042
2054
|
};
|
|
2043
2055
|
const handleMouseLeave = () => {
|
|
2044
2056
|
setShow(false);
|
|
2045
2057
|
};
|
|
2058
|
+
const handleFocus = () => {
|
|
2059
|
+
setShow(true);
|
|
2060
|
+
};
|
|
2061
|
+
const handleBlur = () => {
|
|
2062
|
+
setShow(false);
|
|
2063
|
+
};
|
|
2064
|
+
const handleClickClose = () => {
|
|
2065
|
+
setShow(false);
|
|
2066
|
+
};
|
|
2046
2067
|
return (React.createElement(React.Fragment, null,
|
|
2047
|
-
React.createElement("div", { className: styles$l.tooltipContainer,
|
|
2048
|
-
|
|
2049
|
-
onMouseLeave: handleMouseLeave,
|
|
2050
|
-
})),
|
|
2051
|
-
show && text &&
|
|
2068
|
+
React.createElement("div", { ref: refChild, className: styles$l.tooltipContainer, onMouseOver: handleMouseOver, onMouseLeave: handleMouseLeave, onFocus: handleFocus, onBlur: handleBlur }, children),
|
|
2069
|
+
open && text &&
|
|
2052
2070
|
React.createElement("div", { className: styles$l.tooltip, ref: refTooltip, id: "tooltip" },
|
|
2053
|
-
|
|
2071
|
+
React.createElement("div", { className: 'd-flex align-items-center' },
|
|
2072
|
+
text,
|
|
2073
|
+
showClose &&
|
|
2074
|
+
React.createElement(Icon, { className: 'ml-1', onClick: handleClickClose },
|
|
2075
|
+
React.createElement(TimesSolidIcon, null))),
|
|
2054
2076
|
React.createElement("div", { id: "arrow", "data-popper-arrow": true }))));
|
|
2055
2077
|
};
|
|
2056
2078
|
|
package/index.js
CHANGED
|
@@ -2028,13 +2028,25 @@ var styles$l = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","too
|
|
|
2028
2028
|
styleInject(css_248z$l);
|
|
2029
2029
|
|
|
2030
2030
|
const Tooltip = (props) => {
|
|
2031
|
-
const { children, text, placement = 'bottom' } = props;
|
|
2032
|
-
const [
|
|
2031
|
+
const { children, text, placement = 'bottom', isOpen = false, isShowClose = false, delay = 0 } = props;
|
|
2032
|
+
const [debounce, setDebounce] = React.useState(delay);
|
|
2033
|
+
const [open, setOpen] = React.useState(isOpen);
|
|
2034
|
+
const [show, setShow] = React.useState(isOpen);
|
|
2035
|
+
const [showClose, setShowClose] = React.useState(isShowClose);
|
|
2033
2036
|
const refChild = React.useRef();
|
|
2034
2037
|
const refTooltip = React.useRef();
|
|
2038
|
+
useDebounce(() => { setOpen(show); }, debounce, [show]);
|
|
2035
2039
|
React.useEffect(() => {
|
|
2036
|
-
|
|
2037
|
-
|
|
2040
|
+
setShow(isOpen);
|
|
2041
|
+
}, [isOpen]);
|
|
2042
|
+
React.useEffect(() => {
|
|
2043
|
+
setShowClose(isShowClose);
|
|
2044
|
+
}, [isShowClose]);
|
|
2045
|
+
React.useEffect(() => {
|
|
2046
|
+
setDebounce(delay);
|
|
2047
|
+
}, [delay]);
|
|
2048
|
+
React.useEffect(() => {
|
|
2049
|
+
if (open === true && refChild && refChild.current && refTooltip && refTooltip.current) {
|
|
2038
2050
|
core.createPopper(refChild.current, refTooltip.current, {
|
|
2039
2051
|
placement: placement,
|
|
2040
2052
|
modifiers: [
|
|
@@ -2045,21 +2057,31 @@ const Tooltip = (props) => {
|
|
|
2045
2057
|
]
|
|
2046
2058
|
});
|
|
2047
2059
|
}
|
|
2048
|
-
}, [
|
|
2060
|
+
}, [open]);
|
|
2049
2061
|
const handleMouseOver = () => {
|
|
2050
2062
|
setShow(true);
|
|
2051
2063
|
};
|
|
2052
2064
|
const handleMouseLeave = () => {
|
|
2053
2065
|
setShow(false);
|
|
2054
2066
|
};
|
|
2067
|
+
const handleFocus = () => {
|
|
2068
|
+
setShow(true);
|
|
2069
|
+
};
|
|
2070
|
+
const handleBlur = () => {
|
|
2071
|
+
setShow(false);
|
|
2072
|
+
};
|
|
2073
|
+
const handleClickClose = () => {
|
|
2074
|
+
setShow(false);
|
|
2075
|
+
};
|
|
2055
2076
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
2056
|
-
React__default["default"].createElement("div", { className: styles$l.tooltipContainer,
|
|
2057
|
-
|
|
2058
|
-
onMouseLeave: handleMouseLeave,
|
|
2059
|
-
})),
|
|
2060
|
-
show && text &&
|
|
2077
|
+
React__default["default"].createElement("div", { ref: refChild, className: styles$l.tooltipContainer, onMouseOver: handleMouseOver, onMouseLeave: handleMouseLeave, onFocus: handleFocus, onBlur: handleBlur }, children),
|
|
2078
|
+
open && text &&
|
|
2061
2079
|
React__default["default"].createElement("div", { className: styles$l.tooltip, ref: refTooltip, id: "tooltip" },
|
|
2062
|
-
|
|
2080
|
+
React__default["default"].createElement("div", { className: 'd-flex align-items-center' },
|
|
2081
|
+
text,
|
|
2082
|
+
showClose &&
|
|
2083
|
+
React__default["default"].createElement(Icon, { className: 'ml-1', onClick: handleClickClose },
|
|
2084
|
+
React__default["default"].createElement(TimesSolidIcon, null))),
|
|
2063
2085
|
React__default["default"].createElement("div", { id: "arrow", "data-popper-arrow": true }))));
|
|
2064
2086
|
};
|
|
2065
2087
|
|