shared-design-system 1.25.0 → 1.26.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.
|
@@ -5,6 +5,7 @@ import { Portal } from './Portal';
|
|
|
5
5
|
export const Popover = React.forwardRef(({ children, content, title, trigger = 'click', placement = 'top', width = '240px' }, ref) => {
|
|
6
6
|
const [visible, setVisible] = useState(false);
|
|
7
7
|
const [coords, setCoords] = useState({ top: 0, left: 0, width: 0, height: 0 });
|
|
8
|
+
const [popoverSize, setPopoverSize] = useState({ width: 0, height: 0 });
|
|
8
9
|
const triggerRef = useRef(null);
|
|
9
10
|
const popoverRef = useRef(null);
|
|
10
11
|
const updateCoords = useCallback(() => {
|
|
@@ -16,19 +17,30 @@ export const Popover = React.forwardRef(({ children, content, title, trigger = '
|
|
|
16
17
|
width: rect.width,
|
|
17
18
|
height: rect.height,
|
|
18
19
|
});
|
|
20
|
+
if (popoverRef.current) {
|
|
21
|
+
setPopoverSize({
|
|
22
|
+
width: popoverRef.current.offsetWidth,
|
|
23
|
+
height: popoverRef.current.offsetHeight,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
19
26
|
}
|
|
20
27
|
}, []);
|
|
28
|
+
// Also update when visibility changes or content might change
|
|
21
29
|
useEffect(() => {
|
|
22
30
|
if (visible) {
|
|
31
|
+
// Initial measurement
|
|
23
32
|
updateCoords();
|
|
33
|
+
// Small delay to ensure Portal content is rendered and offsetWidth is alive
|
|
34
|
+
const timer = setTimeout(updateCoords, 0);
|
|
24
35
|
window.addEventListener('resize', updateCoords);
|
|
25
36
|
window.addEventListener('scroll', updateCoords, true);
|
|
26
37
|
return () => {
|
|
38
|
+
clearTimeout(timer);
|
|
27
39
|
window.removeEventListener('resize', updateCoords);
|
|
28
40
|
window.removeEventListener('scroll', updateCoords, true);
|
|
29
41
|
};
|
|
30
42
|
}
|
|
31
|
-
}, [visible, updateCoords]);
|
|
43
|
+
}, [visible, updateCoords, content]);
|
|
32
44
|
const toggle = () => setVisible(!visible);
|
|
33
45
|
const show = () => setVisible(true);
|
|
34
46
|
const hide = () => setVisible(false);
|
|
@@ -47,21 +59,19 @@ export const Popover = React.forwardRef(({ children, content, title, trigger = '
|
|
|
47
59
|
}
|
|
48
60
|
}, [visible]);
|
|
49
61
|
const getStyles = () => {
|
|
62
|
+
var _a, _b;
|
|
50
63
|
const styles = {
|
|
51
64
|
position: 'absolute',
|
|
52
65
|
zIndex: 1100,
|
|
53
66
|
width: width,
|
|
67
|
+
// Ensure it doesn't blink or jump
|
|
68
|
+
visibility: popoverRef.current ? 'visible' : 'hidden',
|
|
69
|
+
opacity: popoverRef.current ? 1 : 0,
|
|
70
|
+
transition: 'opacity 0.2s, transform 0.2s',
|
|
54
71
|
};
|
|
55
72
|
const spacing = 10;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
...styles,
|
|
59
|
-
opacity: 0,
|
|
60
|
-
pointerEvents: 'none',
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const pW = popoverRef.current.offsetWidth;
|
|
64
|
-
const pH = popoverRef.current.offsetHeight;
|
|
73
|
+
const pW = popoverSize.width || (((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
|
|
74
|
+
const pH = popoverSize.height || (((_b = popoverRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0);
|
|
65
75
|
switch (placement) {
|
|
66
76
|
case 'top':
|
|
67
77
|
styles.top = coords.top - pH - spacing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../../src/components/Popover.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAWlC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CACrC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACxD,SAAS,CAAC;gBACR,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO;gBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../../src/components/Popover.tsx"],"names":[],"mappings":"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"}
|