@react-stately/tooltip
Advanced tools
Comparing version 3.0.2-nightly.2514 to 3.0.2-nightly.2527
@@ -7,3 +7,4 @@ var { | ||
useEffect, | ||
useMemo | ||
useMemo, | ||
useRef | ||
} = require("react"); | ||
@@ -26,2 +27,6 @@ | ||
function useTooltipTriggerState(props) { | ||
if (props === void 0) { | ||
props = {}; | ||
} | ||
let { | ||
@@ -36,2 +41,3 @@ delay = $dbf206483fc3f3f5862f69116107e0c$var$TOOLTIP_DELAY | ||
let id = useMemo(() => "" + ++$dbf206483fc3f3f5862f69116107e0c$var$tooltipId, []); | ||
let closeTimeout = useRef(); | ||
@@ -45,3 +51,3 @@ let ensureTooltipEntry = () => { | ||
if (hideTooltipId !== id) { | ||
$dbf206483fc3f3f5862f69116107e0c$var$tooltips[hideTooltipId](); | ||
$dbf206483fc3f3f5862f69116107e0c$var$tooltips[hideTooltipId](true); | ||
delete $dbf206483fc3f3f5862f69116107e0c$var$tooltips[hideTooltipId]; | ||
@@ -53,2 +59,4 @@ } | ||
let showTooltip = () => { | ||
clearTimeout(closeTimeout.current); | ||
closeTimeout.current = null; | ||
closeOpenTooltips(); | ||
@@ -70,4 +78,13 @@ ensureTooltipEntry(); | ||
let hideTooltip = () => { | ||
close(); | ||
let hideTooltip = immediate => { | ||
if (immediate) { | ||
clearTimeout(closeTimeout.current); | ||
closeTimeout.current = null; | ||
close(); | ||
} else if (!closeTimeout.current) { | ||
closeTimeout.current = setTimeout(() => { | ||
closeTimeout.current = null; | ||
close(); | ||
}, $dbf206483fc3f3f5862f69116107e0c$var$TOOLTIP_COOLDOWN); | ||
} | ||
@@ -120,3 +137,3 @@ if ($dbf206483fc3f3f5862f69116107e0c$var$globalWarmUpTimeout) { | ||
open: immediate => { | ||
if (!immediate && delay > 0) { | ||
if (!immediate && delay > 0 && !closeTimeout.current) { | ||
warmupTooltip(); | ||
@@ -127,5 +144,3 @@ } else { | ||
}, | ||
close: () => { | ||
hideTooltip(); | ||
} | ||
close: hideTooltip | ||
}; | ||
@@ -132,0 +147,0 @@ } |
import { useOverlayTriggerState } from "@react-stately/overlays"; | ||
import { useEffect, useMemo } from "react"; | ||
import { useEffect, useMemo, useRef } from "react"; | ||
const $af9cde49ea815e766aeca6386e9$var$TOOLTIP_DELAY = 1500; // this seems to be a 1.5 second delay, check with design | ||
@@ -18,2 +18,6 @@ | ||
export function useTooltipTriggerState(props) { | ||
if (props === void 0) { | ||
props = {}; | ||
} | ||
let { | ||
@@ -28,2 +32,3 @@ delay = $af9cde49ea815e766aeca6386e9$var$TOOLTIP_DELAY | ||
let id = useMemo(() => "" + ++$af9cde49ea815e766aeca6386e9$var$tooltipId, []); | ||
let closeTimeout = useRef(); | ||
@@ -37,3 +42,3 @@ let ensureTooltipEntry = () => { | ||
if (hideTooltipId !== id) { | ||
$af9cde49ea815e766aeca6386e9$var$tooltips[hideTooltipId](); | ||
$af9cde49ea815e766aeca6386e9$var$tooltips[hideTooltipId](true); | ||
delete $af9cde49ea815e766aeca6386e9$var$tooltips[hideTooltipId]; | ||
@@ -45,2 +50,4 @@ } | ||
let showTooltip = () => { | ||
clearTimeout(closeTimeout.current); | ||
closeTimeout.current = null; | ||
closeOpenTooltips(); | ||
@@ -62,4 +69,13 @@ ensureTooltipEntry(); | ||
let hideTooltip = () => { | ||
close(); | ||
let hideTooltip = immediate => { | ||
if (immediate) { | ||
clearTimeout(closeTimeout.current); | ||
closeTimeout.current = null; | ||
close(); | ||
} else if (!closeTimeout.current) { | ||
closeTimeout.current = setTimeout(() => { | ||
closeTimeout.current = null; | ||
close(); | ||
}, $af9cde49ea815e766aeca6386e9$var$TOOLTIP_COOLDOWN); | ||
} | ||
@@ -112,3 +128,3 @@ if ($af9cde49ea815e766aeca6386e9$var$globalWarmUpTimeout) { | ||
open: immediate => { | ||
if (!immediate && delay > 0) { | ||
if (!immediate && delay > 0 && !closeTimeout.current) { | ||
warmupTooltip(); | ||
@@ -119,7 +135,5 @@ } else { | ||
}, | ||
close: () => { | ||
hideTooltip(); | ||
} | ||
close: hideTooltip | ||
}; | ||
} | ||
//# sourceMappingURL=module.js.map |
@@ -12,3 +12,3 @@ import { TooltipTriggerProps } from "@react-types/tooltip"; | ||
/** Hides the tooltip. */ | ||
close(): void; | ||
close(immediate?: boolean): void; | ||
} | ||
@@ -20,4 +20,4 @@ /** | ||
*/ | ||
export function useTooltipTriggerState(props: TooltipTriggerProps): TooltipTriggerState; | ||
export function useTooltipTriggerState(props?: TooltipTriggerProps): TooltipTriggerState; | ||
//# sourceMappingURL=types.d.ts.map |
{ | ||
"name": "@react-stately/tooltip", | ||
"version": "3.0.2-nightly.2514+f5678f9c", | ||
"version": "3.0.2-nightly.2527+e08af810", | ||
"description": "Spectrum UI components in React", | ||
@@ -21,5 +21,5 @@ "license": "Apache-2.0", | ||
"@babel/runtime": "^7.6.2", | ||
"@react-stately/overlays": "3.1.2-nightly.2514+f5678f9c", | ||
"@react-stately/utils": "3.0.0-nightly.836+f5678f9c", | ||
"@react-types/tooltip": "3.1.1-nightly.2514+f5678f9c" | ||
"@react-stately/overlays": "3.1.2-nightly.2527+e08af810", | ||
"@react-stately/utils": "3.0.0-nightly.849+e08af810", | ||
"@react-types/tooltip": "3.1.1-nightly.2527+e08af810" | ||
}, | ||
@@ -32,3 +32,3 @@ "peerDependencies": { | ||
}, | ||
"gitHead": "f5678f9c0a8a02422a16eda4e9be11d2b88ed08b" | ||
"gitHead": "e08af810954896b95e444b5b02ab782cd1e4b759" | ||
} |
@@ -14,3 +14,3 @@ /* | ||
import {TooltipTriggerProps} from '@react-types/tooltip'; | ||
import {useEffect, useMemo} from 'react'; | ||
import {useEffect, useMemo, useRef} from 'react'; | ||
import {useOverlayTriggerState} from '@react-stately/overlays'; | ||
@@ -31,3 +31,3 @@ | ||
/** Hides the tooltip. */ | ||
close(): void | ||
close(immediate?: boolean): void | ||
} | ||
@@ -46,6 +46,7 @@ | ||
*/ | ||
export function useTooltipTriggerState(props: TooltipTriggerProps): TooltipTriggerState { | ||
export function useTooltipTriggerState(props: TooltipTriggerProps = {}): TooltipTriggerState { | ||
let {delay = TOOLTIP_DELAY} = props; | ||
let {isOpen, open, close} = useOverlayTriggerState(props); | ||
let id = useMemo(() => `${++tooltipId}`, []); | ||
let closeTimeout = useRef<ReturnType<typeof setTimeout>>(); | ||
@@ -59,3 +60,3 @@ let ensureTooltipEntry = () => { | ||
if (hideTooltipId !== id) { | ||
tooltips[hideTooltipId](); | ||
tooltips[hideTooltipId](true); | ||
delete tooltips[hideTooltipId]; | ||
@@ -67,2 +68,4 @@ } | ||
let showTooltip = () => { | ||
clearTimeout(closeTimeout.current); | ||
closeTimeout.current = null; | ||
closeOpenTooltips(); | ||
@@ -82,4 +85,14 @@ ensureTooltipEntry(); | ||
let hideTooltip = () => { | ||
close(); | ||
let hideTooltip = (immediate?: boolean) => { | ||
if (immediate) { | ||
clearTimeout(closeTimeout.current); | ||
closeTimeout.current = null; | ||
close(); | ||
} else if (!closeTimeout.current) { | ||
closeTimeout.current = setTimeout(() => { | ||
closeTimeout.current = null; | ||
close(); | ||
}, TOOLTIP_COOLDOWN); | ||
} | ||
if (globalWarmUpTimeout) { | ||
@@ -128,3 +141,3 @@ clearTimeout(globalWarmUpTimeout); | ||
open: (immediate) => { | ||
if (!immediate && delay > 0) { | ||
if (!immediate && delay > 0 && !closeTimeout.current) { | ||
warmupTooltip(); | ||
@@ -135,6 +148,4 @@ } else { | ||
}, | ||
close: () => { | ||
hideTooltip(); | ||
} | ||
close: hideTooltip | ||
}; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
43116
399