fix portrait click

This commit is contained in:
dev.daminik00 2025-10-09 19:57:38 +02:00
parent 94c337428f
commit 3c1cbfa571
2 changed files with 16 additions and 11 deletions

View File

@ -1,6 +1,7 @@
"use client";
import Image from "next/image";
import { useRouter } from "next/navigation";
import { Card, Icon, IconName, Typography } from "@/components/ui";
import { PartnerPortrait } from "@/entities/dashboard/types";
@ -35,7 +36,7 @@ const getStatusConfig = (status: PartnerPortrait["status"]) => {
case "processing":
return {
icon: <Icon name={IconName.Loader} className={styles.iconProcessing} size={{ width: 16, height: 16 }} />,
text: "Generating...",
text: "Processing...",
showCheckmark: false,
className: styles.statusProcessing,
};
@ -62,6 +63,8 @@ export default function PortraitCard({
status: initialStatus,
imageUrl: initialImageUrl,
}: PortraitCardProps) {
const router = useRouter();
// Use polling hook to update status in real-time
const { status, imageUrl: polledImageUrl } = useGenerationStatus(_id, initialStatus);
@ -71,8 +74,18 @@ export default function PortraitCard({
const statusConfig = getStatusConfig(status as PartnerPortrait["status"]);
const isReady = status === "done" && imageUrl;
const handleClick = () => {
if (isReady) {
router.push(`/portraits/${_id}`);
}
};
return (
<Card className={`${styles.card} ${!isReady ? styles.disabled : ""}`}>
<Card
className={`${styles.card} ${!isReady ? styles.disabled : ""}`}
onClick={handleClick}
style={{ cursor: isReady ? 'pointer' : 'default' }}
>
<div className={styles.imageContainer}>
{imageUrl ? (
<Image

View File

@ -1,5 +1,3 @@
import Link from "next/link";
import { Grid, Section } from "@/components/ui";
import { PartnerPortrait } from "@/entities/dashboard/types";
@ -20,13 +18,7 @@ export default function PortraitsSection({ portraits }: PortraitsSectionProps) {
<Section title="Portraits" contentClassName={styles.sectionContent}>
<Grid columns={portraits.length} className={styles.grid}>
{portraits.map(portrait => (
<Link
href={portrait.status === "done" && portrait.imageUrl ? `/portraits/${portrait._id}` : "#"}
key={portrait._id}
className={portrait.status === "done" && portrait.imageUrl ? "" : styles.disabledLink}
>
<PortraitCard {...portrait} />
</Link>
<PortraitCard key={portrait._id} {...portrait} />
))}
</Grid>
</Section>