fix(ui): change ui theme color

feat(calc): add geogebra based graph calculator for tests
This commit is contained in:
shafin-r
2026-02-20 00:03:23 +06:00
parent 626616c8b5
commit 3c8f945539
18 changed files with 2063 additions and 259 deletions

View File

@ -32,7 +32,7 @@ import {
AvatarFallback,
AvatarImage,
} from "../../components/ui/avatar";
import { Zap } from "lucide-react";
import { Flame, LucideBadgeQuestionMark, Zap } from "lucide-react";
import type { Leaderboard } from "../../types/leaderboard";
import { api } from "../../utils/api";
import { Card, CardContent } from "../../components/ui/card";
@ -42,6 +42,7 @@ import { useExamConfigStore } from "../../stores/useExamConfigStore";
export const Rewards = () => {
const user = useAuthStore((state) => state.user);
const [time, setTime] = useState("bottom");
const [activeTab, setActiveTab] = useState("xp");
const [leaderboard, setLeaderboard] = useState<Leaderboard>();
const [loading, setLoading] = useState<boolean>(false);
@ -94,7 +95,7 @@ export const Rewards = () => {
) : (
<p className="font-satoshi-medium text-md text-gray-500">
Don't stop now! You're{" "}
<span className="text-purple-400">
<span className="text-indigo-400">
#{leaderboard?.user_rank.rank}
</span>{" "}
in XP.
@ -103,6 +104,8 @@ export const Rewards = () => {
</header>
<section className="w-full px-7">
<Tabs
value={activeTab}
onValueChange={setActiveTab}
defaultValue="xp"
className="space-y-6 h-[calc(100vh-250px)] flex flex-col"
>
@ -198,7 +201,7 @@ export const Rewards = () => {
<div className="flex items-center gap-1">
<p className="font-satoshi-medium">{user.total_xp}</p>
<Zap size={20} color="darkgreen" />
<Zap size={20} className="text-lime-500 fill-lime-200" />
</div>
</div>
);
@ -295,7 +298,7 @@ export const Rewards = () => {
</TabsContent>
</Tabs>
</section>
<Card className="absolute mx-auto w-full left-0 md:-bottom-12 bottom-0 bg-linear-to-br from-purple-500 to-purple-600 rounded-full py-4">
<Card className="absolute mx-auto w-full left-0 md:-bottom-12 bottom-0 bg-linear-to-br from-indigo-500 to-indigo-600 rounded-full py-4">
<CardContent className="flex justify-between items-center">
{loading ? (
<div className="flex justify-between items-center animate-pulse w-full">
@ -332,9 +335,9 @@ export const Rewards = () => {
{(leaderboard?.user_rank?.rank ?? Infinity) - 1}
</span>
)}
<Avatar className={`p-6 ${getRandomColor()}`}>
<Avatar className={`p-6 bg-white`}>
<AvatarImage src={leaderboard?.user_rank.avatar_url} />
<AvatarFallback className="text-white font-satoshi-bold">
<AvatarFallback className=" font-satoshi-bold">
{leaderboard?.user_rank.name.slice(0, 1).toUpperCase()}
</AvatarFallback>
</Avatar>
@ -345,9 +348,20 @@ export const Rewards = () => {
<div className="flex items-center gap-1">
<p className="font-satoshi-medium text-white">
{leaderboard?.user_rank.total_xp}
{activeTab === "xp"
? leaderboard?.user_rank.total_xp
: activeTab === "questions"
? "23"
: "5"}
</p>
<Zap size={20} color="white" />
{activeTab === "xp" ? (
<Zap size={20} color="white" />
) : activeTab === "questions" ? (
<LucideBadgeQuestionMark size={20} color="white" />
) : (
<Flame size={20} color="white" />
)}
</div>
</>
)}