// Editorial variant component
const { useState, useEffect, useMemo, useRef } = React;

function Cover({ book, className = "", style = {} }) {
  if (book.realCover) {
    return <img src={book.realCover} alt={book.title + " cover"} className={className} style={{ objectFit: "cover", ...style }} />;
  }
  const svg = window.makePlaceholderCover({
    title: book.title.toUpperCase().split(" ").reduce((acc, w) => {
      const last = acc[acc.length - 1] || "";
      if ((last + " " + w).trim().length > 10) acc.push(w);
      else acc[acc.length - 1] = (last + " " + w).trim();
      return acc;
    }, [""]).filter(Boolean).join("\n"),
    subtitle: book.setting.toUpperCase(),
    bg: book.bg, ink: book.ink, accent: book.accent,
    num: book.num,
    series: book.series
  });
  const dataUri = "data:image/svg+xml;utf8," + encodeURIComponent(svg);
  return <img src={dataUri} alt={book.title + " cover"} className={className} style={style} />;
}

window.Cover = Cover;
