feat: integrate Sentry for error tracking and enhance user notifications

- Added Sentry integration for error tracking across various components, including error boundaries and user actions.
- Updated global error handling to capture exceptions and provide detailed feedback to users.
- Enhanced user notifications with toast messages for actions such as credit management, image generation, and canvas exports.
- Improved user experience by displaying relevant messages during interactions, ensuring better visibility of system states and errors.
This commit is contained in:
Matthias
2026-03-27 18:14:04 +01:00
parent 5da0204163
commit 2f89465e82
35 changed files with 2822 additions and 186 deletions

View File

@@ -4,6 +4,7 @@ import { useState, useCallback, useRef } from "react";
import { useMutation } from "convex/react";
import { ArrowUpRight, MoreHorizontal, Pencil } from "lucide-react";
import { toast } from "@/lib/toast";
import { msg } from "@/lib/toast-messages";
import { Button } from "@/components/ui/button";
import {
@@ -46,7 +47,8 @@ export default function CanvasCard({ canvas, onNavigate }: CanvasCardProps) {
const handleSave = useCallback(async () => {
const trimmedName = editName.trim();
if (!trimmedName) {
toast.error("Name darf nicht leer sein");
const { title, desc } = msg.dashboard.renameEmpty;
toast.error(title, desc);
return;
}
if (trimmedName === canvas.name) {
@@ -59,10 +61,10 @@ export default function CanvasCard({ canvas, onNavigate }: CanvasCardProps) {
setIsSaving(true);
try {
await updateCanvas({ canvasId: canvas._id, name: trimmedName });
toast.success("Arbeitsbereich umbenannt");
toast.success(msg.dashboard.renameSuccess.title);
setIsEditing(false);
} catch {
toast.error("Fehler beim Umbenennen");
toast.error(msg.dashboard.renameFailed.title);
} finally {
setIsSaving(false);
saveInFlightRef.current = false;