diff --git a/src/pages/Profile.jsx b/src/pages/Profile.jsx
index c207c17..05f5010 100644
--- a/src/pages/Profile.jsx
+++ b/src/pages/Profile.jsx
@@ -153,6 +153,13 @@ export const Profile = () => {
const streakPoints = userData?.points?.streakPoints || 0;
const codingVersePoints = userData?.points?.codingVersePoints || 0;
const streak = userData?.streak || 1;
+ const pointsEngines = [
+ { label: "GitRank Points", value: gitRankPoints, color: "bg-blue-500" },
+ { label: "CodingVerse Points", value: codingVersePoints, color: "bg-purple-500" },
+ { label: "Streak Points", value: streakPoints, color: "bg-orange-500" },
+ { label: "Referral Points", value: referralPoints, color: "bg-emerald-500" }
+ ];
+ const earnedPointsTotal = pointsEngines.reduce((sum, engine) => sum + Math.max(engine.value, 0), 0);
// Discord icon component
const DiscordIcon = ({ className }) => (
@@ -501,11 +508,8 @@ export const Profile = () => {
{[
- { label: "GitRank Points", value: gitRankPoints, max: totalPoints || 1, color: "bg-blue-500" },
- { label: "CodingVerse Points", value: codingVersePoints, max: totalPoints || 1, color: "bg-purple-500" },
- { label: "Streak Points", value: streakPoints, max: totalPoints || 1, color: "bg-orange-500" },
- { label: "Referral Points", value: referralPoints, max: totalPoints || 1, color: "bg-emerald-500" },
- { label: "Total Points", value: totalPoints, max: totalPoints || 1, color: "bg-gradient-to-r from-violet-500 to-indigo-500", isTotal: true }
+ ...pointsEngines.map((engine) => ({ ...engine, max: totalPoints || 1 })),
+ { label: "Total Points", value: totalPoints, max: totalPoints || 1, isTotal: true }
].map((engine, idx) => {
const pct = Math.floor((engine.value / engine.max) * 100) || 0;
return (
@@ -519,10 +523,30 @@ export const Profile = () => {
-
+ {engine.isTotal ? (
+
+ {pointsEngines.map((segment) => {
+ const segmentPct = earnedPointsTotal
+ ? (Math.max(segment.value, 0) / earnedPointsTotal) * 100
+ : 0;
+
+ return (
+
+ );
+ })}
+
+ ) : (
+
+ )}
);
@@ -628,4 +652,4 @@ export const Profile = () => {
);
};
-export default Profile;
\ No newline at end of file
+export default Profile;