@@ -5,54 +5,55 @@ import 'package:github/github.dart';
5
5
6
6
import 'common.dart' ;
7
7
8
- DivElement repositoriesDiv;
9
- List <Repository > repos;
8
+ DivElement ? repositoriesDiv;
9
+ List <Repository >? repos;
10
10
11
11
Map <String , Comparator <Repository >> sorts = {
12
12
'stars' : (Repository a, Repository b) =>
13
13
b.stargazersCount.compareTo (a.stargazersCount),
14
14
'forks' : (Repository a, Repository b) => b.forksCount.compareTo (a.forksCount),
15
- 'created' : (Repository a, Repository b) => b.createdAt.compareTo (a.createdAt),
16
- 'pushed' : (Repository a, Repository b) => b.pushedAt.compareTo (a.pushedAt),
15
+ 'created' : (Repository a, Repository b) =>
16
+ b.createdAt! .compareTo (a.createdAt! ),
17
+ 'pushed' : (Repository a, Repository b) => b.pushedAt! .compareTo (a.pushedAt! ),
17
18
'size' : (Repository a, Repository b) => b.size.compareTo (a.size)
18
19
};
19
20
20
21
Future <void > main () async {
21
22
await initViewSourceButton ('repos.dart' );
22
23
23
- repositoriesDiv = querySelector ('#repos' );
24
+ repositoriesDiv = querySelector ('#repos' ) as DivElement ? ;
24
25
25
26
loadRepos ();
26
27
27
- querySelector ('#reload' ).onClick.listen ((event) {
28
+ querySelector ('#reload' )! .onClick.listen ((event) {
28
29
loadRepos ();
29
30
});
30
31
31
32
sorts.keys.forEach ((name) {
32
- querySelector ('#sort-$name ' ).onClick.listen ((event) {
33
+ querySelector ('#sort-$name ' )! .onClick.listen ((event) {
33
34
if (_reposCache == null ) {
34
35
loadRepos (sorts[name]);
35
36
}
36
- updateRepos (_reposCache, sorts[name]);
37
+ updateRepos (_reposCache! , sorts[name]);
37
38
});
38
39
});
39
40
}
40
41
41
- List <Repository > _reposCache;
42
+ List <Repository >? _reposCache;
42
43
43
44
void updateRepos (
44
45
List <Repository > repos, [
45
- int Function (Repository a, Repository b) compare,
46
+ int Function (Repository a, Repository b)? compare,
46
47
]) {
47
- document.querySelector ('#repos' ).children.clear ();
48
+ document.querySelector ('#repos' )! .children.clear ();
48
49
repos.sort (compare);
49
50
for (final repo in repos) {
50
- repositoriesDiv.appendHtml ('''
51
+ repositoriesDiv! .appendHtml ('''
51
52
<div class="repo" id="repo_${repo .name }">
52
53
<div class="line"></div>
53
54
<h2><a href="${repo .htmlUrl }">${repo .name }</a></h2>
54
- ${repo .description != "" && repo . description != null ? "<b>Description</b>: ${repo .description }<br/>" : "" }
55
- <b>Language</b>: ${repo .language ?? "Unknown" }
55
+ ${repo .description != "" ? "<b>Description</b>: ${repo .description }<br/>" : "" }
56
+ <b>Language</b>: ${repo .language }
56
57
<br/>
57
58
<b>Default Branch</b>: ${repo .defaultBranch }
58
59
<br/>
@@ -69,15 +70,15 @@ void updateRepos(
69
70
}
70
71
}
71
72
72
- void loadRepos ([int Function (Repository a, Repository b) compare]) {
73
- final title = querySelector ('#title' );
74
- if (title.text.contains ('(' )) {
73
+ void loadRepos ([int Function (Repository a, Repository b)? compare]) {
74
+ final title = querySelector ('#title' )! ;
75
+ if (title.text! .contains ('(' )) {
75
76
title.replaceWith (HeadingElement .h2 ()
76
77
..text = 'GitHub for Dart - Repositories'
77
78
..id = 'title' );
78
79
}
79
80
80
- var user = 'SpinlockLabs' ;
81
+ String ? user = 'SpinlockLabs' ;
81
82
82
83
if (queryString.containsKey ('user' )) {
83
84
user = queryString['user' ];
@@ -86,13 +87,13 @@ void loadRepos([int Function(Repository a, Repository b) compare]) {
86
87
if (queryString.containsKey ('sort' ) && compare == null ) {
87
88
final sorter = queryString['sort' ];
88
89
if (sorts.containsKey (sorter)) {
89
- compare = sorts[sorter];
90
+ compare = sorts[sorter! ];
90
91
}
91
92
}
92
93
93
94
compare ?? = (a, b) => a.name.compareTo (b.name);
94
95
95
- github.repositories.listUserRepositories (user).toList ().then ((repos) {
96
+ github.repositories.listUserRepositories (user! ).toList ().then ((repos) {
96
97
_reposCache = repos;
97
98
updateRepos (repos, compare);
98
99
});
0 commit comments