// Rôle : rend les textes éditoriaux avec retours ligne et italique contrôlés.
import React from "react";

export function RichText({ text }) {
  const parts = String(text).split(/(<i>.*?<\/i>)/g).filter(Boolean);
  return parts.flatMap((part, index) => {
    const italic = part.match(/^<i>(.*?)<\/i>$/);
    const value = italic ? italic[1] : part;
    const lines = value.split("\n");
    return lines.flatMap((line, lineIndex) => {
      const key = `${index}-${lineIndex}`;
      const node = italic ? <i key={key}>{line}</i> : <React.Fragment key={key}>{line}</React.Fragment>;
      return lineIndex === lines.length - 1 ? [node] : [node, <br key={`${key}-br`} />];
    });
  });
}
