diff --git a/src/components/Charts/HorizontalBarChart.jsx b/src/components/Charts/HorizontalBarChart.jsx
index 5236a7e5..581fd8ba 100644
--- a/src/components/Charts/HorizontalBarChart.jsx
+++ b/src/components/Charts/HorizontalBarChart.jsx
@@ -6,19 +6,9 @@ const HorizontalBarChart = ({
seriesData = [],
categories = [],
colors = [
- "#1E90FF", // Dodger Blue - Primary
- "#00BFFF", // Deep Sky Blue - Info
- "#9370DB", // Medium Purple - Success (replacing Lime Green)
- "#6A0DAD", // Amethyst Purple - On Route (replacing Forest Green)
- "#A9A9A9", // Dark Gray - Neutral
- "#6A5ACD", // Slate Blue - Secondary
- "#FFA500", // Orange - Warning
- "#FF4500", // Orange Red - Danger
- "#20B2AA", // Light Sea Green - Late
- "#708090", // Slate Gray - Muted
+ "#1E90FF", "#00BFFF", "#9370DB", "#6A0DAD", "#A9A9A9",
+ "#6A5ACD", "#FFA500", "#FF4500", "#20B2AA", "#708090",
],
-
-
}) => {
// Guard clause for invalid or incomplete data
const hasValidData =
@@ -31,25 +21,34 @@ const HorizontalBarChart = ({
return
No data to display
;
}
- const chartOptions = {
+ // Combine seriesData and categories, then sort in descending order
+ const combined = seriesData.map((value, index) => ({
+ value,
+ label: categories[index],
+ }));
+ const sorted = combined.sort((a, b) => b.value - a.value);
+ // Extract sorted values
+ const sortedSeriesData = sorted.map(item => item.value);
+ const sortedCategories = sorted.map(item => item.label);
+
+ // Replace 0 with 1 for visual purposes, but display "0%" in labels
+ const adjustedSeriesData = sortedSeriesData.map(val => (val === 0 ? 1 : val));
+
+ const chartOptions = {
chart: {
type: "bar",
height: 380,
- toolbar: {
- show: false, // This removes the menu
- },
- },
- grid: {
- show: false
+ toolbar: { show: false },
},
+ grid: { show: false },
plotOptions: {
bar: {
barHeight: "60%",
distributed: true,
horizontal: true,
dataLabels: {
- position: "center",
+ position: "start",
},
},
},
@@ -58,49 +57,33 @@ const HorizontalBarChart = ({
enabled: true,
textAnchor: "start",
style: {
- colors: ["#000"], // Switch to black for better visibility
+ colors: ["#000"], // Black labels
},
- formatter: function (val, opt) {
- return `${opt.w.globals.labels[opt.dataPointIndex]}: ${val}`;
- },
- offsetX: 10, // Push label slightly to the right
- dropShadow: {
- enabled: false,
+ formatter: function (_, opt) {
+ const originalVal = sortedSeriesData[opt.dataPointIndex]; // Show real value
+ return `${originalVal}%`;
},
+ offsetX: 10,
+ dropShadow: { enabled: false },
},
-
stroke: {
width: 1,
colors: ["#fff"],
},
xaxis: {
- categories,
- axisBorder: {
- show: false,
- },
- axisTicks: {
- show: false,
- },
- labels: {
- show: false,
- },
+ categories: sortedCategories,
+ axisBorder: { show: false },
+ axisTicks: { show: false },
+ labels: { show: false },
},
yaxis: {
- labels: {
- show: false,
- },
- axisBorder: {
- show: false,
- },
- axisTicks: {
- show: false,
- },
+ labels: { show: false },
+ axisBorder: { show: false },
+ axisTicks: { show: false },
},
tooltip: {
theme: "dark",
- x: {
- show: false,
- },
+ x: { show: true },
y: {
title: {
formatter: () => "",
@@ -113,7 +96,7 @@ const HorizontalBarChart = ({