33 lines
844 B
TypeScript
33 lines
844 B
TypeScript
import { Blog } from "@/payload-types";
|
|
|
|
export function sanitizePageNumber(page: any, defaultPage = 1): number {
|
|
const parsedPage = Number(page);
|
|
|
|
if (isNaN(parsedPage) || parsedPage < 1 || !Number.isInteger(parsedPage)) {
|
|
return defaultPage;
|
|
}
|
|
|
|
return parsedPage;
|
|
}
|
|
|
|
export function sanitizeBlogContentIntoStringPreview(data: Blog["content"]) {
|
|
// Find the first paragraph that has children with text
|
|
const firstParagraph = data.root.children.find(
|
|
(node) =>
|
|
node.type === "paragraph" &&
|
|
Array.isArray(node.children) &&
|
|
node.children.length > 0 &&
|
|
!!node.children?.[0]?.text
|
|
);
|
|
|
|
if (!firstParagraph) {
|
|
return "...";
|
|
}
|
|
|
|
// @ts-ignore
|
|
const text = firstParagraph.children?.[0]?.text ?? "";
|
|
|
|
// Limit to 100 characters
|
|
return `${text.length > 100 ? text.slice(0, 100) : text}...`;
|
|
}
|