Skip to content

Commit 60e98ba

Browse files
authored
Merge pull request #7 from TheCodeRaccoons/te-taking-project
Te taking project
2 parents 0a03e50 + 08eeff5 commit 60e98ba

3 files changed

Lines changed: 49 additions & 11 deletions

File tree

src/Components/AchieveTabs/Cooking.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ interface dishesCookedType {
55
cookedItems: generalFormatedItemType[];
66
}
77

8-
const Food = ( {cookedItems} : dishesCookedType) => {
8+
const Food = ( {cookedItems} : dishesCookedType) => {
99
const [dishesCooked, setDishesCooked] = useState(0);
1010
if(!cookedItems) return <div>No cooking data available.</div>;
1111

src/Components/Skills/SkillContainer/SkillContainer.css

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,28 @@
5454

5555
.skill-container__stats-line {
5656
margin: 0.2rem 0;
57+
display: flex;
58+
flex-direction: column;
59+
gap: 6px;
60+
}
61+
62+
.skill-container__progress-bar {
63+
width: 100%;
64+
height: 12px;
65+
background-color: #3a3a3a;
66+
border-radius: 6px;
67+
overflow: hidden;
68+
border: 2px solid #8b4513;
69+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
70+
}
71+
72+
.skill-container__progress-fill {
73+
height: 100%;
74+
background: linear-gradient(90deg, #4caf50, #81c784);
75+
border-radius: 4px;
76+
transition: width 0.3s ease;
77+
min-width: 2px;
78+
box-shadow: 0 0 8px rgba(76, 175, 80, 0.5);
5779
}
5880

5981
.skill-container__icon {

src/Components/Skills/SkillContainer/SkillContainer.tsx

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,22 @@ const Skills = ({
1616
xp,
1717
levelInfo
1818
}: SkillProps) => {
19-
const currentLevel = (xp > levelInfo.val) ? levelInfo.id : levelInfo.id - 1;
20-
const xpToNextLevel = (xp > 15000) ? 0 : (levelInfo.val - xp);
21-
const xpToMax = (xp > 15000) ? "Maxed" : 15000 - xp;
19+
const currentLevel = (xp >= levelInfo.val) ? levelInfo.id : levelInfo.id - 1;
20+
const xpToNextLevel = (xp >= 15000) ? 0 : (levelInfo.val - xp);
21+
const xpToMax = (xp >= 15000) ? "Maxed" : 15000 - xp;
22+
23+
// Calculate progress within current level
24+
const currentLevelXpRequirement = levelInfo.id > 1 ? Math.floor(levelInfo.val * 0.85) : 0;
25+
const nextLevelXpRequirement = levelInfo.val;
26+
const xpInCurrentLevel = Math.max(0, xp - currentLevelXpRequirement);
27+
const xpNeededForLevel = nextLevelXpRequirement - currentLevelXpRequirement;
28+
29+
let progressPercentage = 0;
30+
if (xp >= 15000) {
31+
progressPercentage = 100; // Max level
32+
} else if (xpNeededForLevel > 0) {
33+
progressPercentage = Math.min(100, (xpInCurrentLevel / xpNeededForLevel) * 100);
34+
}
2235

2336
return (
2437
<div className="skill-container">
@@ -27,13 +40,16 @@ const Skills = ({
2740
</p>
2841
<div className="skill-container__stats">
2942
<div className="skill-container__stats-line">
30-
Current XP: {xp}
31-
</div>
32-
<div className="skill-container__stats-line">
33-
Level Up in: {xpToNextLevel}
34-
</div>
35-
<div className="skill-container__stats-line">
36-
Max level in: {xpToMax}
43+
<div className="skill-container__progress-bar">
44+
<div
45+
className="skill-container__progress-fill"
46+
style={{
47+
width: `${progressPercentage}%`
48+
}}
49+
></div>
50+
</div>
51+
{xpToNextLevel > 0 ? `XP to next level: ${xpToNextLevel}` : "Max Level Reached"}
52+
{/* {xp} / {levelInfo.val} */}
3753
</div>
3854
</div>
3955
<img

0 commit comments

Comments
 (0)