Skip to content

Commit a0090e1

Browse files
Sh4dordShadd
andauthored
feat(pageState): add Refs: #21 (#26)
Co-authored-by: Shadd <7162036-Shadord@users.noreply.gitlab.com>
1 parent 9dbbfb0 commit a0090e1

File tree

17 files changed

+1399
-56
lines changed

17 files changed

+1399
-56
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import 'package:freezed_annotation/freezed_annotation.dart';
2+
part 'page_state.freezed.dart';
3+
4+
typedef SimplePageState<T> = PageState<T, void, void, void, dynamic>;
5+
6+
/// A kind of PageState where you already have a previous data, before loading the page
7+
typedef HydratedPageState<T> = PageState<T, void, T, T, dynamic>;
8+
9+
@freezed
10+
class PageState<T, Tidle, Tloading, Tempty, Tfailure> with _$PageState {
11+
const PageState._();
12+
13+
factory PageState.idle([Tidle? data]) = _PageStateIdle;
14+
15+
factory PageState.loading([Tloading? data]) = _PageStateLoading;
16+
17+
factory PageState.loaded({required T data}) = _PageStateLoaded;
18+
19+
factory PageState.empty({Tempty? data}) = _PageStateEmpty;
20+
21+
factory PageState.failure([Tfailure? data]) = _PageStateFailure;
22+
23+
bool get isIdle => this is _PageStateIdle;
24+
25+
bool get isLoading => this is _PageStateLoading;
26+
27+
bool get isLoaded => this is _PageStateLoaded;
28+
29+
bool get isEmpty => this is _PageStateEmpty;
30+
31+
bool get isFailure => this is _PageStateFailure;
32+
}

0 commit comments

Comments
 (0)