From fc43f73b82f9d29c53ab05bc6834a59cc91cb078 Mon Sep 17 00:00:00 2001 From: Millian Lamiaux Date: Tue, 17 Mar 2026 11:47:17 +0100 Subject: [PATCH] feat: add success toasts for create operations and login - Add toast.success when workout is created or updated - Add toast.success when user logs in successfully - Show descriptive messages with entity names - Improves user feedback for successful operations --- admin-web/app/login/page.tsx | 5 +++++ admin-web/components/workout-form.tsx | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/admin-web/app/login/page.tsx b/admin-web/app/login/page.tsx index 1d78f84..092f676 100644 --- a/admin-web/app/login/page.tsx +++ b/admin-web/app/login/page.tsx @@ -2,6 +2,7 @@ import { useState } from "react"; import { useRouter } from "next/navigation"; +import { toast } from "sonner"; import { supabase } from "@/lib/supabase"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -43,6 +44,10 @@ export default function LoginPage() { throw new Error("Not authorized as admin"); } + toast.success("Welcome back!", { + description: "You have successfully signed in." + }) + // Force a full page reload to ensure middleware picks up the session window.location.href = "/"; } catch (err) { diff --git a/admin-web/components/workout-form.tsx b/admin-web/components/workout-form.tsx index 417eb55..86d6b7a 100644 --- a/admin-web/components/workout-form.tsx +++ b/admin-web/components/workout-form.tsx @@ -213,6 +213,10 @@ export default function WorkoutForm({ initialData, mode = "create" }: WorkoutFor } } + toast.success(mode === "edit" ? "Workout updated" : "Workout created", { + description: `"${title}" has been ${mode === "edit" ? "updated" : "created"} successfully.` + }) + router.push(`/workouts/${result.data.id}`) } catch (err) { console.error("Failed to save workout:", err)