From c904a41d140cb5d46c89c87f2f0637afc39a5e87 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Sun, 16 Feb 2025 15:30:33 +0100 Subject: [PATCH] fix(images): no more bullshit percent on load --- src/components/ui/image-loader.tsx | 57 ++++-------------------------- 1 file changed, 7 insertions(+), 50 deletions(-) diff --git a/src/components/ui/image-loader.tsx b/src/components/ui/image-loader.tsx index 465541b..bad38c0 100644 --- a/src/components/ui/image-loader.tsx +++ b/src/components/ui/image-loader.tsx @@ -1,6 +1,5 @@ "use client"; -import { Loader2 } from "lucide-react"; import { useEffect, useState } from "react"; import { cn } from "@/lib/utils"; @@ -8,60 +7,18 @@ interface ImageLoaderProps { isLoading: boolean; } -export function ImageLoader({ isLoading }: ImageLoaderProps) { - const [progress, setProgress] = useState(0); - const [show, setShow] = useState(false); - - useEffect(() => { - let timeout: NodeJS.Timeout; - if (isLoading) { - setShow(true); - setProgress(0); - const duration = 2000; // 2 secondes - const steps = 20; - const increment = 90 / steps; // On va jusqu'à 90% max en simulation - const stepDuration = duration / steps; - - let currentStep = 0; - const interval = setInterval(() => { - currentStep++; - if (currentStep <= steps) { - setProgress((prev) => { - const next = prev + increment; - return Math.min(next, 90); // Ne pas dépasser 90% - }); - } else { - clearInterval(interval); - } - }, stepDuration); - - return () => clearInterval(interval); - } else { - setProgress(100); - timeout = setTimeout(() => { - setShow(false); - }, 200); - } - - return () => { - if (timeout) clearTimeout(timeout); - }; - }, [isLoading]); - - if (!show) return null; - +export const ImageLoader = ({ isLoading }: ImageLoaderProps) => { return (
-
- - {Math.round(progress)}% +
+
+
); -} +};