Files
StevenandGitHub 4466ba436b chore(examples): use default prettier for examples/templates (#60530)
## 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
2024-01-11 16:01:44 -07:00

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} />;
}