import React from 'react';
import './StepList.css';

function nodeText(it, i) {
  if (it.status === 'done') return '✓';
  if (it.status === 'error') return '✕';
  return String(i + 1);
}

export default function StepList({ steps = [], direction = 'vertical', clickable = false, onStepClick }) {
  return (
    <div className={'kole-steplist' + (direction === 'horizontal' ? ' is-horizontal' : '')}>
      {steps.map((it, i) => (
        <div
          key={i}
          className={`kole-steplist-item is-${it.status}${clickable ? ' is-clickable' : ''}`}
          onClick={clickable ? () => onStepClick && onStepClick(i) : undefined}
        >
          <span className="kole-steplist-node">{nodeText(it, i)}</span>
          <span className="kole-steplist-line" />
          <div className="kole-steplist-body">
            <div className="kole-steplist-title">{it.title}</div>
            {it.desc ? <div className="kole-steplist-desc">{it.desc}</div> : null}
          </div>
        </div>
      ))}
    </div>
  );
}
