Skip to content

Commit b320a8e

Browse files
committed
refactor: simplify list data payload
1 parent 17df5d6 commit b320a8e

File tree

12 files changed

+58
-77
lines changed

12 files changed

+58
-77
lines changed

lib/models/auth.dart

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,6 @@ class DataWithPage<T> {
3939
bool hasMore;
4040
int total;
4141
DataWithPage({
42-
/*required*/ required this.data,
43-
/*required*/ required this.cursor,
44-
/*required*/ required this.hasMore,
45-
required this.total,
46-
});
47-
}
48-
49-
class BbPagePayload<T> {
50-
T data;
51-
String? cursor;
52-
bool hasMore;
53-
int total;
54-
BbPagePayload({
5542
required this.data,
5643
required this.cursor,
5744
required this.hasMore,
@@ -583,13 +570,12 @@ class AuthModel with ChangeNotifier {
583570
return json.decode(utf8.decode(res.bodyBytes));
584571
}
585572

586-
Future<BbPagePayload<List?>> fetchBbWithPage(String p) async {
573+
Future<ListPayload<dynamic, String?>> fetchBbWithPage(String p) async {
587574
final data = await fetchBbJson(p);
588575
final v = BbPagination.fromJson(data);
589-
return BbPagePayload(
576+
return ListPayload(
590577
cursor: v.next,
591-
total: v.size ?? TOTAL_COUNT_FALLBACK,
592-
data: v.values,
578+
items: v.values,
593579
hasMore: v.next != null,
594580
);
595581
}

lib/models/bitbucket.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@ part 'bitbucket.g.dart';
33

44
@JsonSerializable(fieldRename: FieldRename.snake)
55
class BbPagination {
6-
int? pagelen;
7-
int? size;
8-
int? page;
96
String? next;
10-
List? values;
11-
BbPagination();
7+
List values;
8+
BbPagination({required this.values});
129
factory BbPagination.fromJson(Map<String, dynamic> json) =>
1310
_$BbPaginationFromJson(json);
1411
}

lib/models/bitbucket.g.dart

Lines changed: 3 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/scaffolds/list_stateful.dart

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,7 @@ import 'package:provider/provider.dart';
88
import 'package:git_touch/widgets/error_reload.dart';
99
import 'package:git_touch/widgets/loading.dart';
1010
import 'package:git_touch/widgets/empty.dart';
11-
12-
class ListPayload<T, K> {
13-
K cursor;
14-
Iterable<T> items;
15-
bool hasMore;
16-
17-
ListPayload({
18-
required this.items,
19-
required this.cursor,
20-
required this.hasMore,
21-
});
22-
}
11+
export 'package:git_touch/utils/utils.dart';
2312

2413
// This is a scaffold for infinite scroll screens
2514
class ListStatefulScaffold<T, K> extends StatefulWidget {

lib/screens/bb_commits.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:git_touch/scaffolds/list_stateful.dart';
55
import 'package:git_touch/widgets/app_bar_title.dart';
66
import 'package:git_touch/widgets/commit_item.dart';
77
import 'package:provider/provider.dart';
8+
import 'package:git_touch/utils/utils.dart';
89
import 'package:flutter_gen/gen_l10n/S.dart';
910

1011
class BbCommitsScreen extends StatelessWidget {
@@ -25,7 +26,7 @@ class BbCommitsScreen extends StatelessWidget {
2526
cursor: res.cursor,
2627
hasMore: res.hasMore,
2728
items: <BbCommit>[
28-
for (var v in res.data!) BbCommit.fromJson(v),
29+
for (var v in res.items) BbCommit.fromJson(v),
2930
],
3031
);
3132
},

lib/screens/bb_explore.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:git_touch/scaffolds/list_stateful.dart';
55
import 'package:git_touch/widgets/app_bar_title.dart';
66
import 'package:git_touch/widgets/repository_item.dart';
77
import 'package:provider/provider.dart';
8+
import 'package:git_touch/utils/utils.dart';
89
import 'package:flutter_gen/gen_l10n/S.dart';
910

1011
class BbExploreScreen extends StatelessWidget {
@@ -19,7 +20,7 @@ class BbExploreScreen extends StatelessWidget {
1920
cursor: res.cursor,
2021
hasMore: res.hasMore,
2122
items: <BbRepo>[
22-
for (var v in res.data!) BbRepo.fromJson(v),
23+
for (var v in res.items) BbRepo.fromJson(v),
2324
],
2425
);
2526
},

lib/screens/bb_issues.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class BbIssuesScreen extends StatelessWidget {
3030
cursor: res.cursor,
3131
hasMore: res.hasMore,
3232
items: <BbIssues>[
33-
for (var v in res.data!) BbIssues.fromJson(v),
33+
for (var v in res.items) BbIssues.fromJson(v),
3434
],
3535
);
3636
},

lib/screens/bb_pulls.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:git_touch/scaffolds/list_stateful.dart';
55
import 'package:git_touch/widgets/app_bar_title.dart';
66
import 'package:git_touch/widgets/issue_item.dart';
77
import 'package:provider/provider.dart';
8+
import 'package:git_touch/utils/utils.dart';
89
import 'package:flutter_gen/gen_l10n/S.dart';
910

1011
class BbPullsScreen extends StatelessWidget {
@@ -24,7 +25,7 @@ class BbPullsScreen extends StatelessWidget {
2425
cursor: res.cursor,
2526
hasMore: res.hasMore,
2627
items: <BbPulls>[
27-
for (var v in res.data!) BbPulls.fromJson(v),
28+
for (var v in res.items) BbPulls.fromJson(v),
2829
],
2930
);
3031
},

lib/screens/bb_repo.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class BbRepoScreen extends StatelessWidget {
3636
final branches = await auth
3737
.fetchBbWithPage('/repositories/$owner/$name/refs/branches')
3838
.then((v) {
39-
return [for (var branch in v.data!) BbBranch.fromJson(branch)];
39+
return [for (var branch in v.items) BbBranch.fromJson(branch)];
4040
});
4141
return Tuple3(repo, readme, branches);
4242
},

lib/screens/bb_teams.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:git_touch/widgets/app_bar_title.dart';
66
import 'package:git_touch/widgets/user_item.dart';
77
import 'package:provider/provider.dart';
88
import 'package:timeago/timeago.dart' as timeago;
9+
import 'package:git_touch/utils/utils.dart';
910
import 'package:flutter_gen/gen_l10n/S.dart';
1011

1112
class BbTeamsScreen extends StatelessWidget {
@@ -21,7 +22,7 @@ class BbTeamsScreen extends StatelessWidget {
2122
cursor: res.cursor,
2223
hasMore: res.hasMore,
2324
items: <BbUser>[
24-
for (var v in res.data!) BbUser.fromJson(v),
25+
for (var v in res.items) BbUser.fromJson(v),
2526
],
2627
);
2728
},

0 commit comments

Comments
 (0)