diff --git a/app/lib/api.ts b/app/lib/api.ts index 082b643..220d076 100644 --- a/app/lib/api.ts +++ b/app/lib/api.ts @@ -160,6 +160,7 @@ export const getColles = async (startDate: DateTime) => { }; export interface Colle { + relatives: Colle[]; id: number; date: string; // ISO date string subject: { diff --git a/app/routes/colles.tsx b/app/routes/colles.tsx index df73bee..c16a6dd 100644 --- a/app/routes/colles.tsx +++ b/app/routes/colles.tsx @@ -2,7 +2,7 @@ import "katex/dist/katex.min.css"; import { DomUtils, parseDocument } from "htmlparser2"; import Latex from "react-latex-next"; import { useState } from "react"; -import { Navigate, useNavigate, useParams } from "react-router"; +import { Link, Navigate, useNavigate, useParams } from "react-router"; import { Button } from "~/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card"; import { @@ -19,6 +19,7 @@ import { RefreshCw, Share2, ExternalLink, + Users, } from "lucide-react"; import { Separator } from "~/components/ui/separator"; import ColleDetailsSkeleton from "~/components/details/skeleton-details"; @@ -27,19 +28,17 @@ import Error from "~/components/error"; import { Badge } from "~/components/ui/badge"; import { AUTH_ERROR, refreshColle, useColle, useUser } from "~/lib/api"; import { toast } from "sonner"; -import { formatDate, formatGrade, formatTime, goBack } from "~/lib/utils"; +import { + formatDate, + formatGrade, + formatTime, + getColorClass, + getSubjectColor, + getSubjectEmoji, + goBack, +} from "~/lib/utils"; import { useQueryClient } from "@tanstack/react-query"; -// TODO: Preferences for subject colors -const getSubjectColor = (_: string) => { - // Mock placeholder function - return "bg-blue-100 text-blue-800"; // Default color -}; -const getSubjectEmoji = (_: string) => { - // Mock placeholder function - return "📚"; // Default emoji -}; - // TODO: Move all code to components export default function ColleDetailPage() { const { user, isLoading: isUserLoading, error: userError } = useUser(); @@ -143,8 +142,10 @@ export default function ColleDetailPage() { }); }; - const subjectColor = getSubjectColor(colle.subject.name); - const subjectEmoji = getSubjectEmoji(colle.subject.name); + const subjectColor = getColorClass( + getSubjectColor(colle.subject.name, user.preferences) + ); + const subjectEmoji = getSubjectEmoji(colle.subject.name, user.preferences); return (