fix: shrink result thumbnails
This commit is contained in:
@@ -9,6 +9,19 @@ export type ResultGridProps = {
|
|||||||
onAction: (imageId: string, action: 'select' | 'reject' | 'reset') => void;
|
onAction: (imageId: string, action: 'select' | 'reject' | 'reset') => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function cssRatioToNumber(ratio: string | undefined) {
|
||||||
|
if (!ratio) return 1;
|
||||||
|
const [w, h] = ratio.split('/').map(part => Number(part.trim()));
|
||||||
|
return w && h ? w / h : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function thumbnailWidth(ratio: string | undefined) {
|
||||||
|
const value = cssRatioToNumber(ratio);
|
||||||
|
if (value > 1.35) return 'min(100%, 220px)';
|
||||||
|
if (value < 0.8) return 'min(100%, 92px)';
|
||||||
|
return 'min(100%, 156px)';
|
||||||
|
}
|
||||||
|
|
||||||
export default function ResultGrid({ images, onAction }: ResultGridProps) {
|
export default function ResultGrid({ images, onAction }: ResultGridProps) {
|
||||||
const [ratios, setRatios] = useState<Record<string, string>>({});
|
const [ratios, setRatios] = useState<Record<string, string>>({});
|
||||||
|
|
||||||
@@ -58,7 +71,7 @@ export default function ResultGrid({ images, onAction }: ResultGridProps) {
|
|||||||
<div
|
<div
|
||||||
key={img.id}
|
key={img.id}
|
||||||
className={`tile group ${img.status === 'selected' ? 'tile-selected' : ''} ${img.status === 'rejected' ? 'tile-rejected' : ''}`}
|
className={`tile group ${img.status === 'selected' ? 'tile-selected' : ''} ${img.status === 'rejected' ? 'tile-rejected' : ''}`}
|
||||||
style={{ aspectRatio: ratios[img.id] ?? '1 / 1' }}
|
style={{ aspectRatio: ratios[img.id] ?? '1 / 1', width: thumbnailWidth(ratios[img.id]), maxWidth: '100%' }}
|
||||||
>
|
>
|
||||||
<HoverImagePreview
|
<HoverImagePreview
|
||||||
src={img.url}
|
src={img.url}
|
||||||
|
|||||||
Reference in New Issue
Block a user