Parent pages are now Endpoint sources

This commit is contained in:
DrMint 2024-03-22 23:14:27 +01:00
parent 9f1caef009
commit 7d1f796282
2 changed files with 16 additions and 29 deletions

View File

@ -156,7 +156,7 @@ export type EndpointFolder = EndpointFolderPreview & {
value: EndpointPagePreview;
}
)[];
parentPages: ParentPage[];
parentPages: EndpointSource[];
};
export type EndpointHomeFolder = EndpointFolderPreview & {
@ -226,13 +226,7 @@ export type EndpointPage = EndpointPagePreview & {
proofreaders: EndpointRecorder[];
toc: TableOfContentEntry[];
})[];
parentPages: ParentPage[];
};
export type ParentPage = {
slug: string;
collection: Collections;
translations: { language: string; name: string }[];
parentPages: EndpointSource[];
};
export type EndpointCollectiblePreview = {
@ -307,7 +301,7 @@ export type EndpointCollectible = EndpointCollectiblePreview & {
}[];
};
}[];
parentPages: ParentPage[];
parentPages: EndpointSource[];
};
export type TableOfContentEntry = {
@ -350,7 +344,8 @@ export type EndpointSource =
| { type: "timestamp"; timestamp: string }
| { type: "custom"; translations: { language: string; note: string }[] };
}
| { type: "page"; page: EndpointPagePreview };
| { type: "page"; page: EndpointPagePreview }
| { type: "folder"; folder: EndpointFolderPreview };
export type PayloadImage = {
url: string;

View File

@ -1,5 +1,6 @@
import { Collections } from "../constants";
import { EndpointRecorder, EndpointTag, EndpointTagsGroup, ParentPage } from "../sdk";
import { convertCollectibleToPreview } from "../collections/Collectibles/endpoints/getBySlugEndpoint";
import { convertFolderToPreview } from "../collections/Folders/endpoints/getBySlugEndpoint";
import { EndpointRecorder, EndpointSource, EndpointTag, EndpointTagsGroup } from "../sdk";
import { Collectible, Folder, Recorder, Tag } from "../types/collections";
import { isPayloadArrayType, isPayloadType, isPublished, isValidPayloadImage } from "./asserts";
@ -49,32 +50,23 @@ export const handleParentPages = ({
}: {
collectibles?: (string | Collectible)[] | null | undefined;
folders?: (string | Folder)[] | null | undefined;
}): ParentPage[] => {
const result: ParentPage[] = [];
}): EndpointSource[] => {
const result: EndpointSource[] = [];
if (collectibles && isPayloadArrayType(collectibles)) {
collectibles.filter(isPublished).forEach(({ slug, translations }) => {
collectibles.filter(isPublished).forEach((collectible) => {
result.push({
collection: Collections.Collectibles,
slug,
translations: translations.map(({ language, title }) => ({
language: isPayloadType(language) ? language.id : language,
name: title, // TODO: Use the entire pretitle + title + subtitle
})),
type: "collectible",
collectible: convertCollectibleToPreview(collectible),
});
});
}
if (folders && isPayloadArrayType(folders)) {
folders.forEach(({ slug, translations }) => {
folders.forEach((folder) => {
result.push({
collection: Collections.Folders,
slug,
translations:
translations?.map(({ language, name }) => ({
language: isPayloadType(language) ? language.id : language,
name,
})) ?? [],
type: "folder",
folder: convertFolderToPreview(folder),
});
});
}