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(text: string): Element { return fillMarkup(createElement("p", { className: "chapter-text" }), text); }; const paragraphsOf = function paragraphsOf(block: LessonBlock): Element[] { const held = [ paragraph(block.principle + SPACE + block.problem), paragraph(block.failureMode + SPACE + block.cause), paragraph(block.decision + SPACE + block.application), paragraph(block.validation), ]; if (block.boundary !== undefined) { held.push(paragraph(block.boundary)); } return held; }; export const renderLesson = function renderLesson(block: LessonBlock): Element { const wrapper = createElement("div", { className: "block-lesson" }); appendChildren(wrapper, paragraphsOf(block)); return wrapper; };