/* ============================================================
   3DAX — Admin · Reviews management
   ============================================================ */
function AdminReviews(){
  const reviews = useStoreData(() => Store.reviews(true)); // include hidden
  const [adding, setAdding] = useState(false);
  const [nf, setNf] = useState({ name:"", place:"Compra verificada", rating:5, product:"", text:"" });
  const isFirebase = window.Store && Store._firebase;

  const submit = () => {
    if(nf.name.trim() && nf.text.trim()){ Store.addReview({ ...nf, rating:+nf.rating }); setAdding(false); setNf({ name:"", place:"Compra verificada", rating:5, product:"", text:"" }); }
  };

  if(reviews.length === 0 && isFirebase && !adding){
    return <div className="adm__view"><AdminMigrate what="reseñas" /></div>;
  }

  return (
    <div className="adm__view">
      <div className="adm__rev-top">
        <span className="adm__muted">{reviews.length} reseñas · {reviews.filter((r)=>!r.hidden).length} visibles</span>
        <button className="btn btn-primary" onClick={() => setAdding(true)}>+ Añadir reseña</button>
      </div>

      {adding && (
        <div className="adm__revadd">
          <div className="ledit__grid">
            <label className="field"><span className="field__label">Nombre</span><input value={nf.name} onChange={(e)=>setNf({...nf,name:e.target.value})} /></label>
            <label className="field"><span className="field__label">Lugar / contexto</span><input value={nf.place} onChange={(e)=>setNf({...nf,place:e.target.value})} /></label>
            <label className="field"><span className="field__label">Producto</span><input value={nf.product} onChange={(e)=>setNf({...nf,product:e.target.value})} /></label>
            <label className="field"><span className="field__label">Estrellas</span>
              <select value={nf.rating} onChange={(e)=>setNf({...nf,rating:e.target.value})}><option>5</option><option>4</option><option>3</option><option>2</option><option>1</option></select></label>
          </div>
          <label className="field"><span className="field__label">Texto</span><textarea rows="2" value={nf.text} onChange={(e)=>setNf({...nf,text:e.target.value})} /></label>
          <div className="adm__confirm-btns">
            <button className="btn btn-ghost" onClick={() => setAdding(false)}>Cancelar</button>
            <button className="btn btn-primary" onClick={submit}>Guardar</button>
          </div>
        </div>
      )}

      <div className="adm__revlist">
        {reviews.map((r) => (
          <div className={"adm__rev" + (r.hidden ? " is-hidden" : "")} key={r.id}>
            <div className="adm__rev-main">
              <div className="adm__rev-h">
                <Stars value={r.rating} size={13} />
                <strong>{r.name}</strong>
                <span className="adm__muted">{r.place}{r.product ? " · " + r.product : ""}</span>
              </div>
              <p className="adm__rev-t">“{r.text}”</p>
            </div>
            <div className="adm__rev-acts">
              <button onClick={() => Store.setReviewHidden(r.id, !r.hidden)}>{r.hidden ? "Mostrar" : "Ocultar"}</button>
              <button className="adm__del" onClick={() => Store.deleteReview(r.id)}>Borrar</button>
            </div>
          </div>
        ))}
      </div>
    </div>
  );
}
window.AdminReviews = AdminReviews;
