'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
}