import Nast from 'notajs-types/nast' import { NAST_BLOCK_TYPES } from '../constants' import { raiseWarning } from '../log-utils' import { renderChildren } from '../render-utils' function renderColumnList( node: Nast.ColumnList, renderNext: Function ) { let numOfColumns = node.children.length let columnArrHTML = node.children.map((column, i) => { return renderColumn(column as Nast.Column, renderNext, i === 0, numOfColumns) }) let html = `\
${columnArrHTML.join('')}
` return html } function renderColumn( node: Nast.Column, renderNext: Function, isFirst: boolean, numOfColumns: number ) { if (node.type !== NAST_BLOCK_TYPES.column) { raiseWarning(`Non-column node in column_list. Block ID: ${node.id}`) return '' } let columnSpacing = 46 let margin = isFirst ? '' : `margin-left: ${columnSpacing}px;` let columnRatio = node.ratio let width = `width: calc((100% - ${columnSpacing * (numOfColumns - 1)}px) * ${columnRatio});` let html = `\
${renderChildren(node.children, renderNext)}
` /** Experiment: Simpler way, but not working well with nested ColumnList */ // let html = `\ //
// ${renderChildren(node.children, renderNext)} //
// ` return html } export default renderColumnList