refactor: app bar title

This commit is contained in:
Rongjian Zhang 2019-09-11 19:59:47 +08:00
parent b610af44a1
commit 2d6c8871f3
19 changed files with 47 additions and 19 deletions

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:git_touch/models/settings.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:git_touch/widgets/link.dart';
import 'package:provider/provider.dart';
import 'package:timeago/timeago.dart' as timeago;
@ -79,7 +80,7 @@ class CommitsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListScaffold(
title: Text('Commits'),
title: AppBarTitle('Commits'),
onRefresh: () => _query(context),
onLoadMore: (cursor) => _query(context, cursor),
itemBuilder: (payload) {

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:git_touch/scaffolds/simple.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
class ImageView extends StatelessWidget {
final ImageProvider imageProvider;
@ -9,7 +10,7 @@ class ImageView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SimpleScaffold(
title: Text('Image preview'),
title: AppBarTitle('Image preview'),
bodyBuilder: () {
return Container(
child: Image(image: imageProvider),

View File

@ -340,7 +340,7 @@ mutation {
@override
Widget build(BuildContext context) {
return LongListScaffold(
title: Text('$owner/$name #$number'),
title: Text('Issue #$number'),
trailingBuilder: (payload) {
return ActionButton(
title: (isPullRequest ? 'Pull Request' : 'Issue') + ' Actions',

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:git_touch/models/settings.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import '../scaffolds/list.dart';
import '../utils/utils.dart';
@ -136,7 +137,7 @@ class _IssuesScreenState extends State<IssuesScreen> {
@override
Widget build(BuildContext context) {
return ListScaffold(
title: Text('Issues of $owner/$name'),
title: AppBarTitle('Issues of $owner/$name'),
onRefresh: () => _query(),
onLoadMore: (cursor) => _query(cursor),
itemBuilder: _buildItem,

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:git_touch/models/settings.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import '../scaffolds/simple.dart';
import '../widgets/link.dart';
@ -92,7 +93,7 @@ class _LoginScreenState extends State<LoginScreen> {
});
return SimpleScaffold(
title: Text('Select account'),
title: AppBarTitle('Select account'),
bodyBuilder: () {
if (settings.loading) {
return Center(child: Loading());

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:git_touch/models/settings.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import '../scaffolds/simple.dart';
@ -15,7 +16,7 @@ class _LoginGitlabScreenState extends State<LoginGitlabScreen> {
@override
Widget build(BuildContext context) {
return SimpleScaffold(
title: Text('Login to GitLab'),
title: AppBarTitle('Login to GitLab'),
bodyBuilder: () {
return Column(
children: <Widget>[

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:git_touch/models/notification.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import '../scaffolds/list.dart';
import '../widgets/event_item.dart';
@ -67,7 +68,7 @@ class NewsScreenState extends State<NewsScreen> {
@override
Widget build(context) {
return ListScaffold<EventPayload, int>(
title: Text('News'),
title: AppBarTitle('News'),
itemBuilder: (payload) => EventItem(payload),
onRefresh: fetchEvents,
onLoadMore: (page) => fetchEvents(page),

View File

@ -1,11 +1,12 @@
import 'package:flutter/material.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import '../scaffolds/simple.dart';
class NotFoundScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SimpleScaffold(
title: Text('Not Found'),
title: AppBarTitle('Not Found'),
bodyBuilder: () {
return Text('Woops, This page is not implemented yet');
},

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import '../scaffolds/refresh_stateless.dart';
import 'package:git_touch/models/notification.dart';
@ -196,7 +197,7 @@ $key: pullRequest(number: ${item.number}) {
),
);
default:
return Text('Notifications');
return AppBarTitle('Notifications');
}
}

View File

@ -1,5 +1,6 @@
import 'package:flutter_highlight/themes/github.dart';
import 'package:git_touch/screens/image_view.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:path/path.dart' as path;
import 'package:flutter/material.dart';
import 'package:flutter_highlight/flutter_highlight.dart';
@ -145,7 +146,7 @@ class ObjectScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return RefreshScaffold(
title: Text(paths.join('/')),
title: AppBarTitle(paths.join('/')),
onRefresh: () async {
var data = await Provider.of<SettingsModel>(context).query('''{
repository(owner: "$owner", name: "$name") {

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:share/share.dart';
import 'package:git_touch/models/settings.dart';
@ -132,7 +133,7 @@ class _OrganizationScreenState extends State<OrganizationScreen> {
Widget build(BuildContext context) {
return RefreshScaffold(
onRefresh: query,
title: Text(widget.login),
title: AppBarTitle(widget.login),
trailingBuilder: (payload) {
return ActionButton(title: 'User Actions', actions: [
MyAction(

View File

@ -4,6 +4,7 @@ import 'package:flutter/cupertino.dart';
import 'package:git_touch/models/settings.dart';
import 'package:git_touch/screens/users.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:git_touch/widgets/table_view.dart';
import 'package:primer/primer.dart';
import 'package:provider/provider.dart';
@ -112,7 +113,7 @@ class RepoScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return RefreshScaffold(
title: Text('Repository'),
title: AppBarTitle('Repository'),
trailingBuilder: (data) {
var payload = data[0];

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import '../scaffolds/list.dart';
import 'package:git_touch/models/settings.dart';
import 'package:provider/provider.dart';
@ -59,9 +60,8 @@ class _ReposScreenState extends State<ReposScreen> {
@override
Widget build(BuildContext context) {
var title = widget.star ? 'stars' : 'repositories';
return ListScaffold(
title: Text('$login\'s $title'),
title: AppBarTitle(widget.star ? 'Stars' : 'Repositories'),
onRefresh: () => _queryRepos(),
onLoadMore: (cursor) => _queryRepos(cursor),
itemBuilder: (payload) => RepoItem(payload),

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import 'package:git_touch/models/settings.dart';
import '../scaffolds/simple.dart';
@ -60,7 +61,7 @@ class _SearchScreenState extends State<SearchScreen> {
@override
Widget build(BuildContext context) {
return SimpleScaffold(
title: Text('Search GitHub Repositories'),
title: AppBarTitle('Search GitHub Repositories'),
bodyBuilder: () {
return Column(
children: <Widget>[

View File

@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:launch_review/launch_review.dart';
@ -26,7 +27,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
var themeProvider = Provider.of<ThemeModel>(context);
return SimpleScaffold(
title: Text('Settings'),
title: AppBarTitle('Settings'),
bodyBuilder: () {
return Column(
children: <Widget>[

View File

@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:http/http.dart' as http;
import '../scaffolds/refresh.dart';
import '../widgets/repo_item.dart';
@ -41,7 +42,7 @@ class _TrendingScreenState extends State<TrendingScreen> {
@override
Widget build(BuildContext context) {
return RefreshScaffold(
title: Text('Trending'),
title: AppBarTitle('Trending'),
onRefresh: _fetchTrendingRepos,
bodyBuilder: (payload) {
return Column(

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:git_touch/widgets/table_view.dart';
import 'package:primer/primer.dart';
import 'package:url_launcher/url_launcher.dart';
@ -163,7 +164,7 @@ class _UserScreenState extends State<UserScreen> {
[query(), getContributions(widget.login)],
);
},
title: Text(widget.login),
title: AppBarTitle(widget.login),
trailingBuilder: (data) {
var payload = data[0];
if (widget.showSettings) {

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:primer/primer.dart';
import '../scaffolds/list.dart';
import 'package:git_touch/models/settings.dart';
@ -104,7 +105,7 @@ class _UsersScreenState extends State<UsersScreen> {
@override
Widget build(BuildContext context) {
return ListScaffold(
title: Text('$login\'s $resource'),
title: AppBarTitle(resource),
onRefresh: () => _queryUsers(),
onLoadMore: (cursor) => _queryUsers(cursor),
itemBuilder: _buildItem,

View File

@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
class AppBarTitle extends StatelessWidget {
final String text;
AppBarTitle(this.text);
@override
Widget build(BuildContext context) {
return Text(text, overflow: TextOverflow.ellipsis);
}
}