fix(dashboard): guard customTooltip plugin against undefined tooltip and missing Y scale
chart.tooltip is undefined during initial draw for radial chart types (doughnut/pie), and chart.scales.y doesn't exist on non-cartesian charts. This crashed chart creation, causing 'Failed to load' messages on all pages.
This commit is contained in:
@@ -26,11 +26,14 @@ class ChartManager {
|
||||
}
|
||||
|
||||
registerPlugins() {
|
||||
// Register a plugin for tooltip background
|
||||
// Register a plugin that draws a vertical dashed line at the active tooltip point.
|
||||
// Only applies to charts with a cartesian Y scale (line, bar) — skip radial types.
|
||||
Chart.register({
|
||||
id: 'customTooltip',
|
||||
beforeDraw: (chart) => {
|
||||
if (chart.tooltip._active && chart.tooltip._active.length) {
|
||||
if (!chart.tooltip || !chart.tooltip._active || !chart.tooltip._active.length) return;
|
||||
if (!chart.scales.y) return; // no cartesian Y axis (pie/doughnut)
|
||||
|
||||
const ctx = chart.ctx;
|
||||
const activePoint = chart.tooltip._active[0];
|
||||
const x = activePoint.element.x;
|
||||
@@ -47,7 +50,6 @@ class ChartManager {
|
||||
ctx.stroke();
|
||||
ctx.restore();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user