PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / components / charts / RetentionTooltip.js
presto-player / src / admin / dashboard / components / charts Last commit date
ChartActiveDot.js 1 month ago ChartCrosshair.js 1 month ago ChartTooltip.js 1 month ago EngagementAreaChart.js 1 month ago RetentionTooltip.js 1 month ago chartTheme.js 1 month ago index.js 1 month ago
RetentionTooltip.js
71 lines
1 import { __ } from "@wordpress/i18n";
2 import {
3 TOOLTIP_BG,
4 TOOLTIP_BORDER,
5 TOOLTIP_SHADOW,
6 TOOLTIP_RADIUS,
7 TOOLTIP_TEXT_PRIMARY,
8 CHART_COLOR,
9 } from "./chartTheme";
10 import { formatHMS } from "../../utils";
11
12 /**
13 * Compact tooltip for the RetentionChart.
14 * Shows the video timestamp and viewer count.
15 */
16 const RetentionTooltip = ({ active, payload, label }) => {
17 if (!active || !payload || payload.length === 0) return null;
18
19 const value = payload[0]?.value;
20 const formattedLabel = typeof label === "number" ? formatHMS(label) : label;
21
22 return (
23 <div
24 style={{
25 background: TOOLTIP_BG,
26 border: `1px solid ${TOOLTIP_BORDER}`,
27 borderRadius: `${TOOLTIP_RADIUS}px`,
28 boxShadow: TOOLTIP_SHADOW,
29 padding: "8px 12px",
30 fontVariantNumeric: "tabular-nums",
31 }}
32 >
33 {formattedLabel && (
34 <div
35 style={{
36 fontSize: "11px",
37 fontWeight: 400,
38 color: TOOLTIP_TEXT_PRIMARY,
39 marginBottom: "4px",
40 }}
41 >
42 {formattedLabel}
43 </div>
44 )}
45 <div style={{ display: "flex", alignItems: "center", gap: "6px" }}>
46 <span
47 style={{
48 width: "8px",
49 height: "8px",
50 borderRadius: "50%",
51 backgroundColor: CHART_COLOR,
52 display: "inline-block",
53 }}
54 />
55 <span
56 style={{
57 fontSize: "12px",
58 fontWeight: 600,
59 color: TOOLTIP_TEXT_PRIMARY,
60 }}
61 >
62 {__("Viewers:", "presto-player")}{" "}
63 {typeof value === "number" ? value.toLocaleString() : value}
64 </span>
65 </div>
66 </div>
67 );
68 };
69
70 export default RetentionTooltip;
71