mirror of
https://github.com/git-touch/git-touch
synced 2025-02-21 22:07:51 +01:00
refactor: app bar title
This commit is contained in:
parent
b610af44a1
commit
2d6c8871f3
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
import 'package:git_touch/utils/utils.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:git_touch/widgets/link.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:timeago/timeago.dart' as timeago;
|
import 'package:timeago/timeago.dart' as timeago;
|
||||||
@ -79,7 +80,7 @@ class CommitsScreen extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
title: Text('Commits'),
|
title: AppBarTitle('Commits'),
|
||||||
onRefresh: () => _query(context),
|
onRefresh: () => _query(context),
|
||||||
onLoadMore: (cursor) => _query(context, cursor),
|
onLoadMore: (cursor) => _query(context, cursor),
|
||||||
itemBuilder: (payload) {
|
itemBuilder: (payload) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/scaffolds/simple.dart';
|
import 'package:git_touch/scaffolds/simple.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
|
|
||||||
class ImageView extends StatelessWidget {
|
class ImageView extends StatelessWidget {
|
||||||
final ImageProvider imageProvider;
|
final ImageProvider imageProvider;
|
||||||
@ -9,7 +10,7 @@ class ImageView extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SimpleScaffold(
|
return SimpleScaffold(
|
||||||
title: Text('Image preview'),
|
title: AppBarTitle('Image preview'),
|
||||||
bodyBuilder: () {
|
bodyBuilder: () {
|
||||||
return Container(
|
return Container(
|
||||||
child: Image(image: imageProvider),
|
child: Image(image: imageProvider),
|
||||||
|
@ -340,7 +340,7 @@ mutation {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return LongListScaffold(
|
return LongListScaffold(
|
||||||
title: Text('$owner/$name #$number'),
|
title: Text('Issue #$number'),
|
||||||
trailingBuilder: (payload) {
|
trailingBuilder: (payload) {
|
||||||
return ActionButton(
|
return ActionButton(
|
||||||
title: (isPullRequest ? 'Pull Request' : 'Issue') + ' Actions',
|
title: (isPullRequest ? 'Pull Request' : 'Issue') + ' Actions',
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../scaffolds/list.dart';
|
import '../scaffolds/list.dart';
|
||||||
import '../utils/utils.dart';
|
import '../utils/utils.dart';
|
||||||
@ -136,7 +137,7 @@ class _IssuesScreenState extends State<IssuesScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
title: Text('Issues of $owner/$name'),
|
title: AppBarTitle('Issues of $owner/$name'),
|
||||||
onRefresh: () => _query(),
|
onRefresh: () => _query(),
|
||||||
onLoadMore: (cursor) => _query(cursor),
|
onLoadMore: (cursor) => _query(cursor),
|
||||||
itemBuilder: _buildItem,
|
itemBuilder: _buildItem,
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../scaffolds/simple.dart';
|
import '../scaffolds/simple.dart';
|
||||||
import '../widgets/link.dart';
|
import '../widgets/link.dart';
|
||||||
@ -92,7 +93,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return SimpleScaffold(
|
return SimpleScaffold(
|
||||||
title: Text('Select account'),
|
title: AppBarTitle('Select account'),
|
||||||
bodyBuilder: () {
|
bodyBuilder: () {
|
||||||
if (settings.loading) {
|
if (settings.loading) {
|
||||||
return Center(child: Loading());
|
return Center(child: Loading());
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../scaffolds/simple.dart';
|
import '../scaffolds/simple.dart';
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ class _LoginGitlabScreenState extends State<LoginGitlabScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SimpleScaffold(
|
return SimpleScaffold(
|
||||||
title: Text('Login to GitLab'),
|
title: AppBarTitle('Login to GitLab'),
|
||||||
bodyBuilder: () {
|
bodyBuilder: () {
|
||||||
return Column(
|
return Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:git_touch/models/notification.dart';
|
import 'package:git_touch/models/notification.dart';
|
||||||
import 'package:git_touch/utils/utils.dart';
|
import 'package:git_touch/utils/utils.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../scaffolds/list.dart';
|
import '../scaffolds/list.dart';
|
||||||
import '../widgets/event_item.dart';
|
import '../widgets/event_item.dart';
|
||||||
@ -67,7 +68,7 @@ class NewsScreenState extends State<NewsScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(context) {
|
Widget build(context) {
|
||||||
return ListScaffold<EventPayload, int>(
|
return ListScaffold<EventPayload, int>(
|
||||||
title: Text('News'),
|
title: AppBarTitle('News'),
|
||||||
itemBuilder: (payload) => EventItem(payload),
|
itemBuilder: (payload) => EventItem(payload),
|
||||||
onRefresh: fetchEvents,
|
onRefresh: fetchEvents,
|
||||||
onLoadMore: (page) => fetchEvents(page),
|
onLoadMore: (page) => fetchEvents(page),
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import '../scaffolds/simple.dart';
|
import '../scaffolds/simple.dart';
|
||||||
|
|
||||||
class NotFoundScreen extends StatelessWidget {
|
class NotFoundScreen extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SimpleScaffold(
|
return SimpleScaffold(
|
||||||
title: Text('Not Found'),
|
title: AppBarTitle('Not Found'),
|
||||||
bodyBuilder: () {
|
bodyBuilder: () {
|
||||||
return Text('Woops, This page is not implemented yet');
|
return Text('Woops, This page is not implemented yet');
|
||||||
},
|
},
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../scaffolds/refresh_stateless.dart';
|
import '../scaffolds/refresh_stateless.dart';
|
||||||
import 'package:git_touch/models/notification.dart';
|
import 'package:git_touch/models/notification.dart';
|
||||||
@ -196,7 +197,7 @@ $key: pullRequest(number: ${item.number}) {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
default:
|
default:
|
||||||
return Text('Notifications');
|
return AppBarTitle('Notifications');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter_highlight/themes/github.dart';
|
import 'package:flutter_highlight/themes/github.dart';
|
||||||
import 'package:git_touch/screens/image_view.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:path/path.dart' as path;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_highlight/flutter_highlight.dart';
|
import 'package:flutter_highlight/flutter_highlight.dart';
|
||||||
@ -145,7 +146,7 @@ class ObjectScreen extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return RefreshScaffold(
|
return RefreshScaffold(
|
||||||
title: Text(paths.join('/')),
|
title: AppBarTitle(paths.join('/')),
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
var data = await Provider.of<SettingsModel>(context).query('''{
|
var data = await Provider.of<SettingsModel>(context).query('''{
|
||||||
repository(owner: "$owner", name: "$name") {
|
repository(owner: "$owner", name: "$name") {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'package:share/share.dart';
|
import 'package:share/share.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
@ -132,7 +133,7 @@ class _OrganizationScreenState extends State<OrganizationScreen> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return RefreshScaffold(
|
return RefreshScaffold(
|
||||||
onRefresh: query,
|
onRefresh: query,
|
||||||
title: Text(widget.login),
|
title: AppBarTitle(widget.login),
|
||||||
trailingBuilder: (payload) {
|
trailingBuilder: (payload) {
|
||||||
return ActionButton(title: 'User Actions', actions: [
|
return ActionButton(title: 'User Actions', actions: [
|
||||||
MyAction(
|
MyAction(
|
||||||
|
@ -4,6 +4,7 @@ import 'package:flutter/cupertino.dart';
|
|||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
import 'package:git_touch/screens/users.dart';
|
import 'package:git_touch/screens/users.dart';
|
||||||
import 'package:git_touch/utils/utils.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:git_touch/widgets/table_view.dart';
|
||||||
import 'package:primer/primer.dart';
|
import 'package:primer/primer.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@ -112,7 +113,7 @@ class RepoScreen extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return RefreshScaffold(
|
return RefreshScaffold(
|
||||||
title: Text('Repository'),
|
title: AppBarTitle('Repository'),
|
||||||
trailingBuilder: (data) {
|
trailingBuilder: (data) {
|
||||||
var payload = data[0];
|
var payload = data[0];
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import '../scaffolds/list.dart';
|
import '../scaffolds/list.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@ -59,9 +60,8 @@ class _ReposScreenState extends State<ReposScreen> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var title = widget.star ? 'stars' : 'repositories';
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
title: Text('$login\'s $title'),
|
title: AppBarTitle(widget.star ? 'Stars' : 'Repositories'),
|
||||||
onRefresh: () => _queryRepos(),
|
onRefresh: () => _queryRepos(),
|
||||||
onLoadMore: (cursor) => _queryRepos(cursor),
|
onLoadMore: (cursor) => _queryRepos(cursor),
|
||||||
itemBuilder: (payload) => RepoItem(payload),
|
itemBuilder: (payload) => RepoItem(payload),
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:git_touch/models/theme.dart';
|
import 'package:git_touch/models/theme.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
import '../scaffolds/simple.dart';
|
import '../scaffolds/simple.dart';
|
||||||
@ -60,7 +61,7 @@ class _SearchScreenState extends State<SearchScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SimpleScaffold(
|
return SimpleScaffold(
|
||||||
title: Text('Search GitHub Repositories'),
|
title: AppBarTitle('Search GitHub Repositories'),
|
||||||
bodyBuilder: () {
|
bodyBuilder: () {
|
||||||
return Column(
|
return Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/theme.dart';
|
import 'package:git_touch/models/theme.dart';
|
||||||
import 'package:git_touch/utils/utils.dart';
|
import 'package:git_touch/utils/utils.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'package:launch_review/launch_review.dart';
|
import 'package:launch_review/launch_review.dart';
|
||||||
@ -26,7 +27,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
|||||||
var themeProvider = Provider.of<ThemeModel>(context);
|
var themeProvider = Provider.of<ThemeModel>(context);
|
||||||
|
|
||||||
return SimpleScaffold(
|
return SimpleScaffold(
|
||||||
title: Text('Settings'),
|
title: AppBarTitle('Settings'),
|
||||||
bodyBuilder: () {
|
bodyBuilder: () {
|
||||||
return Column(
|
return Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/utils/utils.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 'package:http/http.dart' as http;
|
||||||
import '../scaffolds/refresh.dart';
|
import '../scaffolds/refresh.dart';
|
||||||
import '../widgets/repo_item.dart';
|
import '../widgets/repo_item.dart';
|
||||||
@ -41,7 +42,7 @@ class _TrendingScreenState extends State<TrendingScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return RefreshScaffold(
|
return RefreshScaffold(
|
||||||
title: Text('Trending'),
|
title: AppBarTitle('Trending'),
|
||||||
onRefresh: _fetchTrendingRepos,
|
onRefresh: _fetchTrendingRepos,
|
||||||
bodyBuilder: (payload) {
|
bodyBuilder: (payload) {
|
||||||
return Column(
|
return Column(
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.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:git_touch/widgets/table_view.dart';
|
||||||
import 'package:primer/primer.dart';
|
import 'package:primer/primer.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
@ -163,7 +164,7 @@ class _UserScreenState extends State<UserScreen> {
|
|||||||
[query(), getContributions(widget.login)],
|
[query(), getContributions(widget.login)],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
title: Text(widget.login),
|
title: AppBarTitle(widget.login),
|
||||||
trailingBuilder: (data) {
|
trailingBuilder: (data) {
|
||||||
var payload = data[0];
|
var payload = data[0];
|
||||||
if (widget.showSettings) {
|
if (widget.showSettings) {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:primer/primer.dart';
|
import 'package:primer/primer.dart';
|
||||||
import '../scaffolds/list.dart';
|
import '../scaffolds/list.dart';
|
||||||
import 'package:git_touch/models/settings.dart';
|
import 'package:git_touch/models/settings.dart';
|
||||||
@ -104,7 +105,7 @@ class _UsersScreenState extends State<UsersScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
title: Text('$login\'s $resource'),
|
title: AppBarTitle(resource),
|
||||||
onRefresh: () => _queryUsers(),
|
onRefresh: () => _queryUsers(),
|
||||||
onLoadMore: (cursor) => _queryUsers(cursor),
|
onLoadMore: (cursor) => _queryUsers(cursor),
|
||||||
itemBuilder: _buildItem,
|
itemBuilder: _buildItem,
|
||||||
|
12
lib/widgets/app_bar_title.dart
Normal file
12
lib/widgets/app_bar_title.dart
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user