import { usePileCapStore } from '../../store/pileCapStore'; import { GeometryDiagram } from './GeometryDiagram'; export const GeometryInput = () => { const geometry = usePileCapStore(state => state.geometry); const setGeometry = usePileCapStore(state => state.setGeometry); // Calculate total number of piles const totalPiles = geometry.pileRows * geometry.pileColumns; return (
Pile Configuration
{/* Number of Piles Preset Selector */}
piles
{/* Custom Rows and Columns */}
setGeometry({ pileRows: parseInt(e.target.value) || 1 })} min="1" /> rows
setGeometry({ pileColumns: parseInt(e.target.value) || 1 })} min="1" /> columns
{/* Pile Type */}
{/* Pile Size */}
setGeometry({ pileSize: parseFloat(e.target.value) || 0 })} /> in
{/* Pile Spacing */}
setGeometry({ pileSpacingX: parseFloat(e.target.value) || 0 })} step="0.5" /> ft
setGeometry({ pileSpacingY: parseFloat(e.target.value) || 0 })} step="0.5" /> ft
{/* Pile Edge Distance */}
setGeometry({ pileEdgeDistance: parseFloat(e.target.value) || 0 })} step="0.1" /> ft
{/* Pile Top Embed */}
setGeometry({ pileTopEmbed: parseFloat(e.target.value) || 0 })} /> in
{/* Accidental Pile Offset */}
setGeometry({ accidentalOffset: parseFloat(e.target.value) || 0 })} /> in
Pile Capacities
{/* Compression Capacity */}
setGeometry({ pileCompressionCapacity: parseFloat(e.target.value) || 0 })} /> kips
{/* Tension Capacity */}
setGeometry({ pileTensionCapacity: parseFloat(e.target.value) || 0 })} /> kips
{/* Lateral Capacity */}
setGeometry({ pileLateralCapacity: parseFloat(e.target.value) || 0 })} /> kips
Pile Cap Dimensions
setGeometry({ length: parseFloat(e.target.value) || 0 })} step="0.5" /> ft
setGeometry({ width: parseFloat(e.target.value) || 0 })} step="0.5" /> ft
setGeometry({ depth: parseFloat(e.target.value) || 0 })} /> in
setGeometry({ soilCover: parseFloat(e.target.value) || 0 })} step="0.5" /> ft
Column Dimensions
setGeometry({ columnLength: parseFloat(e.target.value) || 0 })} /> in
setGeometry({ columnWidth: parseFloat(e.target.value) || 0 })} /> in
setGeometry({ columnOffsetX: parseFloat(e.target.value) || 0 })} step="0.1" /> ft {geometry.columnOffsetX === 0 && ✓ OK}
setGeometry({ columnOffsetZ: parseFloat(e.target.value) || 0 })} step="0.1" /> ft {geometry.columnOffsetZ === 0 && ✓ OK}
); };