ViewStateBuilder is responsible for building the UI based on the ViewState.
It's a wrapper over the BlocBuilder widget so it accepts a bloc object and
a set of handy callbacks, which corresponds to each possible state:
onReady callback for the the initial state,
onLoading callback for the data loading state,
onRefreshing callback for the data refreshing state,
onSuccess callback for the data success state,
onEmpty callback for for no result state,
onError callback function for an error state.
T - the type of list elements,
B - the type of bloc.