mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
44 lines
939 B
TypeScript
44 lines
939 B
TypeScript
import NextImage, { ImageLoaderProps } from "next/image";
|
|
import { transformImageUrl } from "@kontent-ai/delivery-sdk";
|
|
|
|
const srcIsKontentAsset = (src: string) => {
|
|
try {
|
|
const { hostname } = new URL(src);
|
|
return hostname.endsWith(".kc-usercontent.com");
|
|
} catch {
|
|
return false;
|
|
}
|
|
};
|
|
|
|
const kontentImageLoader = ({
|
|
src,
|
|
width,
|
|
quality = 75,
|
|
}: ImageLoaderProps): string => {
|
|
return transformImageUrl(src)
|
|
.withWidth(width)
|
|
.withQuality(quality)
|
|
.withCompression("lossless")
|
|
.withAutomaticFormat()
|
|
.getUrl();
|
|
};
|
|
|
|
const getLoader = (src: string) => {
|
|
return srcIsKontentAsset(src) ? kontentImageLoader : undefined;
|
|
};
|
|
|
|
type ImageType = {
|
|
width?: number;
|
|
height?: number;
|
|
src: string;
|
|
layout?: string;
|
|
className: string;
|
|
alt: string;
|
|
};
|
|
|
|
export default function Image(props: ImageType) {
|
|
const loader = getLoader(props.src);
|
|
|
|
return <NextImage {...props} loader={loader} />;
|
|
}
|