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

View File

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