mirror of
https://github.com/git-touch/git-touch
synced 2025-02-20 13:30:38 +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: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) {
|
||||
|
@ -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),
|
||||
|
@ -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',
|
||||
|
@ -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,
|
||||
|
@ -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());
|
||||
|
@ -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>[
|
||||
|
@ -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),
|
||||
|
@ -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');
|
||||
},
|
||||
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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") {
|
||||
|
@ -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(
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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),
|
||||
|
@ -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>[
|
||||
|
@ -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>[
|
||||
|
@ -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(
|
||||
|
@ -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) {
|
||||
|
@ -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,
|
||||
|
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