@amboss/design-system 1.20.0 → 1.20.1
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.
|
@@ -43,6 +43,12 @@ function UserHighlightTooltip(_ref) {
|
|
|
43
43
|
onVisibilityChange(status);
|
|
44
44
|
}
|
|
45
45
|
}, [onVisibilityChange]);
|
|
46
|
+
React.useEffect(() => {
|
|
47
|
+
if (selectedRange) {
|
|
48
|
+
toggleVisibility(true);
|
|
49
|
+
}
|
|
50
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
+
}, []);
|
|
46
52
|
const handleTooltipPointerEnter = () => {
|
|
47
53
|
isTooltipHovered.current = true;
|
|
48
54
|
};
|
|
@@ -37,6 +37,12 @@ function UserHighlightTooltip(_ref) {
|
|
|
37
37
|
onVisibilityChange(status);
|
|
38
38
|
}
|
|
39
39
|
}, [onVisibilityChange]);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (selectedRange) {
|
|
42
|
+
toggleVisibility(true);
|
|
43
|
+
}
|
|
44
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
|
+
}, []);
|
|
40
46
|
const handleTooltipPointerEnter = () => {
|
|
41
47
|
isTooltipHovered.current = true;
|
|
42
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserHighlightTooltip.js","sources":["../../../../../src/components/UserHighlightTooltip/UserHighlightTooltip.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipContent } from \"../Tooltip/TooltipContent\";\n\nexport type UserHighlightTooltipProps = Pick<\n TooltipContentProps,\n \"content\" | \"placement\" | \"portalContainer\" | \"contentPadding\" | \"maxWidth\"\n> & {\n \"data-e2e-test-id\"?: string;\n onVisibilityChange?: (isVisible: boolean) => void;\n triggerElements: HTMLElement[];\n selectedRange?: Range;\n};\n\nconst SHOW_HIDE_DELAY = 200;\n\nexport function UserHighlightTooltip({\n content,\n contentPadding = \"m\",\n placement = \"auto\",\n maxWidth,\n portalContainer,\n \"data-e2e-test-id\": dataE2eTestId,\n triggerElements,\n selectedRange,\n onVisibilityChange,\n}: UserHighlightTooltipProps): React.ReactElement {\n const tooltipId = useMemo(\n () => `DSUserHighlightTooltip_${Math.floor(Date.now() * Math.random())}`,\n []\n );\n\n const isTooltipHovered = useRef(false);\n const showTooltipTimeoutId = useRef(null);\n const hideTooltipTimeoutId = useRef(null);\n const triggerHovered = useRef(false);\n const rangeRef = useRef<Range>(null);\n\n useEffect(() => {\n if (selectedRange) {\n rangeRef.current = selectedRange;\n } else {\n const range = document.createRange();\n range.setStart(triggerElements[0], 0);\n range.setEnd(triggerElements[triggerElements.length - 1], 1);\n rangeRef.current = range;\n }\n }, [triggerElements, selectedRange]);\n\n const [tooltipVisible, setTooltipVisible] = useState(false);\n\n const toggleVisibility = useCallback(\n (status: boolean) => {\n setTooltipVisible(status);\n\n if (onVisibilityChange) {\n onVisibilityChange(status);\n }\n },\n [onVisibilityChange]\n );\n\n const handleTooltipPointerEnter = () => {\n isTooltipHovered.current = true;\n };\n\n const hideTooltipAfterDelay = useCallback(() => {\n // Delay removing tooltip from DOM to allow hover over highlight element || tooltip element\n hideTooltipTimeoutId.current = setTimeout(() => {\n if (\n !triggerHovered.current &&\n !isTooltipHovered.current &&\n tooltipVisible\n ) {\n toggleVisibility(false);\n }\n }, SHOW_HIDE_DELAY);\n }, [toggleVisibility, tooltipVisible]);\n\n const handleTooltipPointerLeave = () => {\n clearTimeout(hideTooltipTimeoutId.current);\n isTooltipHovered.current = false;\n\n hideTooltipAfterDelay();\n };\n\n const handleTriggerPointerEnter = useCallback(() => {\n triggerHovered.current = true;\n if (!tooltipVisible) {\n clearTimeout(showTooltipTimeoutId.current);\n // Delay show tooltip to prevent flickering when mouse moves quickly over trigger\n showTooltipTimeoutId.current = setTimeout(() => {\n if (!tooltipVisible && triggerHovered.current) {\n toggleVisibility(true);\n }\n }, SHOW_HIDE_DELAY);\n }\n }, [toggleVisibility, tooltipVisible]);\n\n const handleTriggerPointerLeave = useCallback(() => {\n clearTimeout(hideTooltipTimeoutId.current);\n triggerHovered.current = false;\n\n hideTooltipAfterDelay();\n }, [hideTooltipAfterDelay]);\n\n useEffect(\n () => () => {\n // clear timers\n clearTimeout(showTooltipTimeoutId.current);\n clearTimeout(hideTooltipTimeoutId.current);\n },\n []\n );\n\n // event listeners\n useEffect(() => {\n triggerElements.forEach((node) => {\n node.addEventListener(\"pointerenter\", handleTriggerPointerEnter);\n node.addEventListener(\"pointerleave\", handleTriggerPointerLeave);\n });\n return () => {\n triggerElements.forEach((node) => {\n node.removeEventListener(\"pointerenter\", handleTriggerPointerEnter);\n node.removeEventListener(\"pointerleave\", handleTriggerPointerLeave);\n });\n };\n }, [handleTriggerPointerEnter, handleTriggerPointerLeave, triggerElements]);\n\n useEffect(() => {\n triggerElements.forEach((node) => {\n if (tooltipVisible) {\n node.setAttribute(\"aria-describedby\", tooltipId);\n } else {\n node.removeAttribute(\"aria-describedby\");\n }\n });\n }, [tooltipId, tooltipVisible, triggerElements]);\n\n if (!rangeRef.current) return null;\n\n return (\n <TooltipContent\n dataDSId=\"UserHighlightTooltip\"\n content={content}\n placement={placement}\n portalContainer={portalContainer}\n dataE2eTestId={dataE2eTestId}\n isVisible={tooltipVisible}\n tooltipId={tooltipId}\n triggerRef={rangeRef}\n aria-hidden\n role=\"tooltip\"\n contentPadding={contentPadding}\n maxWidth={maxWidth}\n onTooltipPointerEnter={handleTooltipPointerEnter}\n onTooltipPointerLeave={handleTooltipPointerLeave}\n />\n );\n}\n"],"names":["SHOW_HIDE_DELAY","UserHighlightTooltip","_ref","content","contentPadding","placement","maxWidth","portalContainer","dataE2eTestId","triggerElements","selectedRange","onVisibilityChange","tooltipId","useMemo","Math","floor","Date","now","random","isTooltipHovered","useRef","showTooltipTimeoutId","hideTooltipTimeoutId","triggerHovered","rangeRef","useEffect","current","range","document","createRange","setStart","setEnd","length","tooltipVisible","setTooltipVisible","useState","toggleVisibility","useCallback","status","handleTooltipPointerEnter","hideTooltipAfterDelay","setTimeout","handleTooltipPointerLeave","clearTimeout","handleTriggerPointerEnter","handleTriggerPointerLeave","forEach","node","addEventListener","removeEventListener","setAttribute","removeAttribute","React","createElement","TooltipContent","dataDSId","isVisible","triggerRef","role","onTooltipPointerEnter","onTooltipPointerLeave"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserHighlightTooltip.js","sources":["../../../../../src/components/UserHighlightTooltip/UserHighlightTooltip.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipContent } from \"../Tooltip/TooltipContent\";\n\nexport type UserHighlightTooltipProps = Pick<\n TooltipContentProps,\n \"content\" | \"placement\" | \"portalContainer\" | \"contentPadding\" | \"maxWidth\"\n> & {\n \"data-e2e-test-id\"?: string;\n onVisibilityChange?: (isVisible: boolean) => void;\n triggerElements: HTMLElement[];\n selectedRange?: Range;\n};\n\nconst SHOW_HIDE_DELAY = 200;\n\nexport function UserHighlightTooltip({\n content,\n contentPadding = \"m\",\n placement = \"auto\",\n maxWidth,\n portalContainer,\n \"data-e2e-test-id\": dataE2eTestId,\n triggerElements,\n selectedRange,\n onVisibilityChange,\n}: UserHighlightTooltipProps): React.ReactElement {\n const tooltipId = useMemo(\n () => `DSUserHighlightTooltip_${Math.floor(Date.now() * Math.random())}`,\n []\n );\n\n const isTooltipHovered = useRef(false);\n const showTooltipTimeoutId = useRef(null);\n const hideTooltipTimeoutId = useRef(null);\n const triggerHovered = useRef(false);\n const rangeRef = useRef<Range>(null);\n\n useEffect(() => {\n if (selectedRange) {\n rangeRef.current = selectedRange;\n } else {\n const range = document.createRange();\n range.setStart(triggerElements[0], 0);\n range.setEnd(triggerElements[triggerElements.length - 1], 1);\n rangeRef.current = range;\n }\n }, [triggerElements, selectedRange]);\n\n const [tooltipVisible, setTooltipVisible] = useState(false);\n\n const toggleVisibility = useCallback(\n (status: boolean) => {\n setTooltipVisible(status);\n\n if (onVisibilityChange) {\n onVisibilityChange(status);\n }\n },\n [onVisibilityChange]\n );\n\n useEffect(() => {\n if (selectedRange) {\n toggleVisibility(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleTooltipPointerEnter = () => {\n isTooltipHovered.current = true;\n };\n\n const hideTooltipAfterDelay = useCallback(() => {\n // Delay removing tooltip from DOM to allow hover over highlight element || tooltip element\n hideTooltipTimeoutId.current = setTimeout(() => {\n if (\n !triggerHovered.current &&\n !isTooltipHovered.current &&\n tooltipVisible\n ) {\n toggleVisibility(false);\n }\n }, SHOW_HIDE_DELAY);\n }, [toggleVisibility, tooltipVisible]);\n\n const handleTooltipPointerLeave = () => {\n clearTimeout(hideTooltipTimeoutId.current);\n isTooltipHovered.current = false;\n\n hideTooltipAfterDelay();\n };\n\n const handleTriggerPointerEnter = useCallback(() => {\n triggerHovered.current = true;\n if (!tooltipVisible) {\n clearTimeout(showTooltipTimeoutId.current);\n // Delay show tooltip to prevent flickering when mouse moves quickly over trigger\n showTooltipTimeoutId.current = setTimeout(() => {\n if (!tooltipVisible && triggerHovered.current) {\n toggleVisibility(true);\n }\n }, SHOW_HIDE_DELAY);\n }\n }, [toggleVisibility, tooltipVisible]);\n\n const handleTriggerPointerLeave = useCallback(() => {\n clearTimeout(hideTooltipTimeoutId.current);\n triggerHovered.current = false;\n\n hideTooltipAfterDelay();\n }, [hideTooltipAfterDelay]);\n\n useEffect(\n () => () => {\n // clear timers\n clearTimeout(showTooltipTimeoutId.current);\n clearTimeout(hideTooltipTimeoutId.current);\n },\n []\n );\n\n // event listeners\n useEffect(() => {\n triggerElements.forEach((node) => {\n node.addEventListener(\"pointerenter\", handleTriggerPointerEnter);\n node.addEventListener(\"pointerleave\", handleTriggerPointerLeave);\n });\n return () => {\n triggerElements.forEach((node) => {\n node.removeEventListener(\"pointerenter\", handleTriggerPointerEnter);\n node.removeEventListener(\"pointerleave\", handleTriggerPointerLeave);\n });\n };\n }, [handleTriggerPointerEnter, handleTriggerPointerLeave, triggerElements]);\n\n useEffect(() => {\n triggerElements.forEach((node) => {\n if (tooltipVisible) {\n node.setAttribute(\"aria-describedby\", tooltipId);\n } else {\n node.removeAttribute(\"aria-describedby\");\n }\n });\n }, [tooltipId, tooltipVisible, triggerElements]);\n\n if (!rangeRef.current) return null;\n\n return (\n <TooltipContent\n dataDSId=\"UserHighlightTooltip\"\n content={content}\n placement={placement}\n portalContainer={portalContainer}\n dataE2eTestId={dataE2eTestId}\n isVisible={tooltipVisible}\n tooltipId={tooltipId}\n triggerRef={rangeRef}\n aria-hidden\n role=\"tooltip\"\n contentPadding={contentPadding}\n maxWidth={maxWidth}\n onTooltipPointerEnter={handleTooltipPointerEnter}\n onTooltipPointerLeave={handleTooltipPointerLeave}\n />\n );\n}\n"],"names":["SHOW_HIDE_DELAY","UserHighlightTooltip","_ref","content","contentPadding","placement","maxWidth","portalContainer","dataE2eTestId","triggerElements","selectedRange","onVisibilityChange","tooltipId","useMemo","Math","floor","Date","now","random","isTooltipHovered","useRef","showTooltipTimeoutId","hideTooltipTimeoutId","triggerHovered","rangeRef","useEffect","current","range","document","createRange","setStart","setEnd","length","tooltipVisible","setTooltipVisible","useState","toggleVisibility","useCallback","status","handleTooltipPointerEnter","hideTooltipAfterDelay","setTimeout","handleTooltipPointerLeave","clearTimeout","handleTriggerPointerEnter","handleTriggerPointerLeave","forEach","node","addEventListener","removeEventListener","setAttribute","removeAttribute","React","createElement","TooltipContent","dataDSId","isVisible","triggerRef","role","onTooltipPointerEnter","onTooltipPointerLeave"],"mappings":"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"}
|