1
1
import 'package:bloc/bloc.dart' ;
2
2
import 'package:core/core.dart' ;
3
- import 'package:country_picker/country_picker.dart' as picker;
4
3
import 'package:data_repository/data_repository.dart' ;
5
4
import 'package:equatable/equatable.dart' ;
6
5
import 'package:flutter/foundation.dart' ;
7
- import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart' ;
8
6
9
7
part 'edit_headline_event.dart' ;
10
8
part 'edit_headline_state.dart' ;
@@ -16,12 +14,14 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
16
14
required DataRepository <Headline > headlinesRepository,
17
15
required DataRepository <Source > sourcesRepository,
18
16
required DataRepository <Topic > topicsRepository,
17
+ required DataRepository <Country > countriesRepository,
19
18
required String headlineId,
20
- }) : _headlinesRepository = headlinesRepository,
21
- _sourcesRepository = sourcesRepository,
22
- _topicsRepository = topicsRepository,
23
- _headlineId = headlineId,
24
- super (const EditHeadlineState ()) {
19
+ }) : _headlinesRepository = headlinesRepository,
20
+ _sourcesRepository = sourcesRepository,
21
+ _topicsRepository = topicsRepository,
22
+ _countriesRepository = countriesRepository,
23
+ _headlineId = headlineId,
24
+ super (EditHeadlineState ()) {
25
25
on < EditHeadlineLoaded > (_onLoaded);
26
26
on < EditHeadlineTitleChanged > (_onTitleChanged);
27
27
on < EditHeadlineExcerptChanged > (_onExcerptChanged);
@@ -37,6 +37,7 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
37
37
final DataRepository <Headline > _headlinesRepository;
38
38
final DataRepository <Source > _sourcesRepository;
39
39
final DataRepository <Topic > _topicsRepository;
40
+ final DataRepository <Country > _countriesRepository;
40
41
final String _headlineId;
41
42
42
43
Future <void > _onLoaded (
@@ -49,6 +50,7 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
49
50
headlineResponse,
50
51
sourcesResponse,
51
52
topicsResponse,
53
+ countriesResponse,
52
54
] = await Future .wait ([
53
55
_headlinesRepository.read (id: _headlineId),
54
56
_sourcesRepository.readAll (
@@ -57,11 +59,15 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
57
59
_topicsRepository.readAll (
58
60
sort: [const SortOption ('updatedAt' , SortOrder .desc)],
59
61
),
62
+ _countriesRepository.readAll (
63
+ sort: [const SortOption ('name' , SortOrder .asc)],
64
+ ),
60
65
]);
61
66
62
67
final headline = headlineResponse as Headline ;
63
68
final sources = (sourcesResponse as PaginatedResponse <Source >).items;
64
69
final topics = (topicsResponse as PaginatedResponse <Topic >).items;
70
+ final countries = (countriesResponse as PaginatedResponse <Country >).items;
65
71
66
72
emit (
67
73
state.copyWith (
@@ -76,6 +82,7 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
76
82
eventCountry: () => headline.eventCountry,
77
83
sources: sources,
78
84
topics: topics,
85
+ countries: countries,
79
86
contentStatus: headline.status,
80
87
),
81
88
);
@@ -159,16 +166,12 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
159
166
EditHeadlineCountryChanged event,
160
167
Emitter <EditHeadlineState > emit,
161
168
) {
162
- final packageCountry = event.country;
163
- if (packageCountry == null ) {
164
- emit (state.copyWith (eventCountry: () => null ));
165
- } else {
166
- final coreCountry = adaptPackageCountryToCoreCountry (packageCountry);
167
- emit (
168
- state.copyWith (
169
- eventCountry: () => coreCountry, status: EditHeadlineStatus .initial),
170
- );
171
- }
169
+ emit (
170
+ state.copyWith (
171
+ eventCountry: () => event.country,
172
+ status: EditHeadlineStatus .initial,
173
+ ),
174
+ );
172
175
}
173
176
174
177
void _onStatusChanged (
0 commit comments