diff --git a/lib/screens/login.dart b/lib/screens/login.dart index 9f02b65..7321d5d 100644 --- a/lib/screens/login.dart +++ b/lib/screens/login.dart @@ -6,7 +6,8 @@ import '../utils/constants.dart'; import '../widgets/link.dart'; import '../widgets/loading.dart'; import '../models/account.dart'; -import 'login_gitlab.dart'; +import '../widgets/avatar.dart'; +// import 'login_gitlab.dart'; class LoginScreen extends StatefulWidget { @override @@ -29,11 +30,7 @@ class _LoginScreenState extends State { border: Border(bottom: BorderSide(color: Colors.black12)), ), child: Row(children: [ - CircleAvatar( - backgroundColor: Colors.transparent, - backgroundImage: NetworkImage(account.avatarUrl), - radius: 24, - ), + Avatar(url: account.avatarUrl, size: 24), Padding(padding: EdgeInsets.only(left: 10)), Expanded( child: Column( diff --git a/lib/screens/user.dart b/lib/screens/user.dart index 4125e7a..d38c9cc 100644 --- a/lib/screens/user.dart +++ b/lib/screens/user.dart @@ -209,11 +209,7 @@ class _UserScreenState extends State { child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Avatar( - login: widget.login, - url: payload['avatarUrl'], - size: 28, - ), + Avatar(url: payload['avatarUrl'], size: 28), Padding(padding: EdgeInsets.only(left: 10)), Expanded( child: Column( diff --git a/lib/screens/users.dart b/lib/screens/users.dart index 4040e32..224f1e2 100644 --- a/lib/screens/users.dart +++ b/lib/screens/users.dart @@ -4,6 +4,7 @@ import '../providers/settings.dart'; import '../utils/utils.dart'; import '../widgets/link.dart'; import '../screens/user.dart'; +import '../widgets/avatar.dart'; class UsersScreen extends StatefulWidget { final String login; @@ -54,11 +55,7 @@ class _UsersScreenState extends State { padding: EdgeInsets.all(10), child: Row( children: [ - CircleAvatar( - backgroundColor: Colors.transparent, - backgroundImage: NetworkImage(payload['avatarUrl']), - radius: 18, - ), + Avatar(url: payload['avatarUrl']), Padding(padding: EdgeInsets.only(left: 10)), Text(payload['login'], style: TextStyle(fontSize: 18)) ], diff --git a/lib/widgets/avatar.dart b/lib/widgets/avatar.dart index fd1a677..a06ad4c 100644 --- a/lib/widgets/avatar.dart +++ b/lib/widgets/avatar.dart @@ -4,32 +4,38 @@ import '../screens/user.dart'; import 'link.dart'; class Avatar extends StatelessWidget { - final String login; final String url; + final String login; final double size; Avatar({ - @required this.login, @required this.url, this.size = 18, + this.login, }); @override Widget build(BuildContext context) { - return Link( - screenBuilder: (_) => UserScreen(login), - child: ClipRRect( - borderRadius: BorderRadius.circular(size), - child: FadeInImage.assetNetwork( - placeholder: 'images/octoface.png', - image: url, - width: 2 * size, - height: 2 * size, - fadeInDuration: Duration(milliseconds: 200), - fadeOutDuration: Duration(milliseconds: 100), - ), + var avatar = ClipRRect( + borderRadius: BorderRadius.circular(size), + child: FadeInImage.assetNetwork( + placeholder: 'images/octoface.png', + image: url, + width: 2 * size, + height: 2 * size, + fadeInDuration: Duration(milliseconds: 200), + fadeOutDuration: Duration(milliseconds: 100), ), - material: false, ); + + if (login == null) { + return avatar; + } else { + return Link( + screenBuilder: (_) => UserScreen(login), + child: avatar, + material: false, + ); + } } } diff --git a/lib/widgets/comment_item.dart b/lib/widgets/comment_item.dart index 1189b3b..55086f9 100644 --- a/lib/widgets/comment_item.dart +++ b/lib/widgets/comment_item.dart @@ -14,9 +14,9 @@ class CommentItem extends StatelessWidget { return Column(children: [ Row(children: [ Avatar( - login: payload['author']['login'], url: payload['author']['avatarUrl'], size: 16, + login: payload['author']['login'], ), Padding(padding: EdgeInsets.only(left: 6)), Expanded( diff --git a/lib/widgets/event_item.dart b/lib/widgets/event_item.dart index b9a1adb..21699bb 100644 --- a/lib/widgets/event_item.dart +++ b/lib/widgets/event_item.dart @@ -66,7 +66,7 @@ class EventItem extends StatelessWidget { children: [ Row( children: [ - Avatar(login: event.actorLogin, url: event.actorAvatarUrl), + Avatar(url: event.actorAvatarUrl, login: event.actorLogin), Padding(padding: EdgeInsets.only(left: 10)), Expanded( child: RichText(