Update PrepPilot AI branding, add AI powered tag, fix cbt filters and PDF export

This commit is contained in:
2026-09-25 12:35:46 +05:30
parent 1004204ee3
commit 058b947830
3 changed files with 27 additions and 5 deletions

View File

@@ -15,6 +15,7 @@ export default function AIDailyPracticePage() {
const [attempts, setAttempts] = useState<any[]>([])
const [loading, setLoading] = useState(true)
const [dateFilter, setDateFilter] = useState("")
const [diffFilter, setDiffFilter] = useState("Mixed")
const [selectedPdfDpp, setSelectedPdfDpp] = useState<any | null>(null)
const [isFullScreen, setIsFullScreen] = useState(false)
const [copiedShare, setCopiedShare] = useState(false)
@@ -73,6 +74,9 @@ export default function AIDailyPracticePage() {
const scheduledDate = new Date(dpp.scheduled_date).toISOString().split('T')[0];
if (scheduledDate !== dateFilter) return false;
}
if (diffFilter !== "Mixed" && dpp.difficulty !== diffFilter) {
return false;
}
return true;
});
@@ -100,9 +104,9 @@ export default function AIDailyPracticePage() {
<div>
<h1 className="text-3xl md:text-4xl font-black tracking-tight flex items-center gap-3 mb-1">
<span className="p-2.5 rounded-xl bg-cyan-50 dark:bg-[var(--cyan-ai-10)] border border-cyan-300/60 dark:border-[var(--cyan-ai-20)]">
<Sparkles className="text-cyan-700 dark:text-[var(--cyan-ai)]" size={28} />
<Zap className="text-cyan-700 dark:text-[var(--cyan-ai)]" size={28} />
</span>
AI Daily Practice (DPP)
PrepPilot AI
</h1>
<p className="text-muted-foreground text-base font-medium max-w-2xl pl-1">
Launch AI-generated Daily Practice Problems (DPPs) tailored to your exam pattern and weak areas.

View File

@@ -1,10 +1,28 @@
"use client"
import { TutorChat } from "@/components/AI/TutorChat"
import { BrainCircuit, Sparkles } from "lucide-react"
export default function TutorChatPage() {
return (
<div className="h-[calc(100vh-100px)] w-full flex flex-col pt-4 max-w-7xl mx-auto px-4">
<div className="h-[calc(100vh-100px)] w-full flex flex-col pt-4 max-w-7xl mx-auto px-4 gap-4">
<div className="border-b border-border/50 pb-4">
<div className="flex items-start justify-between gap-4 flex-wrap">
<div>
<h1 className="text-3xl md:text-4xl font-black tracking-tight flex items-center gap-3 mb-1">
<span className="p-2.5 rounded-xl bg-cyan-50 dark:bg-[var(--cyan-ai-10)] border border-cyan-300/60 dark:border-[var(--cyan-ai-20)]">
<BrainCircuit className="text-cyan-700 dark:text-[var(--cyan-ai)]" size={28} />
</span>
AI Tutor
</h1>
</div>
<div className="flex items-center gap-2 shrink-0">
<span className="text-xs font-bold uppercase tracking-wider text-[var(--cyan-ai)] bg-cyan-50 dark:bg-[var(--cyan-ai-10)] border border-cyan-300/60 dark:border-[var(--cyan-ai-20)] px-3 py-1.5 rounded-full flex items-center gap-1.5">
<Sparkles size={12} /> AI Powered
</span>
</div>
</div>
</div>
<div className="flex-1 rounded-3xl overflow-hidden border border-border/50 shadow-xl bg-background flex flex-col h-full">
<TutorChat />
</div>

View File

@@ -25,7 +25,7 @@ const QUICK_PROMPTS = [
export function TutorChat() {
const [messages, setMessages] = useState<Message[]>([
{ role: "assistant", content: "Hello! I'm your PragatiVeer AI Tutor. Ask me anything — from concept explanations to step-by-step problem solving for JEE & NEET topics." }
{ role: "assistant", content: "Hello! I'm your PrepPilot AI. Ask me anything — from concept explanations to step-by-step problem solving for JEE & NEET topics." }
])
const [input, setInput] = useState("")
const [streaming, setStreaming] = useState(false)
@@ -121,7 +121,7 @@ export function TutorChat() {
<BrainCircuit size={18} className="text-background" />
</div>
<div className="flex-1">
<div className="text-[13px] font-bold text-primary">PragatiVeer AI Tutor</div>
<div className="text-[13px] font-bold text-primary">PrepPilot AI</div>
<div className="text-[11px] text-green-500 flex items-center gap-1 font-medium">
<span className="w-1.5 h-1.5 rounded-full bg-green-500" /> Online · JEE &amp; NEET specialist
</div>