feat: add canvas-confetti integration and AuroraButton component; enhance UI with animations and improve button interactions
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user