From cdd15b1a89a6b4934eb89309cc11e8cd3894b6ec Mon Sep 17 00:00:00 2001 From: shafin-r Date: Sat, 17 Jan 2026 19:18:43 +0600 Subject: [PATCH] fix(practice-sheets); fix practice sheets not showing up in all category --- src/lib/utils.ts | 19 +++- src/pages/student/Home.tsx | 191 +++++++++++++++---------------------- 2 files changed, 92 insertions(+), 118 deletions(-) diff --git a/src/lib/utils.ts b/src/lib/utils.ts index bd0c391..f82f5e8 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,6 +1,19 @@ -import { clsx, type ClassValue } from "clsx" -import { twMerge } from "tailwind-merge" +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)) + return twMerge(clsx(inputs)); +} + +export function formatStatus(status: string) { + switch (status) { + case "NOT_STARTED": + return "Not Started"; + case "IN_PROGRESS": + return "In Progress"; + case "COMPLETED": + return "Completed"; + default: + return status; + } } diff --git a/src/pages/student/Home.tsx b/src/pages/student/Home.tsx index 84eae68..fd539f9 100644 --- a/src/pages/student/Home.tsx +++ b/src/pages/student/Home.tsx @@ -19,6 +19,7 @@ import { import { Badge } from "../../components/ui/badge"; import { Button } from "../../components/ui/button"; import type { PracticeSheet } from "../../types/sheet"; +import { formatStatus } from "../../lib/utils"; export const Home = () => { const user = useAuthStore((state) => state.user); @@ -32,6 +33,22 @@ export const Home = () => { const [completedSheets, setCompletedSheets] = useState([]); useEffect(() => { + const sortPracticeSheets = (sheets: PracticeSheet[]) => { + const notStarted = sheets.filter( + (sheet) => sheet.user_status === "NOT_STARTED" + ); + const inProgress = sheets.filter( + (sheet) => sheet.user_status === "in-progress" + ); + const completed = sheets.filter( + (sheet) => sheet.user_status === "completed" + ); + + setNotStartedSheets(notStarted); + setInProgressSheets(inProgress); + setCompletedSheets(completed); + }; + const fetchPracticeSheets = async () => { if (!user) return; @@ -50,35 +67,20 @@ export const Home = () => { } const sheets = await api.getPracticeSheets(token, 1, 10); setPracticeSheets(sheets.data); + console.log("All Practice Sheets: ", sheets.data); sortPracticeSheets(sheets.data); } catch (error) { console.error("Error fetching practice sheets:", error); } }; - const sortPracticeSheets = (sheets: PracticeSheet[]) => { - const notStarted = sheets.filter( - (sheet) => sheet.user_status === "NOT_STARTED" - ); - const inProgress = sheets.filter( - (sheet) => sheet.user_status === "in-progress" - ); - const completed = sheets.filter( - (sheet) => sheet.user_status === "completed" - ); - - setNotStartedSheets(notStarted); - setInProgressSheets(inProgress); - setCompletedSheets(completed); - }; - fetchPracticeSheets(); }, [user]); return (
-
-

+
+

Welcome, {user?.name || "Student"}

@@ -91,6 +93,11 @@ export const Home = () => {

+
+

+ Pick up where you left off +

+
@@ -100,23 +107,14 @@ export const Home = () => { > All - Not Started - - In Progress - - - Completed @@ -124,8 +122,8 @@ export const Home = () => {
- {practiceSheets.length < 0 ? ( - practiceSheets.slice(0, 4).map((sheet) => ( + {practiceSheets.length > 0 ? ( + practiceSheets.map((sheet) => ( @@ -136,8 +134,8 @@ export const Home = () => { -

- Not Started +

+ {formatStatus(sheet?.user_status)}

{
)} - {practiceSheets.length > 4 && ( -
- -
- )}
@@ -190,7 +177,7 @@ export const Home = () => { {sheet?.title} - {sheet?.subject} + {sheet?.description} @@ -219,77 +206,51 @@ export const Home = () => { ))} - - {inProgressSheets.map((sheet) => ( - - - - {sheet?.title} - - - {sheet?.subject} - - - -

Not Started

- - {sheet?.modules_count} modules - -
- -

- {sheet?.time_limit} minutes -

-
- - - -
- ))} -
- - {completedSheets.map((sheet) => ( - - - - {sheet?.title} - - - {sheet?.subject} - - - -

Not Started

- - {sheet?.modules_count} modules - -
- -

- {sheet?.time_limit} minutes -

-
- - - -
- ))} + + {completedSheets.length > 0 ? ( + completedSheets.map((sheet) => ( + + + + {sheet?.title} + + + {sheet?.description} + + + +

+ {formatStatus(sheet?.user_status)} +

+ + {sheet?.modules_count} modules + +
+ +

+ {sheet?.time_limit} minutes +

+
+ + + +
+ )) + ) : ( +
+

+ You have not completed any practice sheets. +

+
+ )}