mirror of
https://github.com/git-touch/git-touch
synced 2025-02-20 13:30:38 +01:00
feat: add name to user list item
This commit is contained in:
parent
d89a407cf0
commit
70b2dd4bb0
@ -25,9 +25,9 @@ class BbTeamsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
return UserItem(
|
||||
return UserItem.bitbucket(
|
||||
login: v.username,
|
||||
url: '/bitbucket/${v.username}?team=1',
|
||||
name: v.nickname,
|
||||
avatarUrl: v.avatarUrl,
|
||||
bio: Text('Created ${timeago.format(v.createdOn)}'),
|
||||
);
|
||||
|
@ -31,9 +31,10 @@ class GhUserOrganizationScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
return UserItem.gh(
|
||||
return UserItem.github(
|
||||
avatarUrl: v.avatarUrl,
|
||||
login: v.login,
|
||||
name: null, // TODO: organization name
|
||||
bio: v.description == null ? null : Text(v.description),
|
||||
);
|
||||
},
|
||||
|
@ -185,9 +185,9 @@ class _GhSearchScreenState extends State<GhSearchScreen> {
|
||||
isFork: p['isFork'],
|
||||
);
|
||||
case 1:
|
||||
return UserItem.gh(
|
||||
return UserItem.github(
|
||||
login: p['login'],
|
||||
// name: p['name'],
|
||||
name: p['name'],
|
||||
avatarUrl: p['avatarUrl'],
|
||||
bio: Text(p['bio'] ?? ''),
|
||||
);
|
||||
|
@ -48,9 +48,9 @@ class GhTrendingScreen extends StatelessWidget {
|
||||
]
|
||||
: [
|
||||
for (var v in payload.cast<GithubTrendingDeveloper>())
|
||||
UserItem.gh(
|
||||
UserItem.github(
|
||||
login: v.username,
|
||||
// name: v.name,
|
||||
name: v.name,
|
||||
avatarUrl: v.avatar,
|
||||
bio: v.repo == null
|
||||
? null
|
||||
|
@ -142,9 +142,9 @@ class GhUsersScreen extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
itemBuilder: (payload) {
|
||||
return UserItem.gh(
|
||||
return UserItem.github(
|
||||
login: payload.login,
|
||||
// name: payload.name,
|
||||
name: payload.name,
|
||||
avatarUrl: payload.avatarUrl,
|
||||
bio: _buildBio(
|
||||
context, payload.company, payload.location, payload.createdAt),
|
||||
|
@ -24,11 +24,12 @@ class GlGroupsScreenn extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
return UserItem(
|
||||
return UserItem.gitlab(
|
||||
avatarUrl: v.avatarUrl,
|
||||
login: v.path,
|
||||
name: v.name,
|
||||
bio: Text(v.description ?? ''),
|
||||
url: '/gitlab/group/${v.id}',
|
||||
id: v.id,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
@ -38,11 +38,12 @@ class GlMembersScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
return UserItem(
|
||||
return UserItem.gitlab(
|
||||
avatarUrl: v.avatarUrl,
|
||||
login: v.username,
|
||||
name: v.name,
|
||||
bio: Text(accessLevelMap[v.accessLevel] ?? ''),
|
||||
url: '/gitlab/user/${v.id}',
|
||||
id: v.id,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
@ -102,18 +102,21 @@ class _GlSearchScreenState extends State<GlSearchScreen> {
|
||||
|
||||
static const tabs = ['Projects', 'Users'];
|
||||
|
||||
Widget _buildItem(p) {
|
||||
Widget _buildItem(_p) {
|
||||
switch (_activeTab) {
|
||||
case 0:
|
||||
final p = _p as GitlabProject;
|
||||
final updatedAt = timeago.format(p.lastActivityAt);
|
||||
return RepositoryItem.gl(
|
||||
payload: p,
|
||||
note: 'Updated $updatedAt',
|
||||
);
|
||||
case 1:
|
||||
return UserItem(
|
||||
final p = _p as GitlabUser;
|
||||
return UserItem.gitlab(
|
||||
login: p.username,
|
||||
url: '/gitlab/user/${p.id}',
|
||||
name: p.name,
|
||||
id: p.id,
|
||||
avatarUrl: p.avatarUrl,
|
||||
bio: Text(p.bio ?? ''),
|
||||
);
|
||||
|
@ -29,11 +29,12 @@ class GlStarrersScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
return UserItem(
|
||||
return UserItem.gitlab(
|
||||
avatarUrl: v.user.avatarUrl,
|
||||
login: v.user.username,
|
||||
name: v.user.name,
|
||||
bio: Text('Starred ' + timeago.format(v.starredSince)),
|
||||
url: '/gitlab/user/${v.user.id}',
|
||||
id: v.user.id,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
@ -25,11 +25,11 @@ class GtOrgsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
return UserItem(
|
||||
return UserItem.gitea(
|
||||
avatarUrl: v.avatarUrl,
|
||||
login: v.username,
|
||||
name: v.fullName,
|
||||
bio: Text(v.description ?? v.website ?? v.location),
|
||||
url: '/gitea/${v.username}?org=1',
|
||||
);
|
||||
},
|
||||
);
|
||||
|
@ -41,11 +41,11 @@ class GtUsersScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (payload) {
|
||||
return UserItem(
|
||||
return UserItem.gitea(
|
||||
login: payload.login,
|
||||
name: payload.fullName,
|
||||
avatarUrl: payload.avatarUrl,
|
||||
bio: Text('Joined on ${timeago.format(payload.created)}'),
|
||||
url: '/gitea/${payload.login}',
|
||||
);
|
||||
},
|
||||
);
|
||||
|
@ -14,23 +14,39 @@ const userGqlChunk = '''
|
||||
|
||||
class UserItem extends StatelessWidget {
|
||||
final String login;
|
||||
// final String name;
|
||||
final String name;
|
||||
final String avatarUrl;
|
||||
final Widget bio;
|
||||
final String url;
|
||||
|
||||
UserItem.gh({
|
||||
@required this.avatarUrl,
|
||||
UserItem.github({
|
||||
@required this.login,
|
||||
@required this.name,
|
||||
@required this.avatarUrl,
|
||||
@required this.bio,
|
||||
}) : url = '/github/$login';
|
||||
|
||||
UserItem({
|
||||
@required this.avatarUrl,
|
||||
UserItem.gitlab({
|
||||
@required this.login,
|
||||
@required this.name,
|
||||
@required this.avatarUrl,
|
||||
@required this.bio,
|
||||
@required this.url,
|
||||
});
|
||||
@required int id,
|
||||
}) : url = '/gitlab/group/$id';
|
||||
|
||||
UserItem.gitea({
|
||||
@required this.login,
|
||||
@required this.name,
|
||||
@required this.avatarUrl,
|
||||
@required this.bio,
|
||||
}) : url = '/gitea/$login';
|
||||
|
||||
UserItem.bitbucket({
|
||||
@required this.login,
|
||||
@required this.name,
|
||||
@required this.avatarUrl,
|
||||
@required this.bio,
|
||||
}) : url = '/bitbucket/$login?team=1';
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -40,6 +56,7 @@ class UserItem extends StatelessWidget {
|
||||
child: Container(
|
||||
padding: CommonStyle.padding,
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Avatar(url: avatarUrl, size: AvatarSize.large),
|
||||
SizedBox(width: 10),
|
||||
@ -49,21 +66,24 @@ class UserItem extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.baseline,
|
||||
children: <Widget>[
|
||||
// Text(
|
||||
// name ?? login,
|
||||
// style: TextStyle(
|
||||
// color: theme.palette.text,
|
||||
// fontSize: 18,
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(width: 8),
|
||||
if (name != null && name.isNotEmpty) ...[
|
||||
Text(
|
||||
name,
|
||||
style: TextStyle(
|
||||
color: theme.palette.text,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
SizedBox(width: 8),
|
||||
],
|
||||
Text(
|
||||
login,
|
||||
style: TextStyle(
|
||||
color: theme.palette.primary,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: theme.palette.text,
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
Loading…
x
Reference in New Issue
Block a user