空奖励reward弹窗
This commit is contained in:
parent
0da4fe7922
commit
a44b7394fe
@ -724,7 +724,7 @@
|
||||
"roomRocketNoteTitle": "Note",
|
||||
"roomRocketNoteSectionTitle": "Each time a VIP",
|
||||
"roomRocketNoteSectionBody": "1. Each time a VIP level is purchased, it is valid for 30 days, and can be manually renewed after expiration.",
|
||||
"roomRocketRewardEmptyText": "No rewards earned. Better luck next time.",
|
||||
"roomRocketRewardEmptyText": "No reward",
|
||||
"roomRocketRecordEmptyText": "No reward records",
|
||||
"launchRocket": "Launch Rocket",
|
||||
"roomRocketFuelFullNotice": "Rocket fuel is full! Launching in {1}s!"
|
||||
|
||||
@ -35,7 +35,7 @@ class RoomRocketRewardDialog extends StatelessWidget {
|
||||
final emptyText = _translate(
|
||||
localizations,
|
||||
'roomRocketRewardEmptyText',
|
||||
'No rewards earned. Better luck next time.',
|
||||
'No reward',
|
||||
);
|
||||
final contentDirection = Directionality.of(context);
|
||||
final resolvedRewards = _normalizeRewards(
|
||||
@ -257,7 +257,7 @@ class _RewardDialogCanvas extends StatelessWidget {
|
||||
if (isEmpty)
|
||||
_buildEmptyState()
|
||||
else ...[
|
||||
_buildRewardGrid(),
|
||||
rewards.isEmpty ? _buildRewardEmptyState() : _buildRewardGrid(),
|
||||
_buildWinnerList(),
|
||||
],
|
||||
_buildLoadingText(),
|
||||
@ -380,9 +380,6 @@ class _RewardDialogCanvas extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _buildRewardGrid() {
|
||||
if (rewards.isEmpty) {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
final columns = math.max(3, (rewards.length / 2).ceil());
|
||||
return Positioned(
|
||||
left: s(28),
|
||||
@ -425,6 +422,45 @@ class _RewardDialogCanvas extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildRewardEmptyState() {
|
||||
return Positioned(
|
||||
left: s(0),
|
||||
top: s(268),
|
||||
width: s(_designWidth),
|
||||
height: s(178),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Image.asset(
|
||||
_RewardDialogAssets.empty,
|
||||
width: s(72),
|
||||
height: s(72),
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
SizedBox(height: s(10)),
|
||||
SizedBox(
|
||||
width: s(250),
|
||||
child: Text(
|
||||
emptyText,
|
||||
textDirection: contentDirection,
|
||||
textScaler: TextScaler.noScaling,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white.withValues(alpha: 0.72),
|
||||
fontSize: s(13),
|
||||
height: 1.25,
|
||||
fontWeight: FontWeight.w600,
|
||||
decoration: TextDecoration.none,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildWinnerList() {
|
||||
return Positioned(
|
||||
left: s(12),
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:yumi/shared/business_logic/models/res/sc_room_rocket_api_res.dart';
|
||||
import 'package:yumi/ui_kit/widgets/room/rocket/room_rocket_dialog.dart';
|
||||
import 'package:yumi/ui_kit/widgets/room/rocket/room_rocket_reward_dialog.dart';
|
||||
import 'package:yumi/ui_kit/widgets/room/rocket/room_rocket_reward_dialog_loader.dart';
|
||||
|
||||
void main() {
|
||||
@ -27,6 +30,30 @@ void main() {
|
||||
expect(records.map((item) => item.rewardAmount), [5000, 5200]);
|
||||
});
|
||||
});
|
||||
|
||||
group('room rocket reward dialog', () {
|
||||
testWidgets('shows reward empty state when room winners exist', (
|
||||
tester,
|
||||
) async {
|
||||
await tester.pumpWidget(
|
||||
const MaterialApp(
|
||||
home: Scaffold(
|
||||
body: RoomRocketRewardDialog(
|
||||
rewards: <RoomRocketRewardItem>[],
|
||||
winners: <RoomRocketRewardWinner>[
|
||||
RoomRocketRewardWinner(nickname: 'test man'),
|
||||
],
|
||||
loadingText: '',
|
||||
useMockFallback: false,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
expect(find.text('No reward'), findsOneWidget);
|
||||
expect(find.text('test man'), findsOneWidget);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
SCRoomRocketRewardRecordRes _rewardRecord({
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user