opt handle dyn additional

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-03-13 12:11:21 +08:00
parent aee4424dbf
commit 9489d8a7ca
2 changed files with 11 additions and 17 deletions

View File

@@ -7,11 +7,10 @@ import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/num_utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart';
import 'package:get/get.dart';
Widget addWidget(
Widget? addWidget(
BuildContext context, {
required int floor,
required ThemeData theme,
@@ -27,7 +26,7 @@ Widget addWidget(
try {
switch (type) {
// 转发的投稿
case 'ADDITIONAL_TYPE_UGC':
case 'ADDITIONAL_TYPE_UGC' when (additional.ugc != null):
final ugc = additional.ugc!;
child = InkWell(
borderRadius: borderRadius,
@@ -72,7 +71,7 @@ Widget addWidget(
),
);
case 'ADDITIONAL_TYPE_RESERVE':
case 'ADDITIONAL_TYPE_RESERVE' when (additional.reserve != null):
final reserve = additional.reserve!;
if (reserve.state != -1 && reserve.title != null) {
child = InkWell(
@@ -213,7 +212,8 @@ Widget addWidget(
);
}
case 'ADDITIONAL_TYPE_UPOWER_LOTTERY':
case 'ADDITIONAL_TYPE_UPOWER_LOTTERY'
when (additional.upowerLottery != null):
final content = additional.upowerLottery!;
child = InkWell(
borderRadius: borderRadius,
@@ -308,7 +308,7 @@ Widget addWidget(
);
// 商品
case 'ADDITIONAL_TYPE_GOODS':
case 'ADDITIONAL_TYPE_GOODS' when (additional.goods != null):
final content = additional.goods!;
if (content.items?.isNotEmpty == true) {
child = Column(
@@ -395,7 +395,7 @@ Widget addWidget(
);
}
case 'ADDITIONAL_TYPE_VOTE':
case 'ADDITIONAL_TYPE_VOTE' when (additional.vote != null):
final vote = additional.vote!;
child = InkWell(
borderRadius: borderRadius,
@@ -483,7 +483,7 @@ Widget addWidget(
),
);
case 'ADDITIONAL_TYPE_COMMON':
case 'ADDITIONAL_TYPE_COMMON' when (additional.common != null):
final content = additional.common!;
child = InkWell(
borderRadius: borderRadius,
@@ -557,7 +557,7 @@ Widget addWidget(
),
);
case 'ADDITIONAL_TYPE_MATCH':
case 'ADDITIONAL_TYPE_MATCH' when (additional.match != null):
final content = additional.match!;
Widget teamItem(TTeam team, Alignment alignment, EdgeInsets padding) {
return Expanded(
@@ -687,13 +687,7 @@ Widget addWidget(
),
);
} else {
if (kDebugMode) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 12),
child: Text('additional panel\ntype: $type'),
);
}
return const SizedBox.shrink();
return null;
}
} catch (e) {
return Padding(

View File

@@ -33,7 +33,7 @@ List<Widget> dynContent(
floor: floor,
),
if (moduleDynamic?.additional case final additional?)
addWidget(
?addWidget(
theme: theme,
context,
idStr: item.idStr,