From c84f5685fe56a7d0592baeed62eebea8a74c12be Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Wed, 12 Feb 2025 15:56:35 +0100 Subject: [PATCH] =?UTF-8?q?style:=20am=C3=A9lioration=20de=20la=20visibili?= =?UTF-8?q?t=C3=A9=20des=20toasts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/page.tsx | 25 +++++++++++++++++-------- src/components/ui/toast.tsx | 12 ++++++++---- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 19ff8c3..6e83b50 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,6 +4,7 @@ import { HomeContent } from "@/components/home/HomeContent"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { KomgaBook, KomgaSeries } from "@/types/komga"; +import { useToast } from "@/components/ui/use-toast"; interface HomeData { ongoing: KomgaSeries[]; @@ -13,6 +14,7 @@ interface HomeData { export default function HomePage() { const router = useRouter(); + const { toast } = useToast(); const [data, setData] = useState(null); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); @@ -27,7 +29,6 @@ export default function HomePage() { } const jsonData = await response.json(); - // Transformer les données pour correspondre à l'interface HomeData setData({ ongoing: jsonData.ongoing || [], recentlyRead: jsonData.recentlyRead || [], @@ -35,14 +36,25 @@ export default function HomePage() { }); } catch (error) { console.error("Erreur lors de la récupération des données:", error); - setError(error instanceof Error ? error.message : "Une erreur est survenue"); + const errorMessage = error instanceof Error ? error.message : "Une erreur est survenue"; + setError(errorMessage); + + // Si l'erreur indique une configuration manquante, rediriger vers les préférences + if (errorMessage.includes("Configuration Komga manquante")) { + toast({ + title: "Configuration requise", + description: "Veuillez configurer votre serveur Komga pour continuer", + variant: "destructive", + }); + router.push("/settings"); + } } finally { setIsLoading(false); } }; fetchHomeData(); - }, []); + }, [router, toast]); if (isLoading) { return ( @@ -66,7 +78,7 @@ export default function HomePage() { if (error) { return ( -
+

{error}

@@ -74,8 +86,5 @@ export default function HomePage() { ); } - if (!data) return null; - console.log("PAGE", data); - - return ; + return data ? : null; } diff --git a/src/components/ui/toast.tsx b/src/components/ui/toast.tsx index 30519df..98d568d 100644 --- a/src/components/ui/toast.tsx +++ b/src/components/ui/toast.tsx @@ -27,9 +27,9 @@ const toastVariants = cva( { variants: { variant: { - default: "border bg-background text-foreground", + default: "border bg-primary text-primary-foreground shadow-lg", destructive: - "destructive group border-destructive bg-destructive text-destructive-foreground", + "destructive group border-destructive bg-destructive text-destructive-foreground font-medium", }, }, defaultVariants: { @@ -89,7 +89,11 @@ const ToastTitle = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( - + )); ToastTitle.displayName = ToastPrimitives.Title.displayName; @@ -99,7 +103,7 @@ const ToastDescription = React.forwardRef< >(({ className, ...props }, ref) => ( ));