feat: Image is always an unoptimized original
This commit is contained in:
@@ -129,11 +129,7 @@ function MediaCard({ item, onClick }: MediaCardProps) {
|
||||
<div className="relative aspect-[2/3] bg-muted">
|
||||
{isSeries ? (
|
||||
<>
|
||||
<SeriesCover
|
||||
series={item as KomgaSeries}
|
||||
alt={`Couverture de ${title}`}
|
||||
quality={100}
|
||||
/>
|
||||
<SeriesCover series={item as KomgaSeries} alt={`Couverture de ${title}`} />
|
||||
<div className="absolute inset-0 bg-black/60 opacity-0 hover:opacity-100 transition-opacity duration-200 flex flex-col justify-end p-3">
|
||||
<h3 className="font-medium text-sm text-white line-clamp-2">{title}</h3>
|
||||
<p className="text-xs text-white/80 mt-1">
|
||||
@@ -146,7 +142,6 @@ function MediaCard({ item, onClick }: MediaCardProps) {
|
||||
<BookCover
|
||||
book={item as KomgaBook}
|
||||
alt={`Couverture de ${title}`}
|
||||
quality={100}
|
||||
showControls={false}
|
||||
overlayVariant="home"
|
||||
/>
|
||||
|
||||
@@ -77,8 +77,6 @@ export function SeriesGrid({ series, isCompact = false }: SeriesGridProps) {
|
||||
<SeriesCover
|
||||
series={series as KomgaSeries}
|
||||
alt={t("series.coverAlt", { title: series.metadata.title })}
|
||||
quality={25}
|
||||
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
|
||||
/>
|
||||
<div className="absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/60 to-transparent p-4 space-y-2 translate-y-full group-hover:translate-y-0 transition-transform duration-200">
|
||||
<h3 className="font-medium text-sm text-white line-clamp-2">{series.metadata.title}</h3>
|
||||
|
||||
@@ -126,7 +126,6 @@ export const SeriesHeader = ({ series, refreshSeries }: SeriesHeaderProps) => {
|
||||
series={series as KomgaSeries}
|
||||
alt={t("series.header.coverAlt", { title: series.metadata.title })}
|
||||
className="blur-sm scale-105 brightness-50"
|
||||
quality={60}
|
||||
showProgressUi={false}
|
||||
/>
|
||||
</div>
|
||||
@@ -139,7 +138,6 @@ export const SeriesHeader = ({ series, refreshSeries }: SeriesHeaderProps) => {
|
||||
<SeriesCover
|
||||
series={series as KomgaSeries}
|
||||
alt={t("series.header.coverAlt", { title: series.metadata.title })}
|
||||
quality={90}
|
||||
showProgressUi={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -51,8 +51,6 @@ export function BookCover({
|
||||
book,
|
||||
alt = "Image de couverture",
|
||||
className,
|
||||
quality = 80,
|
||||
sizes = "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",
|
||||
showProgressUi = true,
|
||||
onSuccess,
|
||||
showControls = true,
|
||||
@@ -88,8 +86,6 @@ export function BookCover({
|
||||
imageUrl={imageUrl}
|
||||
alt={alt}
|
||||
className={className}
|
||||
quality={quality}
|
||||
sizes={sizes}
|
||||
isCompleted={isCompleted}
|
||||
/>
|
||||
{showProgress && <ProgressBar progress={currentPage} total={totalPages} type="book" />}
|
||||
|
||||
@@ -10,8 +10,6 @@ interface CoverClientProps {
|
||||
imageUrl: string;
|
||||
alt: string;
|
||||
className?: string;
|
||||
quality?: number;
|
||||
sizes?: string;
|
||||
isCompleted?: boolean;
|
||||
}
|
||||
|
||||
@@ -19,8 +17,6 @@ export const CoverClient = ({
|
||||
imageUrl,
|
||||
alt,
|
||||
className,
|
||||
quality = 80,
|
||||
sizes = "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",
|
||||
isCompleted = false,
|
||||
}: CoverClientProps) => {
|
||||
const [imageError, setImageError] = useState(false);
|
||||
@@ -43,15 +39,13 @@ export const CoverClient = ({
|
||||
fill
|
||||
className={cn(
|
||||
"object-cover transition-opacity duration-300 rounded-lg",
|
||||
isLoading ? "opacity-0" : "opacity-100",
|
||||
isCompleted && "opacity-50",
|
||||
className
|
||||
)}
|
||||
sizes={sizes}
|
||||
onError={() => setImageError(true)}
|
||||
onLoad={() => setIsLoading(false)}
|
||||
loading={"lazy"}
|
||||
quality={quality}
|
||||
loading="lazy"
|
||||
unoptimized
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -9,8 +9,6 @@ export function SeriesCover({
|
||||
series,
|
||||
alt = "Image de couverture",
|
||||
className,
|
||||
quality = 80,
|
||||
sizes = "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",
|
||||
showProgressUi = true,
|
||||
}: SeriesCoverProps) {
|
||||
const imageUrl = getImageUrl("series", series.id);
|
||||
@@ -22,14 +20,7 @@ export function SeriesCover({
|
||||
|
||||
return (
|
||||
<div className="relative w-full h-full">
|
||||
<CoverClient
|
||||
imageUrl={imageUrl}
|
||||
alt={alt}
|
||||
className={className}
|
||||
quality={quality}
|
||||
sizes={sizes}
|
||||
isCompleted={isCompleted}
|
||||
/>
|
||||
<CoverClient imageUrl={imageUrl} alt={alt} className={className} isCompleted={isCompleted} />
|
||||
{showProgress && <ProgressBar progress={readBooks} total={totalBooks} type="series" />}
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user