@@ -275,7 +275,9 @@ class EditSourceBloc extends Bloc<EditSourceEvent, EditSourceState> {
275
275
EditSourceLoadMoreCountriesRequested event,
276
276
Emitter <EditSourceState > emit,
277
277
) async {
278
- if (! state.countriesHasMore) return ;
278
+ if (! state.countriesHasMore || state.countriesIsLoadingMore) return ;
279
+
280
+ emit (state.copyWith (countriesIsLoadingMore: true ));
279
281
280
282
try {
281
283
final countriesResponse = await _countriesRepository.readAll (
@@ -293,15 +295,23 @@ class EditSourceBloc extends Bloc<EditSourceEvent, EditSourceState> {
293
295
countries: List .of (state.countries)..addAll (countriesResponse.items),
294
296
countriesCursor: countriesResponse.cursor,
295
297
countriesHasMore: countriesResponse.hasMore,
298
+ countriesIsLoadingMore: false ,
296
299
),
297
300
);
298
301
} on HttpException catch (e) {
299
- emit (state.copyWith (status: EditSourceStatus .failure, exception: e));
302
+ emit (
303
+ state.copyWith (
304
+ status: EditSourceStatus .failure,
305
+ exception: e,
306
+ countriesIsLoadingMore: false ,
307
+ ),
308
+ );
300
309
} catch (e) {
301
310
emit (
302
311
state.copyWith (
303
312
status: EditSourceStatus .failure,
304
313
exception: UnknownException ('An unexpected error occurred: $e ' ),
314
+ countriesIsLoadingMore: false ,
305
315
),
306
316
);
307
317
}
@@ -342,7 +352,9 @@ class EditSourceBloc extends Bloc<EditSourceEvent, EditSourceState> {
342
352
EditSourceLoadMoreLanguagesRequested event,
343
353
Emitter <EditSourceState > emit,
344
354
) async {
345
- if (! state.languagesHasMore) return ;
355
+ if (! state.languagesHasMore || state.languagesIsLoadingMore) return ;
356
+
357
+ emit (state.copyWith (languagesIsLoadingMore: true ));
346
358
347
359
try {
348
360
final languagesResponse = await _languagesRepository.readAll (
@@ -360,15 +372,23 @@ class EditSourceBloc extends Bloc<EditSourceEvent, EditSourceState> {
360
372
languages: List .of (state.languages)..addAll (languagesResponse.items),
361
373
languagesCursor: languagesResponse.cursor,
362
374
languagesHasMore: languagesResponse.hasMore,
375
+ languagesIsLoadingMore: false ,
363
376
),
364
377
);
365
378
} on HttpException catch (e) {
366
- emit (state.copyWith (status: EditSourceStatus .failure, exception: e));
379
+ emit (
380
+ state.copyWith (
381
+ status: EditSourceStatus .failure,
382
+ exception: e,
383
+ languagesIsLoadingMore: false ,
384
+ ),
385
+ );
367
386
} catch (e) {
368
387
emit (
369
388
state.copyWith (
370
389
status: EditSourceStatus .failure,
371
390
exception: UnknownException ('An unexpected error occurred: $e ' ),
391
+ languagesIsLoadingMore: false ,
372
392
),
373
393
);
374
394
}
0 commit comments