import React, { Component } from 'react'; import Grid from '@mui/material/Grid'; import Card from '@mui/material/Card'; import CardContent from '@mui/material/CardContent'; import Typography from '@mui/material/Typography'; import Box from '@mui/material/Box'; import Chip from '@mui/material/Chip'; class TentShapeSelector extends Component { // Generate plant layout based on tent shape generatePlantLayout(shapeId) { const layouts = { '60x60': [ { x: 50, y: 50, size: 18 } // 1 large plant centered ], '80x80': [ { x: 35, y: 35, size: 12 }, // 2x2 = 4 plants { x: 65, y: 35, size: 12 }, { x: 35, y: 65, size: 12 }, { x: 65, y: 65, size: 12 } ], '100x100': [ { x: 22, y: 22, size: 10 }, // 3x3 = 9 plants { x: 50, y: 22, size: 10 }, { x: 78, y: 22, size: 10 }, { x: 22, y: 50, size: 10 }, { x: 50, y: 50, size: 10 }, { x: 78, y: 50, size: 10 }, { x: 22, y: 78, size: 10 }, { x: 50, y: 78, size: 10 }, { x: 78, y: 78, size: 10 } ], '120x60': [ { x: 30, y: 50, size: 14 }, // 1x3 = 3 larger plants { x: 50, y: 50, size: 14 }, { x: 70, y: 50, size: 14 } ] }; return layouts[shapeId] || []; } renderShapeCard(shape) { const { selectedShape, onShapeSelect } = this.props; const isSelected = selectedShape === shape.id; const plants = this.generatePlantLayout(shape.id); // Make visual sizes proportional to actual dimensions let visualWidth, visualHeight; switch(shape.id) { case '60x60': visualWidth = 90; visualHeight = 90; break; case '80x80': visualWidth = 110; visualHeight = 110; break; case '100x100': visualWidth = 130; visualHeight = 130; break; case '120x60': visualWidth = 140; visualHeight = 80; break; default: visualWidth = 120; visualHeight = 120; } return ( onShapeSelect(shape.id)} > {shape.name} {/* Enhanced visual representation with plant layout */} {/* Grid pattern */} {/* Plants */} {plants.map((plant, index) => ( ))} {/* Dimensions label */} {shape.footprint} {/* Plant count label */} {plants.length} 🌱 {shape.description} ✓ Ausgewählt ); } render() { const { tentShapes, title, subtitle } = this.props; return ( {title} {subtitle && ( {subtitle} )} {tentShapes.map(shape => ( {this.renderShapeCard(shape)} ))} ); } } export default TentShapeSelector;