refactor(app): 迁移 4 个页面到共享 EmptyStateWidget + ErrorStateWidget
迁移统计: - discover_page: _buildError → ErrorStateWidget, _buildEmptyHint → EmptyStateWidget - sticker_library_page: 错误 + 空列表 → 共享组件 - class_page: 错误/班级列表空/日记墙空/话题空 → 共享组件 (4 处) - calendar_page: CalendarError → ErrorStateWidget 统一体验: 所有页面空状态使用一致的 icon + title + subtitle + CTA 布局
This commit is contained in:
@@ -9,6 +9,7 @@ import 'package:nuanji_app/core/theme/app_radius.dart';
|
||||
import 'package:nuanji_app/core/utils/mood_utils.dart';
|
||||
import 'package:nuanji_app/data/models/journal_entry.dart';
|
||||
import 'package:nuanji_app/data/repositories/journal_repository.dart';
|
||||
import '../../../widgets/error_state_widget.dart';
|
||||
import '../bloc/calendar_bloc.dart';
|
||||
|
||||
/// 日历页面 — 月视图(心情色彩) + 周视图 + 时间轴
|
||||
@@ -41,21 +42,11 @@ class _CalendarView extends StatelessWidget {
|
||||
}
|
||||
|
||||
if (state is CalendarError) {
|
||||
return Center(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(Icons.error_outline, size: 48, color: colorScheme.error),
|
||||
const SizedBox(height: 16),
|
||||
Text(state.message, style: theme.textTheme.bodyLarge),
|
||||
const SizedBox(height: 16),
|
||||
FilledButton.tonal(
|
||||
onPressed: () => context.read<CalendarBloc>()
|
||||
.add(CalendarMonthChanged(DateTime.now())),
|
||||
child: const Text('重试'),
|
||||
),
|
||||
],
|
||||
),
|
||||
return ErrorStateWidget(
|
||||
message: state.message,
|
||||
onRetry: () => context.read<CalendarBloc>()
|
||||
.add(CalendarMonthChanged(DateTime.now())),
|
||||
icon: Icons.error_outline,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user