@sanity/ui 1.8.3 → 1.9.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/dist/index.esm.js
CHANGED
|
@@ -7027,19 +7027,21 @@ const Tooltip = forwardRef(function Tooltip2(props, ref) {
|
|
|
7027
7027
|
const closeDelayProp = typeof delay === "number" ? delay : (delay == null ? void 0 : delay.close) || 0;
|
|
7028
7028
|
const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp;
|
|
7029
7029
|
const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp;
|
|
7030
|
-
const handleIsOpenChange = useCallback(open => {
|
|
7030
|
+
const handleIsOpenChange = useCallback((open, immediate) => {
|
|
7031
7031
|
if (isInsideGroup) {
|
|
7032
7032
|
if (open) {
|
|
7033
|
-
|
|
7034
|
-
delayGroupContext.
|
|
7033
|
+
const groupedOpenDelay = immediate ? 0 : openDelay;
|
|
7034
|
+
delayGroupContext.setIsGroupActive(open, groupedOpenDelay);
|
|
7035
|
+
delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay);
|
|
7035
7036
|
} else {
|
|
7036
7037
|
const minimumGroupDeactivateDelay = 200;
|
|
7037
7038
|
const groupDeactivateDelay = closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay;
|
|
7038
7039
|
delayGroupContext.setIsGroupActive(open, groupDeactivateDelay);
|
|
7039
|
-
delayGroupContext.setOpenTooltipId(null, closeDelay);
|
|
7040
|
+
delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay);
|
|
7040
7041
|
}
|
|
7041
7042
|
} else {
|
|
7042
|
-
|
|
7043
|
+
const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay;
|
|
7044
|
+
setIsOpen(open, standaloneDelay);
|
|
7043
7045
|
}
|
|
7044
7046
|
}, [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen]);
|
|
7045
7047
|
const handleBlur = useCallback(() => handleIsOpenChange(false), [handleIsOpenChange]);
|
|
@@ -7068,6 +7070,18 @@ const Tooltip = forwardRef(function Tooltip2(props, ref) {
|
|
|
7068
7070
|
if (!content) handleIsOpenChange(false);
|
|
7069
7071
|
}, [content, handleIsOpenChange]);
|
|
7070
7072
|
useEffect(() => refs.setReference(referenceElement), [referenceElement, refs]);
|
|
7073
|
+
useEffect(() => {
|
|
7074
|
+
if (!showTooltip) return;
|
|
7075
|
+
function handleWindowKeyDown(event) {
|
|
7076
|
+
if (event.key === "Escape") {
|
|
7077
|
+
handleIsOpenChange(false, true);
|
|
7078
|
+
}
|
|
7079
|
+
}
|
|
7080
|
+
window.addEventListener("keydown", handleWindowKeyDown);
|
|
7081
|
+
return () => {
|
|
7082
|
+
window.removeEventListener("keydown", handleWindowKeyDown);
|
|
7083
|
+
};
|
|
7084
|
+
}, [handleIsOpenChange, showTooltip]);
|
|
7071
7085
|
const setArrow = useCallback(arrowEl => {
|
|
7072
7086
|
arrowRef.current = arrowEl;
|
|
7073
7087
|
update();
|