File size: 637 Bytes
f0743f4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export default function scaleImage({
  originalWidth,
  originalHeight,
  containerRef,
}: {
  originalWidth?: number;
  originalHeight?: number;
  containerRef: React.RefObject<HTMLDivElement>;
}) {
  const containerWidth = containerRef.current?.offsetWidth ?? 0;

  if (containerWidth === 0 || originalWidth == null || originalHeight == null) {
    return { width: 'auto', height: 'auto' };
  }

  const aspectRatio = originalWidth / originalHeight;
  const scaledWidth = Math.min(containerWidth, originalWidth);
  const scaledHeight = scaledWidth / aspectRatio;

  return { width: `${scaledWidth}px`, height: `${scaledHeight}px` };
}