Files
stripstream/src/app/page.tsx
2025-02-23 21:30:34 +01:00

44 lines
1.3 KiB
TypeScript

import { HomeContent } from "@/components/home/HomeContent";
import { HomeService } from "@/lib/services/home.service";
import { redirect } from "next/navigation";
import { revalidatePath } from "next/cache";
import { withPageTiming } from "@/lib/hoc/withPageTiming";
async function refreshHome() {
"use server";
try {
await HomeService.invalidateHomeCache();
revalidatePath("/");
return { success: true };
} catch (error) {
console.error("Erreur lors du rafraîchissement:", error);
return { success: false, error: "Erreur lors du rafraîchissement de la page d'accueil" };
}
}
async function HomePage() {
try {
const data = await HomeService.getHomeData();
return <HomeContent data={data} refreshHome={refreshHome} />;
} catch (error) {
// Si l'erreur indique une configuration manquante, rediriger vers les préférences
if (error instanceof Error && error.message.includes("Configuration Komga manquante")) {
redirect("/settings");
}
return (
<main className="container mx-auto px-4 py-8">
<div className="rounded-md bg-destructive/15 p-4">
<p className="text-sm text-destructive">
{error instanceof Error ? error.message : "Une erreur est survenue"}
</p>
</div>
</main>
);
}
}
export default withPageTiming("HomePage", HomePage);