import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import '../../../../api/marianumcloud/talk/getPoll/getPollStateResponse.dart'; class PollOptionsList extends StatefulWidget { final GetPollStateResponseObject pollData; final Function(List) callback; const PollOptionsList({super.key, required this.pollData, required this.callback}); @override State createState() => _PollOptionsListState(); } class _PollOptionsListState extends State { late List ownVotes; @override void initState() { super.initState(); ownVotes = widget.pollData.votedSelf; } @override Widget build(BuildContext context) => ListView( shrinkWrap: true, children: [ ...widget.pollData.options.map( (option) => CheckboxListTile( value: ownVotes.contains(widget.pollData.options.indexOf(option)), title: Text(option), onChanged: (value) { var optionId = widget.pollData.options.indexOf(option); setState(() { if(ownVotes.contains(optionId)) { ownVotes.remove(optionId); } else { ownVotes.add(optionId); } }); widget.callback(ownVotes); } ) ) ], ); }