@@ -221,7 +221,9 @@ class CreateSourceBloc extends Bloc<CreateSourceEvent, CreateSourceState> {
221
221
CreateSourceLoadMoreCountriesRequested event,
222
222
Emitter <CreateSourceState > emit,
223
223
) async {
224
- if (! state.countriesHasMore) return ;
224
+ if (! state.countriesHasMore || state.countriesIsLoadingMore) return ;
225
+
226
+ emit (state.copyWith (countriesIsLoadingMore: true ));
225
227
226
228
try {
227
229
final countriesResponse = await _countriesRepository.readAll (
@@ -239,15 +241,23 @@ class CreateSourceBloc extends Bloc<CreateSourceEvent, CreateSourceState> {
239
241
countries: List .of (state.countries)..addAll (countriesResponse.items),
240
242
countriesCursor: countriesResponse.cursor,
241
243
countriesHasMore: countriesResponse.hasMore,
244
+ countriesIsLoadingMore: false ,
242
245
),
243
246
);
244
247
} on HttpException catch (e) {
245
- emit (state.copyWith (status: CreateSourceStatus .failure, exception: e));
248
+ emit (
249
+ state.copyWith (
250
+ status: CreateSourceStatus .failure,
251
+ exception: e,
252
+ countriesIsLoadingMore: false ,
253
+ ),
254
+ );
246
255
} catch (e) {
247
256
emit (
248
257
state.copyWith (
249
258
status: CreateSourceStatus .failure,
250
259
exception: UnknownException ('An unexpected error occurred: $e ' ),
260
+ countriesIsLoadingMore: false ,
251
261
),
252
262
);
253
263
}
@@ -288,7 +298,9 @@ class CreateSourceBloc extends Bloc<CreateSourceEvent, CreateSourceState> {
288
298
CreateSourceLoadMoreLanguagesRequested event,
289
299
Emitter <CreateSourceState > emit,
290
300
) async {
291
- if (! state.languagesHasMore) return ;
301
+ if (! state.languagesHasMore || state.languagesIsLoadingMore) return ;
302
+
303
+ emit (state.copyWith (languagesIsLoadingMore: true ));
292
304
293
305
try {
294
306
final languagesResponse = await _languagesRepository.readAll (
@@ -306,15 +318,23 @@ class CreateSourceBloc extends Bloc<CreateSourceEvent, CreateSourceState> {
306
318
languages: List .of (state.languages)..addAll (languagesResponse.items),
307
319
languagesCursor: languagesResponse.cursor,
308
320
languagesHasMore: languagesResponse.hasMore,
321
+ languagesIsLoadingMore: false ,
309
322
),
310
323
);
311
324
} on HttpException catch (e) {
312
- emit (state.copyWith (status: CreateSourceStatus .failure, exception: e));
325
+ emit (
326
+ state.copyWith (
327
+ status: CreateSourceStatus .failure,
328
+ exception: e,
329
+ languagesIsLoadingMore: false ,
330
+ ),
331
+ );
313
332
} catch (e) {
314
333
emit (
315
334
state.copyWith (
316
335
status: CreateSourceStatus .failure,
317
336
exception: UnknownException ('An unexpected error occurred: $e ' ),
337
+ languagesIsLoadingMore: false ,
318
338
),
319
339
);
320
340
}
0 commit comments