Update project configuration and enhance translation support. Added caching mechanism for CMS responses with a new script, updated .gitignore to include cache files, and introduced translation handling in various components. Enhanced package.json with new scripts for cache warming and deployment. Added new translation-related components and improved existing ones for better localization support.

This commit is contained in:
Peter Meier
2026-03-17 22:32:31 +01:00
parent 1f5454d04e
commit daa4ea17b1
46 changed files with 5207 additions and 781 deletions
+25 -12
View File
@@ -4,20 +4,33 @@
let { block }: { block: ImageBlockData } = $props();
function getUrl(b: ImageBlockData): string | null {
if (typeof b.resolvedImageSrc === "string" && b.resolvedImageSrc) return b.resolvedImageSrc;
const img = b.img ?? b.image;
if (typeof img === "string" && img.startsWith("http")) return img;
if (img && typeof img === "object") {
const src = (img as { src?: string }).src ?? (img as { file?: { url?: string } }).file?.url;
if (typeof src === "string" && src) return src.startsWith("//") ? `https:${src}` : src;
}
return null;
}
const layoutClasses = $derived(getBlockLayoutClasses(block.layout));
const imageSource = $derived(block.image ?? block.img);
const imageUrl = $derived(
block.resolvedImageSrc ??
(typeof imageSource === "string"
? imageSource.startsWith("http")
? imageSource
: null
: imageSource && typeof imageSource === "object"
? "src" in imageSource && typeof imageSource.src === "string"
? imageSource.src
: imageSource.file?.url ?? null
: null),
);
const imageUrl = $derived(getUrl(block));
$effect(() => {
if (!imageUrl && block._slug) {
console.warn("[ImageBlock] Bild nicht verfügbar:", block._slug, {
resolvedImageSrc: block.resolvedImageSrc,
hasImage: !!block.image,
hasImg: !!block.img,
imageType: typeof block.image,
imgType: typeof block.img,
imgSrc: block.img && typeof block.img === "object" ? (block.img as { src?: string }).src : undefined,
imageSrc: block.image && typeof block.image === "object" ? (block.image as { src?: string }).src : undefined,
});
}
});
const title = $derived(
typeof imageSource === "object" && imageSource
? ("description" in imageSource && imageSource.description