feat(BOOK-609): Using embedded url for assets instead of href since that is not updated when the asset is updated)

* feat(BOOK-609): Updated refs handling for assets inside content pages

Approved-by: Linus Flood
This commit is contained in:
Erik Tiekstra
2026-01-13 10:40:36 +00:00
parent 6ae4c7c805
commit 8d34089637
19 changed files with 194 additions and 147 deletions

View File

@@ -1,6 +1,7 @@
import { z } from "zod"
import { ContentEnum } from "../../../../types/content"
import { assetSystemSchema } from "../system"
// SysAsset is used for several different assets in ContentStack, such as images, pdf-files, etc.
// It is a generic asset type that can represent any file type.
@@ -22,15 +23,21 @@ export const sysAssetSchema = z.object({
// the exact same structure, that's why systemSchema
// is not used as that correlates to the
// EntrySystemField type
system: z
.object({
uid: z.string(),
})
.nullish(),
system: assetSystemSchema.nullish(),
title: z.string().nullish(),
url: z.string().nullish(),
permanent_url: z
.string()
.nullish()
.transform((val) => (val === "Permanent URL Not Defined!" ? null : val)), // ContentStack returns this string when permanent_url is not defined
})
export const sysAssetRefsSchema = z.object({
__typename: z.literal(ContentEnum.blocks.SysAsset),
url: z.string().nullish(),
permanent_url: z
.string()
.nullish()
.transform((val) => (val === "Permanent URL Not Defined!" ? null : val)), // ContentStack returns this string when permanent_url is not defined
system: assetSystemSchema.nullish(),
})