presentation/renderers/lesson.renderer.ts
presentation/renderers/lesson.renderer.ts is a file in Bane's Lab Site. 20 lines of code and 5 definitions.
import { appendChildren, createElement } from "#core/factories/element.factory";
import type { LessonBlock } from "#types/block.types";
import { SPACE } from "#configuration/constants/document.constants";
import { fillMarkup } from "#presentation/renderers/text.renderer";
const paragraph = function paragraph(fields: readonly string[]): Element {
return fillMarkup(createElement("p", { className: "chapter-text" }), fields.join(SPACE));
};
const paragraphsOf = function paragraphsOf(block: LessonBlock): Element[] {
const groups = [
[block.problem, block.failureMode, block.cause],
[block.principle, block.decision, block.application],
[block.validation, ...(block.boundary === undefined ? [] : [block.boundary])],
];
return groups.map(paragraph);
};
export const renderLesson = function renderLesson(block: LessonBlock): Element {
const wrapper = createElement("div", { className: "block-lesson" });
appendChildren(wrapper, paragraphsOf(block));
return wrapper;
};