import { $createLineBreakNode, $createTextNode } from 'lexical';
import { Text } from 'mdast';

import { Handler } from '../parser.js';

export const text: Handler<Text> = (node, parser) => {
  const lines = node.value.split(/\n/);
  lines.forEach((line, index) => {
    const lexicalNode = $createTextNode(line);
    parser.formatting.forEach((format) => {
      lexicalNode.toggleFormat(format);
    });
    parser.append(lexicalNode);
    if (index < lines.length - 1) {
      parser.append($createLineBreakNode());
    }
  });
};
