// Copyright 2020 Ben Hills and the project contributors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /// The BLoCs in this application share common states, such as loading, error /// or populated. /// /// Rather than having a separate selection of state classes, we create this generic one. enum BlocErrorType { unknown, connectivity, timeout } abstract class BlocState {} class BlocDefaultState extends BlocState {} class BlocLoadingState extends BlocState { final T? data; BlocLoadingState([this.data]); } class BlocBackgroundLoadingState extends BlocState { final T? data; BlocBackgroundLoadingState([this.data]); } class BlocSuccessfulState extends BlocState {} class BlocEmptyState extends BlocState {} class BlocErrorState extends BlocState { final BlocErrorType error; BlocErrorState({ this.error = BlocErrorType.unknown, }); } class BlocNoInputState extends BlocState {} class BlocPopulatedState extends BlocState { final T? results; BlocPopulatedState({this.results}); }