diff --git a/frontend/src/components/PostCard.tsx b/frontend/src/components/PostCard.tsx index 60f3396..849deab 100644 --- a/frontend/src/components/PostCard.tsx +++ b/frontend/src/components/PostCard.tsx @@ -181,6 +181,19 @@ export function PostCard({ {post.cover_title}

+ {/* Thumbnail cover image (solo se keyword e' un URL reale) */} + {post.cover_image_keyword.startsWith('http') && ( +
+ Cover preview { (e.target as HTMLImageElement).style.display = 'none' }} + /> +
+ )} + {/* Metadati secondari */} {slot && (
diff --git a/frontend/src/pages/OutputReview.tsx b/frontend/src/pages/OutputReview.tsx index 5e8b656..9712882 100644 --- a/frontend/src/pages/OutputReview.tsx +++ b/frontend/src/pages/OutputReview.tsx @@ -12,8 +12,8 @@ import { Download, Loader2, RefreshCw } from 'lucide-react' import { useEffect, useState } from 'react' -import { useParams } from 'react-router-dom' -import { useDownloadEditedCsv, useJobResults } from '../api/hooks' +import { Link, useParams } from 'react-router-dom' +import { useDownloadEditedCsv, useJobResults, useSettingsStatus } from '../api/hooks' import { PostCard } from '../components/PostCard' import type { PostResult } from '../types' @@ -21,6 +21,7 @@ export function OutputReview() { const { jobId } = useParams<{ jobId: string }>() const { data: jobData, isLoading, error } = useJobResults(jobId ?? null) const downloadMutation = useDownloadEditedCsv() + const { data: settingsStatus } = useSettingsStatus() // Stato locale dei post — viene aggiornato da edit inline e rigenerazione const [localResults, setLocalResults] = useState([]) @@ -156,6 +157,20 @@ export function OutputReview() { Le modifiche saranno incluse nel CSV scaricato.
+ {/* Hint Unsplash — visibile solo se non configurato */} + {settingsStatus && !settingsStatus.unsplash_api_key_configured && ( +
+ Le colonne immagine contengono keyword testuali. + + Configura Unsplash + + per URL immagini reali nel CSV. +
+ )} + {/* Griglia post */}
{localResults.length === 0 ? (