Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | import type { Asset, Entry, ImageWrapper, Contact } from "$lib/services/server/contentful/schema"; import type { PageMetadataMap } from "$lib/loadPageMetadataMap"; import type { Document } from "@contentful/rich-text-types"; type AssetWithMaybeBlurhash = Asset & { blurhash?: string | null | undefined; }; export const renderableAssetBlockRequiredKeys = [ "url", "contentType", ] as const satisfies readonly (keyof AssetWithMaybeBlurhash)[]; type RenderableAssetBlockRequiredKey = (typeof renderableAssetBlockRequiredKeys)[number]; export const renderableAssetBlockOptionalKeys = [ "title", "description", "width", "height", "blurhash", ] as const satisfies readonly (keyof AssetWithMaybeBlurhash)[]; type RenderableAssetBlockOptionalKey = (typeof renderableAssetBlockOptionalKeys)[number]; export const renderableEntryBlockImageWrapperKeys = [ "internalTitle", "altText", "linkedImage", ] as const satisfies readonly (keyof ImageWrapper)[]; type RenderableEntryBlockImageWrapperKey = (typeof renderableEntryBlockImageWrapperKeys)[number]; export const renderableEntryBlockContactKeys = [ "entityName", "phoneExt", "email", ] as const satisfies readonly (keyof Contact)[]; type RenderableEntryBlockContactKey = (typeof renderableEntryBlockContactKeys)[number]; export type RenderableAssetBlock = { sys: Pick<AssetWithMaybeBlurhash["sys"], "id"> } & Pick< AssetWithMaybeBlurhash, RenderableAssetBlockRequiredKey > & Partial<Pick<AssetWithMaybeBlurhash, RenderableAssetBlockOptionalKey>>; type RenderableImageWrapper = Pick< ImageWrapper, Exclude<RenderableEntryBlockImageWrapperKey, "linkedImage"> > & { linkedImage?: RenderableAssetBlock | null | undefined; }; export type RenderableEntryBlock = { sys: Pick<Entry["sys"], "id">; __typename: string } & Partial< Pick<RenderableImageWrapper, RenderableEntryBlockImageWrapperKey> & Pick<Contact, RenderableEntryBlockContactKey> & { callToActionDestination?: { json: Document; links: Links } | null; } >; export type RenderableAssetHyperlink = RenderableAssetBlock; export type RenderableEntryHyperlink = RenderableEntryBlock; export type Links = { assets?: { block?: (RenderableAssetBlock | null)[]; hyperlink?: (RenderableAssetHyperlink | null)[]; }; entries?: { block?: (RenderableEntryBlock | null)[]; hyperlink?: (RenderableEntryHyperlink | null)[]; }; }; export type LinksMap< T extends | RenderableAssetBlock | RenderableAssetHyperlink | RenderableEntryBlock | RenderableEntryHyperlink, > = Map<string, T>; export type LinksContext = { pageMetadataMap: PageMetadataMap; links: Links; linksAssetsMaps: { block: LinksMap<RenderableAssetBlock>; hyperlink: LinksMap<RenderableAssetHyperlink>; }; linksEntriesMaps: { block: LinksMap<RenderableEntryBlock>; hyperlink: LinksMap<RenderableEntryHyperlink>; }; }; |