import 'package:flutter/material.dart'; class ItemRatingCard extends StatelessWidget { final int index; final String itemName; final int value; final ValueChanged onChanged; const ItemRatingCard({ super.key, required this.index, required this.itemName, required this.value, required this.onChanged, }); @override Widget build(BuildContext context) { return Card( margin: const EdgeInsets.only(bottom: 8), child: Padding( padding: const EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '${index + 1}. $itemName', style: const TextStyle(fontWeight: FontWeight.bold), ), const SizedBox(height: 8), Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [1, 2, 3, 4].map((rating) { return Expanded( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 4), child: ChoiceChip( label: Column( children: [ Text(rating.toString()), Text( _getRatingLabel(rating), style: const TextStyle(fontSize: 10), ), ], ), selected: value == rating, onSelected: (selected) { if (selected) onChanged(rating); }, ), ), ); }).toList(), ), ], ), ), ); } String _getRatingLabel(int rating) { switch (rating) { case 1: return 'trifft nicht zu'; case 2: return 'trifft teilweise zu'; case 3: return 'trifft zu'; case 4: return 'trifft voll zu'; default: return ''; } } }