feat(P4): precompute移植+app.js sources双向回填+回归1003/1003+验收体积/文件/data.json
Deploy to GitHub Pages / deploy (push) Failing after 16s
Regression / regression (push) Failing after 15m2s

This commit is contained in:
aurora-admin
2026-09-12 14:18:41 +08:00
parent 16f365a045
commit c65a69c34e
401 changed files with 22932 additions and 140 deletions
+23
View File
@@ -0,0 +1,23 @@
import React from 'react';
import './ImagePreview.css';
export default function ImagePreview({ images = [], visible = false, index = 0, onClose, onChange }) {
if (!visible) return null;
const len = images.length || 1;
const go = dir => onChange && onChange((index + dir + len) % len);
return (
<div className="aa-imgprev-mask" onClick={e => { if (e.target === e.currentTarget) onClose && onClose(); }}>
<button className="aa-imgprev-close" onClick={onClose}>✕</button>
<button className="aa-imgprev-arrow prev" onClick={() => go(-1)}>‹</button>
<img className="aa-imgprev-img" src={images[index]} alt={index} />
<button className="aa-imgprev-arrow next" onClick={() => go(1)}>›</button>
<div className="aa-imgprev-count">{index + 1} / {len}</div>
<div className="aa-imgprev-thumbs">
{images.map((u, i) => (
<img key={i} className={'aa-imgprev-thumb' + (i === index ? ' is-active' : '')}
src={u} onClick={() => onChange && onChange(i)} />
))}
</div>
</div>
);
}