feat(flutter): 统一空列表占位组件

This commit is contained in:
Zhou Weidong committed 2026-10-17 17:44:44 +08:00
1 parent 19babb8f4a
commit 6d08330388
24 files changed
+394 -63

No files matched your search

+22 -2
View File
@@ -14,6 +14,7 @@ import '../../core/platform/haptics.dart';
import '../../core/theme/app_colors.dart';
import '../../core/theme/app_theme.dart';
import '../../core/widgets/auth_gate.dart';
import '../../core/widgets/empty_state.dart';
import '../../l10n/app_localizations.dart';
import '../discover/discover_view.dart';
import '../mine/mine_view.dart';
@@ -46,14 +47,20 @@ class HomePage extends StatelessWidget {
body: Center(child: CircularProgressIndicator()),
);
}
if (catalog.error != null || catalog.dramas.isEmpty) {
if (catalog.error != null) {
return Scaffold(
backgroundColor: Colors.black,
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(catalog.error == null ? l10n.noStories : l10n.catalogError),
const Icon(
Icons.error_outline_rounded,
color: Colors.white70,
size: 40,
),
const SizedBox(height: 12),
Text(l10n.catalogError),
const SizedBox(height: 12),
FilledButton(onPressed: catalog.load, child: Text(l10n.retry)),
if (kDebugMode) ...[
@@ -68,6 +75,19 @@ class HomePage extends StatelessWidget {
),
);
}
if (catalog.dramas.isEmpty) {
return Scaffold(
backgroundColor: Colors.black,
body: EmptyState(
key: const Key('home-empty'),
icon: Icons.movie_outlined,
title: l10n.noStories,
subtitle: l10n.emptyHint,
actionLabel: l10n.retry,
onAction: catalog.load,
),
);
}
return _HomeTabs(
key: ValueKey(catalog.dramas.first.id),