@@ -40,39 +40,41 @@ class _HeadlineDetailsView extends StatelessWidget {
40
40
@override
41
41
Widget build (BuildContext context) {
42
42
final l10n = context.l10n;
43
- return Scaffold (
44
- // Body contains the BlocBuilder which returns either state widgets
45
- // or the scroll view
46
- body: BlocBuilder <HeadlineDetailsBloc , HeadlineDetailsState >(
47
- builder: (context, state) {
48
- // Handle Loading/Initial/Failure states outside the scroll view
49
- // for better user experience.
50
- return switch (state) {
51
- HeadlineDetailsInitial _ => InitialStateWidget (
52
- icon: Icons .article,
53
- headline: l10n.headlineDetailsInitialHeadline,
54
- subheadline: l10n.headlineDetailsInitialSubheadline,
55
- ),
56
- HeadlineDetailsLoading _ => LoadingStateWidget (
57
- icon: Icons .downloading,
58
- headline: l10n.headlineDetailsLoadingHeadline,
59
- subheadline: l10n.headlineDetailsLoadingSubheadline,
60
- ),
61
- final HeadlineDetailsFailure state => FailureStateWidget (
62
- message: state.message,
63
- onRetry: () {
64
- context.read <HeadlineDetailsBloc >().add (
65
- HeadlineDetailsRequested (headlineId: '1' ),
66
- );
67
- },
68
- ),
69
- final HeadlineDetailsLoaded state => _buildLoadedContent (
70
- context,
71
- state.headline,
72
- ),
73
- _ => const SizedBox .shrink (), // Should not happen in practice
74
- };
75
- },
43
+ return SafeArea (
44
+ child: Scaffold (
45
+ // Body contains the BlocBuilder which returns either state widgets
46
+ // or the scroll view
47
+ body: BlocBuilder <HeadlineDetailsBloc , HeadlineDetailsState >(
48
+ builder: (context, state) {
49
+ // Handle Loading/Initial/Failure states outside the scroll view
50
+ // for better user experience.
51
+ return switch (state) {
52
+ HeadlineDetailsInitial _ => InitialStateWidget (
53
+ icon: Icons .article,
54
+ headline: l10n.headlineDetailsInitialHeadline,
55
+ subheadline: l10n.headlineDetailsInitialSubheadline,
56
+ ),
57
+ HeadlineDetailsLoading _ => LoadingStateWidget (
58
+ icon: Icons .downloading,
59
+ headline: l10n.headlineDetailsLoadingHeadline,
60
+ subheadline: l10n.headlineDetailsLoadingSubheadline,
61
+ ),
62
+ final HeadlineDetailsFailure state => FailureStateWidget (
63
+ message: state.message,
64
+ onRetry: () {
65
+ context.read <HeadlineDetailsBloc >().add (
66
+ HeadlineDetailsRequested (headlineId: '1' ),
67
+ );
68
+ },
69
+ ),
70
+ final HeadlineDetailsLoaded state => _buildLoadedContent (
71
+ context,
72
+ state.headline,
73
+ ),
74
+ _ => const SizedBox .shrink (), // Should not happen in practice
75
+ };
76
+ },
77
+ ),
76
78
),
77
79
);
78
80
}
0 commit comments