diff --git a/ApiCore-Frontend/src/app/(app)/feedings/new/page.tsx b/ApiCore-Frontend/src/app/(app)/feedings/new/page.tsx index 5f42cd7..9944626 100644 --- a/ApiCore-Frontend/src/app/(app)/feedings/new/page.tsx +++ b/ApiCore-Frontend/src/app/(app)/feedings/new/page.tsx @@ -3,6 +3,7 @@ import { FormEvent, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { toast } from "sonner"; import { fetchColonies } from "@/lib/colonies/api"; import { createFeeding } from "@/lib/feedings/api"; import { FeedType } from "@/lib/feedings/types"; @@ -60,6 +61,7 @@ export default function NewFeedingPage() { void queryClient.invalidateQueries({ queryKey: ["colonies", feeding.colonyId, "feedings", "summary"], }); + toast.success("Fütterung gespeichert"); router.push(`/colonies/${feeding.colonyId}`); }, onError: () => { diff --git a/ApiCore-Frontend/src/app/(app)/harvests/new/page.tsx b/ApiCore-Frontend/src/app/(app)/harvests/new/page.tsx index f4d2599..0f123f4 100644 --- a/ApiCore-Frontend/src/app/(app)/harvests/new/page.tsx +++ b/ApiCore-Frontend/src/app/(app)/harvests/new/page.tsx @@ -3,6 +3,7 @@ import { FormEvent, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { toast } from "sonner"; import { fetchApiaries } from "@/lib/apiaries/api"; import { fetchColonies } from "@/lib/colonies/api"; import { createHarvest } from "@/lib/harvests/api"; @@ -47,6 +48,7 @@ export default function NewHarvestPage() { mutationFn: createHarvest, onSuccess: (harvest) => { void queryClient.invalidateQueries({ queryKey: ["harvests"] }); + toast.success("Ernte gespeichert"); router.push(`/harvests/${harvest.id}`); }, onError: () => { diff --git a/ApiCore-Frontend/src/app/(app)/inspections/new/page.tsx b/ApiCore-Frontend/src/app/(app)/inspections/new/page.tsx index 906e750..60f89ea 100644 --- a/ApiCore-Frontend/src/app/(app)/inspections/new/page.tsx +++ b/ApiCore-Frontend/src/app/(app)/inspections/new/page.tsx @@ -3,6 +3,7 @@ import { FormEvent, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { toast } from "sonner"; import { fetchColonies } from "@/lib/colonies/api"; import { createInspection } from "@/lib/inspections/api"; import { Button } from "@/components/ui/button"; @@ -51,6 +52,7 @@ export default function NewInspectionPage() { void queryClient.invalidateQueries({ queryKey: ["colonies", inspection.colonyId, "inspections"], }); + toast.success("Durchsicht gespeichert"); router.push(`/colonies/${inspection.colonyId}`); }, onError: () => { diff --git a/ApiCore-Frontend/src/app/(app)/tasks/new/page.tsx b/ApiCore-Frontend/src/app/(app)/tasks/new/page.tsx index 0ce88dc..e36c84d 100644 --- a/ApiCore-Frontend/src/app/(app)/tasks/new/page.tsx +++ b/ApiCore-Frontend/src/app/(app)/tasks/new/page.tsx @@ -3,6 +3,7 @@ import { FormEvent, useState } from "react"; import { useRouter } from "next/navigation"; import { useMutation, useQueryClient } from "@tanstack/react-query"; +import { toast } from "sonner"; import { createTask } from "@/lib/tasks/api"; import { TaskPriority } from "@/lib/tasks/types"; import { Button } from "@/components/ui/button"; @@ -33,6 +34,7 @@ export default function NewTaskPage() { mutationFn: createTask, onSuccess: () => { void queryClient.invalidateQueries({ queryKey: ["tasks"] }); + toast.success("Aufgabe angelegt"); router.push("/tasks"); }, onError: () => { diff --git a/ApiCore-Frontend/src/app/(app)/treatments/new/page.tsx b/ApiCore-Frontend/src/app/(app)/treatments/new/page.tsx index 0a4c29a..566c34b 100644 --- a/ApiCore-Frontend/src/app/(app)/treatments/new/page.tsx +++ b/ApiCore-Frontend/src/app/(app)/treatments/new/page.tsx @@ -3,6 +3,7 @@ import { FormEvent, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { toast } from "sonner"; import { fetchColonies } from "@/lib/colonies/api"; import { createTreatment } from "@/lib/treatments/api"; import { Button } from "@/components/ui/button"; @@ -48,6 +49,7 @@ export default function NewTreatmentPage() { void queryClient.invalidateQueries({ queryKey: ["colonies", treatment.colonyId, "treatments"], }); + toast.success("Behandlung gespeichert"); router.push(`/colonies/${treatment.colonyId}`); }, onError: () => { diff --git a/ApiCore-Frontend/src/app/(app)/varroa/new/page.tsx b/ApiCore-Frontend/src/app/(app)/varroa/new/page.tsx index 3db9a45..2163c71 100644 --- a/ApiCore-Frontend/src/app/(app)/varroa/new/page.tsx +++ b/ApiCore-Frontend/src/app/(app)/varroa/new/page.tsx @@ -3,6 +3,7 @@ import { FormEvent, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { toast } from "sonner"; import { fetchColonies } from "@/lib/colonies/api"; import { createVarroaMeasurement } from "@/lib/varroa/api"; import { VarroaMethod } from "@/lib/varroa/types"; @@ -56,6 +57,7 @@ export default function NewVarroaMeasurementPage() { void queryClient.invalidateQueries({ queryKey: ["colonies", measurement.colonyId, "varroa-measurements"], }); + toast.success("Varroamessung gespeichert"); router.push(`/colonies/${measurement.colonyId}`); }, onError: () => { diff --git a/ApiCore-Frontend/src/app/layout.tsx b/ApiCore-Frontend/src/app/layout.tsx index 3529ed8..e608fce 100644 --- a/ApiCore-Frontend/src/app/layout.tsx +++ b/ApiCore-Frontend/src/app/layout.tsx @@ -2,6 +2,7 @@ import type { Metadata } from "next"; import { Space_Grotesk, Inter, IBM_Plex_Mono } from "next/font/google"; import "./globals.css"; import { Providers } from "./providers"; +import { Toaster } from "@/components/ui/sonner"; const spaceGrotesk = Space_Grotesk({ variable: "--font-heading", @@ -33,6 +34,7 @@ export default function RootLayout({ children }: LayoutProps<"/">) { > {children} + );