refactor: user item style

This commit is contained in:
Rongjian Zhang 2019-09-27 21:02:55 +08:00
parent 62c53e543d
commit a513dfb7c6
7 changed files with 23 additions and 33 deletions

View File

@ -119,7 +119,7 @@ class OrganizationScreen extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
UserItem(
login,
login: login,
name: payload['name'],
avatarUrl: payload['avatarUrl'],
bio: payload['description'],

View File

@ -64,7 +64,6 @@ class _SearchScreenState extends State<SearchScreen> {
}
... on User {
$userGqlChunk
login
}
}
}

View File

@ -51,7 +51,7 @@ class TrendingScreen extends StatelessWidget {
});
case 1:
return UserItem(
item['username'],
login: item['username'],
name: item['name'],
avatarUrl: item['avatar'],
bio: '',

View File

@ -30,7 +30,7 @@ class _TrendingScreenState extends State<TrendingScreen> {
switch (_activeTab) {
case 0:
return _userItems?.map((item) => UserItem(
item['username'],
login: item['username'],
name: item['name'],
avatarUrl: item['avatar'],
bio: '',

View File

@ -30,9 +30,7 @@ class UserScreen extends StatelessWidget {
var data = await Provider.of<AuthModel>(context).query('''
{
user(login: "$login") {
name
avatarUrl
bio
$userGqlChunk
company
location
email
@ -201,12 +199,7 @@ class UserScreen extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
UserItem(
login,
name: payload['name'],
avatarUrl: payload['avatarUrl'],
bio: payload['bio'],
),
UserItem.fromData(payload, inUserScreen: true),
borderView,
Row(children: <Widget>[
EntryItem(

View File

@ -49,10 +49,7 @@ class UsersScreen extends StatelessWidget {
endCursor
}
nodes {
name
login
avatarUrl
bio
$userGqlChunk
}
}
}
@ -73,12 +70,7 @@ class UsersScreen extends StatelessWidget {
title: AppBarTitle(title),
onRefresh: () => _queryUsers(context),
onLoadMore: (cursor) => _queryUsers(context, cursor),
itemBuilder: (payload) => UserItem(
payload['login'],
name: payload['name'],
avatarUrl: payload['avatarUrl'],
bio: payload['bio'],
),
itemBuilder: (payload) => UserItem.fromData(payload),
);
}
}

View File

@ -7,6 +7,7 @@ import 'package:git_touch/widgets/text_contains_organization.dart';
import 'package:primer/primer.dart';
const userGqlChunk = '''
login
name
avatarUrl
bio
@ -20,20 +21,22 @@ class UserItem extends StatelessWidget {
final bool inUserScreen;
final bool isOrganization;
UserItem(
this.login, {
UserItem({
this.login,
this.name,
this.avatarUrl,
this.bio,
this.inUserScreen = false,
this.isOrganization = false,
});
UserItem.fromData(data, {this.isOrganization = false})
: login = data['login'],
UserItem.fromData(
data, {
this.isOrganization = false,
this.inUserScreen = false,
}) : login = data['login'],
name = data['name'],
avatarUrl = data['avatarUrl'],
bio = data['bio'],
inUserScreen = false;
bio = data['bio'];
@override
Widget build(BuildContext context) {
@ -55,15 +58,16 @@ class UserItem extends StatelessWidget {
name ?? login,
style: TextStyle(
color: PrimerColors.blue500,
fontSize: 18,
fontSize: inUserScreen ? 18 : 16,
fontWeight: FontWeight.w600,
),
),
SizedBox(width: 8),
Text(
login,
style:
TextStyle(color: PrimerColors.gray700, fontSize: 16),
style: TextStyle(
color: PrimerColors.gray700,
fontSize: inUserScreen ? 16 : 14),
),
],
),
@ -71,7 +75,9 @@ class UserItem extends StatelessWidget {
if (bio != null && bio.isNotEmpty)
TextContainsOrganization(
bio,
style: TextStyle(color: PrimerColors.gray700, fontSize: 15),
style: TextStyle(
color: PrimerColors.gray700,
fontSize: inUserScreen ? 15 : 14),
),
],
),