calculatePrice method

dynamic calculatePrice({
  1. bool isInit = false,
})

Implementation

calculatePrice({bool isInit = false}) async {
  if (!isUpdating.value) {
    isUpdating.value = true;
  }
  if (!isInit) {
    final cartCopy = viewState.value.data?.copyWith();

    if (cartCopy != null) {
      final request = mapCartToUpdateCartRequest(cartCopy);

      await cartService.updateCart(request);
      final response = await cartService.getCart();

      response.fold(
        (error) {
          onError?.call(error.message);
        },
        (result) {
          viewState.value.data = result;
        },
      );
    }
  }
  setCheckoutAvailability();
  update();
  isUpdating.value = false;
}