Spaces:
Running
Running
File size: 2,287 Bytes
19abe39 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | function BoolVal({ value }) {
if (value === null || value === undefined) {
return <span className="info-val dim">—</span>;
}
return (
<span className={`info-val ${value ? 'bool-true' : 'bool-false'}`}>
{value ? 'TRUE' : 'FALSE'}
</span>
);
}
function TextVal({ value, dim = false }) {
if (value === null || value === undefined) {
return <span className="info-val dim">—</span>;
}
return (
<span className={`info-val${dim ? ' dim' : ''}`}>
{String(value).toUpperCase()}
</span>
);
}
function NumVal({ value }) {
if (value === null || value === undefined) {
return <span className="info-val dim">—</span>;
}
return <span className="info-val">{value}</span>;
}
export default function InfoBadges({ info, targetDef }) {
return (
<div className="info-badges">
<div className="info-row">
<span className="info-key">n_creases</span>
<NumVal value={info ? info.n_creases : (targetDef ? targetDef.n_creases : null)} />
</div>
<div className="info-row">
<span className="info-key">interior_verts</span>
<NumVal value={info ? info.n_interior_vertices : null} />
</div>
<div className="info-row">
<span className="info-key">local_fold</span>
<BoolVal value={info ? info.local_foldability : null} />
</div>
<div className="info-row">
<span className="info-key">blb_sat</span>
<BoolVal value={info ? info.blb_satisfied : null} />
</div>
<div className="info-row">
<span className="info-key">global_fold</span>
<TextVal
value={info ? info.global_foldability : null}
dim={true}
/>
</div>
{targetDef && (
<>
<div className="info-row">
<span className="info-key">level</span>
<span className="info-val">LVL {targetDef.level}</span>
</div>
<div className="info-row">
<span className="info-key">target</span>
<span className="info-val" style={{ fontSize: '10px', textAlign: 'right', maxWidth: '140px', wordBreak: 'break-word' }}>
{targetDef.name.replace(/_/g, ' ').toUpperCase()}
</span>
</div>
</>
)}
</div>
);
}
|