diff --git a/lib/features/trips/controller/trip_belonging_controller.dart b/lib/features/trips/controller/trip_belonging_controller.dart index bffeba3a..a76b0e89 100644 --- a/lib/features/trips/controller/trip_belonging_controller.dart +++ b/lib/features/trips/controller/trip_belonging_controller.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; +import 'package:trip_app_nativeapp/core/exception/exception_handler.dart'; import 'package:trip_app_nativeapp/features/trips/domain/entity/trip/trip_belonging.dart'; import 'package:trip_app_nativeapp/features/trips/domain/interactor/trip_interactor.dart'; import 'package:trip_app_nativeapp/view/widgets/common/loading.dart'; @@ -20,17 +21,19 @@ class TripBelongingsController extends _$TripBelongingsController { required bool isShareAmongMember, VoidCallback? onFinished, }) async { - ref.read(overlayLoadingProvider.notifier).startLoading(); - state = await AsyncValue.guard(() async { + try { final result = await ref.read(tripInteractorProvider).addTripBelonging( tripId: tripId, name: name, numOf: numOf, isShareAmongMember: isShareAmongMember, ); - return [result, ...state.value ?? []]; - }); - ref.read(overlayLoadingProvider.notifier).endLoading(); - onFinished?.call(); + state = AsyncValue.data([result, ...state.value ?? []]); + } on Exception catch (e) { + ref.read(exceptionHandlerProvider).handleException(e); + } finally { + ref.read(overlayLoadingProvider.notifier).endLoading(); + onFinished?.call(); + } } }