diff --git a/src/assets/Alert.svg b/src/assets/Alert.svg new file mode 100644 index 0000000..0cac7fa --- /dev/null +++ b/src/assets/Alert.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/Circular-indeterminate progress indicator.svg b/src/assets/Circular-indeterminate progress indicator.svg new file mode 100644 index 0000000..ad20a93 --- /dev/null +++ b/src/assets/Circular-indeterminate progress indicator.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/Mascot.svg b/src/assets/Mascot.svg new file mode 100644 index 0000000..4641e42 --- /dev/null +++ b/src/assets/Mascot.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/Practice.svg b/src/assets/Practice.svg new file mode 100644 index 0000000..cb9a01d --- /dev/null +++ b/src/assets/Practice.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..58ec1a4 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/success.svg b/src/assets/success.svg new file mode 100644 index 0000000..4bf1bc3 --- /dev/null +++ b/src/assets/success.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/brand/BrandLogo.tsx b/src/components/brand/BrandLogo.tsx index 7653cc1..082badc 100644 --- a/src/components/brand/BrandLogo.tsx +++ b/src/components/brand/BrandLogo.tsx @@ -1,15 +1,17 @@ -export function BrandLogo() { +import logoSrc from "../../assets/logo.svg"; + +export function BrandLogo({ + className = "h-10", + variant = "dark", +}: { + className?: string; + variant?: "light" | "dark"; +}) { return ( -
-
-
-
-
-
Yimaru
-
Academy
-
-
- ) + Yimaru Academy + ); } - - diff --git a/src/pages/DashboardPage.tsx b/src/pages/DashboardPage.tsx index aae2257..44d283b 100644 --- a/src/pages/DashboardPage.tsx +++ b/src/pages/DashboardPage.tsx @@ -11,6 +11,7 @@ import { Bell, UsersRound, } from "lucide-react" +import spinnerSrc from "../assets/Circular-indeterminate progress indicator.svg" import { Area, AreaChart, @@ -26,6 +27,7 @@ import { YAxis, } from "recharts" import { StatCard } from "../components/dashboard/StatCard" +import alertSrc from "../assets/Alert.svg" import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" // import { cn } from "../lib/utils" import { getTeamMemberById } from "../api/team.api" @@ -110,9 +112,15 @@ export function DashboardPage() {
{loading ? ( -
Loading dashboard…
+
+ + Loading dashboard… +
) : !dashboard ? ( -
Failed to load dashboard data.
+
+ + Failed to load dashboard data. +
) : ( <> {/* Stat Cards */} diff --git a/src/pages/analytics/AnalyticsPage.tsx b/src/pages/analytics/AnalyticsPage.tsx index 882fd0c..61957f4 100644 --- a/src/pages/analytics/AnalyticsPage.tsx +++ b/src/pages/analytics/AnalyticsPage.tsx @@ -1,4 +1,5 @@ import { useEffect, useState } from "react" +import spinnerSrc from "../../assets/Circular-indeterminate progress indicator.svg" import { Area, AreaChart, @@ -14,6 +15,7 @@ import { XAxis, YAxis, } from "recharts" +import alertSrc from "../../assets/Alert.svg" import { Users, BadgeCheck, @@ -304,7 +306,10 @@ export function AnalyticsPage() { return (
Analytics
-
Loading analytics…
+
+ + Loading analytics… +
) } @@ -314,6 +319,7 @@ export function AnalyticsPage() {
Analytics
+ Failed to load analytics data.
- {/* Large brand icon */} -
-
-
-

- Yimaru Academy -

+ {/* Brand logo */} +

Manage your academy, track student progress, and streamline operations — all from one powerful dashboard. @@ -64,9 +60,7 @@ export function ForgotPasswordPage() { {submitted ? ( /* Success state */

-
- -
+

Check your email

diff --git a/src/pages/auth/LoginPage.tsx b/src/pages/auth/LoginPage.tsx index 5bc846c..5ce8438 100644 --- a/src/pages/auth/LoginPage.tsx +++ b/src/pages/auth/LoginPage.tsx @@ -6,6 +6,7 @@ import { BrandLogo } from "../../components/brand/BrandLogo"; import { Button } from "../../components/ui/button"; import { Input } from "../../components/ui/input"; + import { login, loginWithGoogle } from "../../api/auth.api"; import type { LoginRequest } from "../../types/auth.types"; import type { LoginResult } from "../../api/auth.api"; @@ -216,13 +217,8 @@ export function LoginPage() {
- {/* Large brand icon */} -
-
-
-

- Yimaru Academy -

+ {/* Brand logo */} +

Manage your academy, track student progress, and streamline operations — all from one powerful dashboard. diff --git a/src/pages/content-management/CourseCategoryPage.tsx b/src/pages/content-management/CourseCategoryPage.tsx index fd44f88..79cd848 100644 --- a/src/pages/content-management/CourseCategoryPage.tsx +++ b/src/pages/content-management/CourseCategoryPage.tsx @@ -1,6 +1,8 @@ import { useEffect, useState } from "react" import { Link } from "react-router-dom" -import { FolderOpen, RefreshCw, AlertCircle, BookOpen } from "lucide-react" +import { FolderOpen, RefreshCw, BookOpen } from "lucide-react" +import spinnerSrc from "../../assets/Circular-indeterminate progress indicator.svg" +import alertSrc from "../../assets/Alert.svg" import { Card, CardContent, CardHeader, CardTitle } from "../../components/ui/card" import { getCourseCategories } from "../../api/courses.api" import type { CourseCategory } from "../../types/course.types" @@ -31,10 +33,7 @@ export function CourseCategoryPage() { if (loading) { return (

-
-
-
-
+ Loading categories…
) @@ -44,9 +43,7 @@ export function CourseCategoryPage() { return (
-
- -
+

{error}

diff --git a/src/pages/content-management/CoursesPage.tsx b/src/pages/content-management/CoursesPage.tsx index ccb9be2..6ed9096 100644 --- a/src/pages/content-management/CoursesPage.tsx +++ b/src/pages/content-management/CoursesPage.tsx @@ -1,7 +1,10 @@ import { useEffect, useState, useRef } from "react" import { Link, useParams, useNavigate } from "react-router-dom" -import { Plus, ArrowLeft, BookOpen, ToggleLeft, ToggleRight, X, Trash2, MoreVertical, Edit, RefreshCw, AlertCircle } from "lucide-react" +import { Plus, ArrowLeft, ToggleLeft, ToggleRight, X, Trash2, MoreVertical, Edit, AlertCircle } from "lucide-react" +import practiceSrc from "../../assets/Practice.svg" +import spinnerSrc from "../../assets/Circular-indeterminate progress indicator.svg" import { Card, CardContent } from "../../components/ui/card" +import alertSrc from "../../assets/Alert.svg" import { Button } from "../../components/ui/button" import { Badge } from "../../components/ui/badge" import { Input } from "../../components/ui/input" @@ -238,9 +241,7 @@ export function CoursesPage() { if (loading) { return (

-
- -
+

Loading courses...

) @@ -250,9 +251,7 @@ export function CoursesPage() { return (
-
- -
+

{error}

@@ -291,9 +290,7 @@ export function CoursesPage() { {courses.length === 0 ? ( -
- -
+

No courses yet

No courses found in this category