PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.2
Presto Player v4.3.2
4.3.3 4.3.2 4.3.1 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 2 months ago ChartCrosshair.js 2 months ago ChartTooltip.js 2 months ago EngagementAreaChart.js 2 months ago RetentionTooltip.js 2 months ago chartTheme.js 2 months ago index.js 2 months 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