Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-19 11:29:03 +08:00
parent 5644e9a0e1
commit 6f48a97b4b
23 changed files with 1058 additions and 951 deletions

View File

@@ -125,8 +125,9 @@ class _UpPanelState extends State<UpPanel> {
}
void _onSelect(UserItem data) {
widget.dynamicsController.currentMid = data.mid;
widget.dynamicsController.onSelectUp(data.mid);
widget.dynamicsController
..currentMid = data.mid
..onSelectUp(data.mid);
data.hasUpdate = false;

View File

@@ -138,28 +138,40 @@ class _VotePanelState extends State<VotePanel> {
];
Widget _buildOptions(int index) {
final opt = _voteInfo.options[index];
final selected = groupValue.contains(opt.optidx);
return Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
child: PercentageChip(
label: opt.optdesc!,
percentage: _showPercentage ? _percentage[index] : null,
selected: selected,
onSelected: !_enabled || (groupValue.length >= _maxCnt && !selected)
? null
: (value) => _onSelected(value, opt.optidx!),
child: Builder(
builder: (context) {
final opt = _voteInfo.options[index];
final selected = groupValue.contains(opt.optidx);
return PercentageChip(
label: opt.optdesc!,
percentage: _showPercentage ? _percentage[index] : null,
selected: selected,
onSelected: !_enabled || (groupValue.length >= _maxCnt && !selected)
? null
: (value) => _onSelected(context, value, opt.optidx!),
);
},
),
);
}
void _onSelected(bool value, int optidx) {
void _onSelected(BuildContext context, bool value, int optidx) {
bool isMax = groupValue.length >= _maxCnt;
if (value) {
groupValue.add(optidx);
} else {
groupValue.remove(optidx);
}
setState(() {});
if ((isMax &&
_maxCnt != _voteInfo.options.length &&
groupValue.length < _maxCnt) ||
(groupValue.length >= _maxCnt && _maxCnt < _voteInfo.options.length)) {
setState(() {});
} else {
(context as Element).markNeedsBuild();
}
}
Widget _buildContext() {