mirror of
https://github.com/git-touch/git-touch
synced 2025-02-23 14:57:42 +01:00
fix(gh): orgs screen description null
This commit is contained in:
parent
5101b2554f
commit
2d9610170b
@ -41,7 +41,7 @@ import 'package:git_touch/screens/gh_repo.dart';
|
||||
import 'package:git_touch/screens/settings.dart';
|
||||
import 'package:git_touch/screens/gh_user.dart';
|
||||
import 'package:git_touch/screens/gh_users.dart';
|
||||
import 'package:git_touch/screens/gh_user_organization.dart';
|
||||
import 'package:git_touch/screens/gh_orgs.dart';
|
||||
import 'package:git_touch/screens/gh_gists.dart';
|
||||
import 'package:git_touch/screens/gh_gist_object.dart';
|
||||
import 'package:git_touch/screens/gh_compare.dart';
|
||||
|
@ -78,12 +78,13 @@ class _ListStatefulScaffoldState<T, K>
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: if items not enough, fetch next page
|
||||
// if items not enough, fetch next page
|
||||
// This should be triggered after build
|
||||
// TODO: disabled
|
||||
void _makeSureItemsFill() {
|
||||
Future.delayed(Duration(milliseconds: 300)).then((_) {
|
||||
onScroll();
|
||||
});
|
||||
// Future.delayed(Duration(milliseconds: 300)).then((_) {
|
||||
// onScroll();
|
||||
// });
|
||||
}
|
||||
|
||||
Future<void> _refresh({bool force = false}) async {
|
||||
|
@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/models/github.dart';
|
||||
import 'package:git_touch/scaffolds/list_stateful.dart';
|
||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||
import 'package:git_touch/widgets/user_organizations.dart';
|
||||
import 'package:git_touch/widgets/user_item.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
|
||||
@ -14,13 +14,14 @@ class GhUserOrganizationScreen extends StatelessWidget {
|
||||
Future<ListPayload<GithubUserOrganizationItem, int>> _query(
|
||||
BuildContext context,
|
||||
[int page = 1]) async {
|
||||
final auth = context.read<AuthModel>();
|
||||
final res =
|
||||
await auth.ghClient.getJSON<List, List<GithubUserOrganizationItem>>(
|
||||
'/users/$login/orgs?page=$page',
|
||||
convert: (vs) =>
|
||||
[for (var v in vs) GithubUserOrganizationItem.fromJson(v)],
|
||||
);
|
||||
final res = await context
|
||||
.read<AuthModel>()
|
||||
.ghClient
|
||||
.getJSON<List, List<GithubUserOrganizationItem>>(
|
||||
'/users/$login/orgs?page=$page',
|
||||
convert: (vs) =>
|
||||
[for (var v in vs) GithubUserOrganizationItem.fromJson(v)],
|
||||
);
|
||||
return ListPayload(
|
||||
cursor: page + 1,
|
||||
items: res,
|
||||
@ -34,12 +35,10 @@ class GhUserOrganizationScreen extends StatelessWidget {
|
||||
onRefresh: () => _query(context),
|
||||
onLoadMore: (cursor) => _query(context, cursor),
|
||||
itemBuilder: (v) {
|
||||
final String login = v.login;
|
||||
return UserOrganizationItem(
|
||||
return UserItem.gh(
|
||||
avatarUrl: v.avatarUrl,
|
||||
login: v.login,
|
||||
url: '/github/$login',
|
||||
description: v.description,
|
||||
bio: v.description == null ? null : Text(v.description),
|
||||
);
|
||||
},
|
||||
);
|
@ -20,15 +20,14 @@ class UserItem extends StatelessWidget {
|
||||
final String url;
|
||||
|
||||
UserItem.gh({
|
||||
@required this.login,
|
||||
// @required this.name,
|
||||
@required this.avatarUrl,
|
||||
@required this.login,
|
||||
@required this.bio,
|
||||
}) : url = '/github/$login';
|
||||
|
||||
UserItem({
|
||||
@required this.login,
|
||||
@required this.avatarUrl,
|
||||
@required this.login,
|
||||
@required this.bio,
|
||||
@required this.url,
|
||||
});
|
||||
|
@ -1,72 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class UserOrganizationItem extends StatelessWidget {
|
||||
final String login;
|
||||
final String avatarUrl;
|
||||
final String url;
|
||||
final String description;
|
||||
|
||||
UserOrganizationItem({
|
||||
@required this.login,
|
||||
@required this.avatarUrl,
|
||||
@required this.url,
|
||||
@required this.description,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Link(
|
||||
url: url,
|
||||
child: Container(
|
||||
padding: CommonStyle.padding,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Avatar(url: avatarUrl, size: AvatarSize.large),
|
||||
SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Row(
|
||||
children: <Widget>[
|
||||
Text(
|
||||
login,
|
||||
style: TextStyle(
|
||||
color: theme.palette.primary,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: 6),
|
||||
Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Text(
|
||||
description,
|
||||
style: TextStyle(
|
||||
color: theme.palette.secondaryText,
|
||||
fontSize: 16,
|
||||
),
|
||||
overflow: TextOverflow.visible,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user