presentation/renderers/figure.renderer.ts

presentation/renderers/figure.renderer.ts is a file in Bane's Lab Site. 17 lines of code and 3 definitions.

import type { FigureBlock } from "#types/block.types";
import { createCodeBlock } from "#presentation/components/code.component";
import { createElement } from "#core/factories/element.factory";
import { renderGrammarBlock } from "#presentation/renderers/grammar.renderer";

const innerOf = function innerOf(block: FigureBlock): Element {
    const { figure } = block;
    if (figure.kind === "code") {
        return createCodeBlock(figure.code, figure.title, figure.language);
    }
    return renderGrammarBlock(figure);
};

export const renderFigure = function renderFigure(block: FigureBlock): Element {
    return createElement("figure", {
        children: [createElement("figcaption", { className: "figure-caption", text: block.caption }), innerOf(block)],
        className: "block-figure",
    });
};