- {payload.map((entry, index) => (
+ {sortedPayload.map((entry, index) => (
{
users.add(item.user.name || item.user.email || 'Unknown');
});
+ // Sort alphabetically
return Array.from(users).sort();
}, [hourlyUsage]);
+ // Reverse the order for chart rendering so alphabetically first user appears at top
+ const reversedUsers = useMemo(() => {
+ return [...uniqueUsers].reverse();
+ }, [uniqueUsers]);
+
const formatValue = (value: number) => {
switch (selectedMetric) {
case 'cost':
@@ -642,19 +653,20 @@ export const UsageChart = ({
opacity: 0.1,
}}
/>
- {uniqueUsers.map((user, index) => (
- setHoveredUser(user)}
- onMouseLeave={() => setHoveredUser(null)}
- />
- ))}
+ {reversedUsers.map((user) => {
+ // Find the original alphabetical position for consistent colors
+ const originalIndex = uniqueUsers.indexOf(user);
+ return (
+ setHoveredUser(user)}
+ onMouseLeave={() => setHoveredUser(null)}
+ />
+ );
+ })}