'use client' import NextImage, { type ImageLoaderProps, ImageProps as NextImageProps, } from 'next/image' import ImageFallback from './ImageFallback' import type { CSSProperties } from 'react' type FocalPoint = { x: number y: number } export interface ImageProps extends NextImageProps { focalPoint?: FocalPoint } function imageLoader({ quality, src, width }: ImageLoaderProps) { const isAbsoluteUrl = src.startsWith('https://') || src.startsWith('http://') const hasQS = src.indexOf('?') !== -1 if (isAbsoluteUrl) { return `https://img.scandichotels.com/.netlify/images?url=${src}&w=${width}${quality ? '&q=' + quality : ''}` } return `${src}${hasQS ? '&' : '?'}w=${width}${quality ? '&q=' + quality : ''}` } // Next/Image adds & instead of ? before the params export default function Image({ focalPoint, style, ...props }: ImageProps) { const styles: CSSProperties = focalPoint ? { objectFit: 'cover', objectPosition: `${focalPoint.x}% ${focalPoint.y}%`, ...style, } : { ...style } if (!props.src) { return } return }