onSearch method

  1. @override
SearchAppState onSearch(
  1. SearchInfo searchInfo,
  2. SearchUserJourney searchUserJourney
)
override

Implementation

@override
SearchAppState onSearch(
    SearchInfo searchInfo, SearchUserJourney searchUserJourney) {
  if (searchInfo.item?.description == null ||
      searchInfo.item!.description!.isEmpty) {
    if (searchInfo.isAddToCart) {
      return new AddToCartAppState(AddToCartAppState.itemNotSpecified);
    } else {
      return new SearchResultAppState(SearchResultAppState.itemNotSpecified);
    }
  }

  if (_onSearch != null) {
    _onSearch!(searchInfo, searchUserJourney);
  }
  SearchAppState? searchAppState = searchUserJourney.getSearchAppState();

  if (searchAppState == null) {
    if (searchInfo.isAddToCart) {
      searchAppState = new AddToCartAppState(AddToCartAppState.success);
    } else {
      searchAppState = new SearchResultAppState(SearchResultAppState.success);
    }
    try {
      searchUserJourney.notifyAppState(searchAppState);
    } catch (e) {
      print(e);
    }
  }

  return new WaitingAppState();
}