import { usePileCapStore } from '../../store/pileCapStore'; import { ReinforcementDiagram } from '../diagrams/ReinforcementDiagram'; import type { ReinforcementConfig } from '../../types/pileCap'; export const ReinforcementInput = () => { const reinforcement = usePileCapStore(state => state.reinforcement); const setReinforcement = usePileCapStore(state => state.setReinforcement); const barSizes = ['#3', '#4', '#5', '#6', '#7', '#8', '#9', '#10', '#11']; const updateField = ( field: K, value: ReinforcementConfig[K] ) => { setReinforcement({ [field]: value }); }; return (
Pile Cap Reinforcement
{/* Top Mat */}
{reinforcement.hasTopMat && (
updateField('topConcreteCover', parseFloat(e.target.value) || 0)} step="0.25" /> in
updateField('topXBarCount', parseInt(e.target.value) || 0)} min="0" /> bars
updateField('topZBarCount', parseInt(e.target.value) || 0)} min="0" /> bars
)}
{/* Bottom Mat */}
{reinforcement.hasBottomMat && (
updateField('bottomConcreteCover', parseFloat(e.target.value) || 0)} step="0.25" /> in
updateField('bottomXBarCount', parseInt(e.target.value) || 0)} min="0" /> bars
updateField('bottomZBarCount', parseInt(e.target.value) || 0)} min="0" /> bars
)}
{/* Column Reinforcement */}

Column Reinforcement

updateField('columnBarCount', parseInt(e.target.value) || 4)} />
); };