feat: add canvas-confetti integration and AuroraButton component; enhance UI with animations and improve button interactions

This commit is contained in:
2025-08-26 15:58:30 -06:00
parent 56b0dc8a62
commit 196aea5df9
8 changed files with 143 additions and 41 deletions

View File

@@ -6,6 +6,8 @@ import { supabase } from "@/auth/supabase"
import { Button } from "@/components/ui/button"
import { Badge } from "@/components/ui/badge"
import { Input } from "@/components/ui/input"
import confetti from "canvas-confetti"
import {
Accordion, AccordionContent, AccordionItem, AccordionTrigger,
} from "@/components/ui/accordion"
@@ -514,6 +516,11 @@ function MejorarAIButton({ asignaturaId, onApply }: {
}
const nuevo = await res.json()
onApply(nuevo as Asignatura)
confetti({
particleCount: 120,
spread: 80,
origin: { y: 0.6 },
})
setOpen(false)
} catch (e: any) {
alert(e?.message ?? "Error al mejorar la asignatura")
@@ -547,7 +554,24 @@ function MejorarAIButton({ asignaturaId, onApply }: {
</label>
<DialogFooter>
<Button variant="outline" onClick={() => setOpen(false)}>Cancelar</Button>
<Button onClick={apply} disabled={!prompt.trim() || loading}>{loading ? "Aplicando…" : "Aplicar ajuste"}</Button>
<Button
onClick={apply}
disabled={!prompt.trim() || loading}
className={
loading
? "relative overflow-hidden text-white shadow-md"
: ""
}
>
{loading ? (
<span className="relative z-10">Pensando</span>
) : (
"Aplicar ajuste"
)}
{loading && (
<span className="absolute inset-0 animate-aurora" />
)}
</Button>
</DialogFooter>
</DialogContent>
</Dialog>