@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.js
CHANGED
|
@@ -7040,19 +7040,21 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
|
|
|
7040
7040
|
const closeDelayProp = typeof delay === "number" ? delay : (delay == null ? void 0 : delay.close) || 0;
|
|
7041
7041
|
const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp;
|
|
7042
7042
|
const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp;
|
|
7043
|
-
const handleIsOpenChange = react.useCallback(open => {
|
|
7043
|
+
const handleIsOpenChange = react.useCallback((open, immediate) => {
|
|
7044
7044
|
if (isInsideGroup) {
|
|
7045
7045
|
if (open) {
|
|
7046
|
-
|
|
7047
|
-
delayGroupContext.
|
|
7046
|
+
const groupedOpenDelay = immediate ? 0 : openDelay;
|
|
7047
|
+
delayGroupContext.setIsGroupActive(open, groupedOpenDelay);
|
|
7048
|
+
delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay);
|
|
7048
7049
|
} else {
|
|
7049
7050
|
const minimumGroupDeactivateDelay = 200;
|
|
7050
7051
|
const groupDeactivateDelay = closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay;
|
|
7051
7052
|
delayGroupContext.setIsGroupActive(open, groupDeactivateDelay);
|
|
7052
|
-
delayGroupContext.setOpenTooltipId(null, closeDelay);
|
|
7053
|
+
delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay);
|
|
7053
7054
|
}
|
|
7054
7055
|
} else {
|
|
7055
|
-
|
|
7056
|
+
const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay;
|
|
7057
|
+
setIsOpen(open, standaloneDelay);
|
|
7056
7058
|
}
|
|
7057
7059
|
}, [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen]);
|
|
7058
7060
|
const handleBlur = react.useCallback(() => handleIsOpenChange(false), [handleIsOpenChange]);
|
|
@@ -7081,6 +7083,18 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
|
|
|
7081
7083
|
if (!content) handleIsOpenChange(false);
|
|
7082
7084
|
}, [content, handleIsOpenChange]);
|
|
7083
7085
|
react.useEffect(() => refs.setReference(referenceElement), [referenceElement, refs]);
|
|
7086
|
+
react.useEffect(() => {
|
|
7087
|
+
if (!showTooltip) return;
|
|
7088
|
+
function handleWindowKeyDown(event) {
|
|
7089
|
+
if (event.key === "Escape") {
|
|
7090
|
+
handleIsOpenChange(false, true);
|
|
7091
|
+
}
|
|
7092
|
+
}
|
|
7093
|
+
window.addEventListener("keydown", handleWindowKeyDown);
|
|
7094
|
+
return () => {
|
|
7095
|
+
window.removeEventListener("keydown", handleWindowKeyDown);
|
|
7096
|
+
};
|
|
7097
|
+
}, [handleIsOpenChange, showTooltip]);
|
|
7084
7098
|
const setArrow = react.useCallback(arrowEl => {
|
|
7085
7099
|
arrowRef.current = arrowEl;
|
|
7086
7100
|
update();
|