v9d Phase 2d: Vitals Module Refactoring (Baseline + Blood Pressure) #22
|
|
@ -250,6 +250,16 @@ export default function ProfileBuilder({ trainingType, onSave, onCancel, paramet
|
||||||
marginBottom: '8px'
|
marginBottom: '8px'
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
{/* Labels Row */}
|
||||||
|
<div style={{ display: 'grid', gridTemplateColumns: '2fr 1.5fr 1fr 0.8fr 40px', gap: '8px', marginBottom: '4px' }}>
|
||||||
|
<div style={{ fontSize: '10px', color: 'var(--text3)', fontWeight: '600' }}>PARAMETER</div>
|
||||||
|
<div style={{ fontSize: '10px', color: 'var(--text3)', fontWeight: '600' }}>OPERATOR</div>
|
||||||
|
<div style={{ fontSize: '10px', color: 'var(--text3)', fontWeight: '600' }}>SCHWELLENWERT</div>
|
||||||
|
<div style={{ fontSize: '10px', color: 'var(--text3)', fontWeight: '600' }}>GEWICHT</div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Input Row */}
|
||||||
<div style={{ display: 'grid', gridTemplateColumns: '2fr 1.5fr 1fr 0.8fr 40px', gap: '8px', marginBottom: '8px' }}>
|
<div style={{ display: 'grid', gridTemplateColumns: '2fr 1.5fr 1fr 0.8fr 40px', gap: '8px', marginBottom: '8px' }}>
|
||||||
{/* Parameter */}
|
{/* Parameter */}
|
||||||
<select
|
<select
|
||||||
|
|
@ -279,16 +289,16 @@ export default function ProfileBuilder({ trainingType, onSave, onCancel, paramet
|
||||||
|
|
||||||
{/* Value */}
|
{/* Value */}
|
||||||
{rule.operator === 'between' ? (
|
{rule.operator === 'between' ? (
|
||||||
<div style={{ display: 'flex', gap: '4px' }}>
|
<div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
className="form-input"
|
className="form-input"
|
||||||
placeholder="Min"
|
placeholder="Min"
|
||||||
value={Array.isArray(rule.value) ? rule.value[0] : 0}
|
value={Array.isArray(rule.value) ? rule.value[0] : 0}
|
||||||
onChange={(e) => updateRule(idx, {
|
onChange={(e) => updateRule(idx, {
|
||||||
value: [parseFloat(e.target.value), Array.isArray(rule.value) ? rule.value[1] : 0]
|
value: [parseFloat(e.target.value) || 0, Array.isArray(rule.value) ? rule.value[1] : 0]
|
||||||
})}
|
})}
|
||||||
style={{ fontSize: '13px' }}
|
style={{ fontSize: '13px', padding: '4px 8px' }}
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
|
|
@ -296,15 +306,16 @@ export default function ProfileBuilder({ trainingType, onSave, onCancel, paramet
|
||||||
placeholder="Max"
|
placeholder="Max"
|
||||||
value={Array.isArray(rule.value) ? rule.value[1] : 0}
|
value={Array.isArray(rule.value) ? rule.value[1] : 0}
|
||||||
onChange={(e) => updateRule(idx, {
|
onChange={(e) => updateRule(idx, {
|
||||||
value: [Array.isArray(rule.value) ? rule.value[0] : 0, parseFloat(e.target.value)]
|
value: [Array.isArray(rule.value) ? rule.value[0] : 0, parseFloat(e.target.value) || 0]
|
||||||
})}
|
})}
|
||||||
style={{ fontSize: '13px' }}
|
style={{ fontSize: '13px', padding: '4px 8px' }}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
className="form-input"
|
className="form-input"
|
||||||
|
placeholder="z.B. 90"
|
||||||
value={rule.value}
|
value={rule.value}
|
||||||
onChange={(e) => updateRule(idx, { value: parseFloat(e.target.value) || 0 })}
|
onChange={(e) => updateRule(idx, { value: parseFloat(e.target.value) || 0 })}
|
||||||
style={{ fontSize: '13px' }}
|
style={{ fontSize: '13px' }}
|
||||||
|
|
@ -315,13 +326,13 @@ export default function ProfileBuilder({ trainingType, onSave, onCancel, paramet
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
className="form-input"
|
className="form-input"
|
||||||
placeholder="Gewicht"
|
placeholder="1-10"
|
||||||
min="1"
|
min="1"
|
||||||
max="10"
|
max="10"
|
||||||
value={rule.weight}
|
value={rule.weight}
|
||||||
onChange={(e) => updateRule(idx, { weight: parseInt(e.target.value) || 1 })}
|
onChange={(e) => updateRule(idx, { weight: parseInt(e.target.value) || 1 })}
|
||||||
style={{ fontSize: '13px' }}
|
style={{ fontSize: '13px' }}
|
||||||
title="Gewichtung 1-10"
|
title="Gewichtung der Regel (1=niedrig, 10=hoch)"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* Delete */}
|
{/* Delete */}
|
||||||
|
|
@ -329,6 +340,7 @@ export default function ProfileBuilder({ trainingType, onSave, onCancel, paramet
|
||||||
className="btn"
|
className="btn"
|
||||||
onClick={() => removeRule(idx)}
|
onClick={() => removeRule(idx)}
|
||||||
style={{ padding: '6px', minWidth: 'auto' }}
|
style={{ padding: '6px', minWidth: 'auto' }}
|
||||||
|
title="Regel löschen"
|
||||||
>
|
>
|
||||||
<Trash2 size={14} />
|
<Trash2 size={14} />
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user