1
0
mirror of https://github.com/git-touch/git-touch synced 2025-03-05 19:57:42 +01:00

fix: table view style

This commit is contained in:
Rongjian Zhang 2019-09-15 15:08:09 +08:00
parent cce67cccda
commit 9bc5c2b96a
6 changed files with 136 additions and 122 deletions

View File

@ -85,6 +85,7 @@ class ObjectScreen extends StatelessWidget {
Widget _buildTree(payload) { Widget _buildTree(payload) {
var entries = payload['entries'] as List; var entries = payload['entries'] as List;
return TableView( return TableView(
hasIcon: true,
items: entries.map((item) { items: entries.map((item) {
return TableViewItem( return TableViewItem(
leftWidget: _buildIcon(item), leftWidget: _buildIcon(item),
@ -104,7 +105,8 @@ class ObjectScreen extends StatelessWidget {
paths: [...paths, item['name']], paths: [...paths, item['name']],
type: item['type'], type: item['type'],
); );
}); },
);
}), }),
); );
} }

View File

@ -225,7 +225,9 @@ class RepoScreen extends StatelessWidget {
), ),
), ),
), ),
TableView(items: [ TableView(
hasIcon: true,
items: [
TableViewItem( TableViewItem(
leftIconData: Octicons.code, leftIconData: Octicons.code,
text: Text('Code'), text: Text('Code'),
@ -240,21 +242,24 @@ class RepoScreen extends StatelessWidget {
TableViewItem( TableViewItem(
leftIconData: Octicons.issue_opened, leftIconData: Octicons.issue_opened,
text: Text('Issues'), text: Text('Issues'),
rightWidget: rightWidget: Text(
Text(numberFormat.format(payload['issues']['totalCount'])), numberFormat.format(payload['issues']['totalCount'])),
screenBuilder: (_) => IssuesScreen(owner: owner, name: name), screenBuilder: (_) => IssuesScreen(owner: owner, name: name),
), ),
TableViewItem( TableViewItem(
leftIconData: Octicons.git_pull_request, leftIconData: Octicons.git_pull_request,
text: Text('Pull requests'), text: Text('Pull requests'),
rightWidget: Text( rightWidget: Text(numberFormat
numberFormat.format(payload['pullRequests']['totalCount'])), .format(payload['pullRequests']['totalCount'])),
screenBuilder: (_) => screenBuilder: (_) => IssuesScreen(
IssuesScreen(owner: owner, name: name, isPullRequest: true), owner: owner, name: name, isPullRequest: true),
),
],
), ),
]),
borderView1, borderView1,
TableView(items: [ TableView(
hasIcon: true,
items: [
TableViewItem( TableViewItem(
leftIconData: Octicons.history, leftIconData: Octicons.history,
text: Text('Commits'), text: Text('Commits'),
@ -271,7 +276,8 @@ class RepoScreen extends StatelessWidget {
: (payload['licenseInfo']['spdxId'] ?? : (payload['licenseInfo']['spdxId'] ??
payload['licenseInfo']['name'])), payload['licenseInfo']['name'])),
), ),
]), ],
),
borderView1, borderView1,
if (payload['object'] != null) if (payload['object'] != null)
Container( Container(

View File

@ -14,10 +14,7 @@ import '../screens/login.dart';
class SettingsScreen extends StatelessWidget { class SettingsScreen extends StatelessWidget {
Widget _buildRightWidget(bool checked) { Widget _buildRightWidget(bool checked) {
if (!checked) return null; if (!checked) return null;
return Row(children: [ return Icon(Octicons.check, color: CupertinoColors.activeBlue, size: 24);
Icon(Octicons.check, color: CupertinoColors.activeBlue, size: 24),
SizedBox(width: 12)
]);
} }
@override @override
@ -32,7 +29,6 @@ class SettingsScreen extends StatelessWidget {
borderView1, borderView1,
TableView(headerText: 'ACCOUNTS', items: [ TableView(headerText: 'ACCOUNTS', items: [
TableViewItem( TableViewItem(
leftIconData: Icons.account_circle,
text: Text('Switch to another account'), text: Text('Switch to another account'),
screenBuilder: (_) => LoginScreen(), screenBuilder: (_) => LoginScreen(),
), ),
@ -40,7 +36,6 @@ class SettingsScreen extends StatelessWidget {
borderView1, borderView1,
TableView(headerText: 'THEME', items: [ TableView(headerText: 'THEME', items: [
TableViewItem( TableViewItem(
leftIconData: MaterialCommunityIcons.material_design,
text: Text('Material'), text: Text('Material'),
rightWidget: rightWidget:
_buildRightWidget(themeProvider.theme == ThemeMap.material), _buildRightWidget(themeProvider.theme == ThemeMap.material),
@ -52,7 +47,6 @@ class SettingsScreen extends StatelessWidget {
hideRightChevron: true, hideRightChevron: true,
), ),
TableViewItem( TableViewItem(
leftIconData: MaterialCommunityIcons.apple,
text: Text('Cupertino'), text: Text('Cupertino'),
rightWidget: _buildRightWidget( rightWidget: _buildRightWidget(
themeProvider.theme == ThemeMap.cupertino), themeProvider.theme == ThemeMap.cupertino),
@ -67,12 +61,10 @@ class SettingsScreen extends StatelessWidget {
borderView1, borderView1,
TableView(headerText: 'ABOUT', items: [ TableView(headerText: 'ABOUT', items: [
TableViewItem( TableViewItem(
leftIconData: Octicons.code, text: Text('Source Code'),
text: Text('Source code'),
screenBuilder: (_) => RepoScreen('pd4d10', 'git-touch'), screenBuilder: (_) => RepoScreen('pd4d10', 'git-touch'),
), ),
TableViewItem( TableViewItem(
leftIconData: Octicons.law,
text: Text('License'), text: Text('License'),
rightWidget: Text('MIT'), rightWidget: Text('MIT'),
screenBuilder: (_) => ObjectScreen( screenBuilder: (_) => ObjectScreen(
@ -84,8 +76,7 @@ class SettingsScreen extends StatelessWidget {
), ),
), ),
TableViewItem( TableViewItem(
leftIconData: Icons.star, text: Text('Rate This App'),
text: Text('Rate this App'),
onTap: () { onTap: () {
LaunchReview.launch( LaunchReview.launch(
androidAppId: 'io.github.pd4d10.gittouch', androidAppId: 'io.github.pd4d10.gittouch',

View File

@ -233,7 +233,9 @@ class UserScreen extends StatelessWidget {
borderView1, borderView1,
_buildContributions(contributions), _buildContributions(contributions),
borderView1, borderView1,
TableView(items: [ TableView(
hasIcon: true,
items: [
if (isNotNullOrEmpty(payload['company'])) if (isNotNullOrEmpty(payload['company']))
TableViewItem( TableViewItem(
leftIconData: Octicons.organization, leftIconData: Octicons.organization,
@ -269,7 +271,8 @@ class UserScreen extends StatelessWidget {
launch(url); launch(url);
}, },
), ),
]), ],
),
..._buildRepos(payload), ..._buildRepos(payload),
], ],
); );

View File

@ -155,7 +155,13 @@ class BorderView extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return Row(
children: <Widget>[ children: <Widget>[
SizedBox(width: leftPadding), SizedBox(
width: leftPadding,
height: 1,
child: DecoratedBox(
decoration: BoxDecoration(color: PrimerColors.white),
),
),
Expanded( Expanded(
child: SizedBox( child: SizedBox(
height: height, height: height,

View File

@ -27,18 +27,23 @@ class TableViewItem {
class TableView extends StatelessWidget { class TableView extends StatelessWidget {
final String headerText; final String headerText;
final Iterable<TableViewItem> items; final Iterable<TableViewItem> items;
final bool hasIcon;
TableView({this.headerText, @required this.items}); double get _leftPadding => hasIcon ? 44 : 12;
TableView({this.headerText, @required this.items, this.hasIcon = false});
Widget _buildItem(TableViewItem item) { Widget _buildItem(TableViewItem item) {
if (item == null) return null; if (item == null) return null;
var leftWidget = item.leftWidget ?? var leftWidget = item.leftWidget;
Icon( if (leftWidget == null && hasIcon) {
leftWidget = Icon(
item.leftIconData, item.leftIconData,
color: PrimerColors.blue500, color: PrimerColors.blue500,
size: 18, size: 18,
); );
}
// Container( // Container(
// width: 24, // width: 24,
// height: 24, // height: 24,
@ -55,7 +60,7 @@ class TableView extends StatelessWidget {
color: PrimerColors.white, color: PrimerColors.white,
child: Row( child: Row(
children: [ children: [
SizedBox(width: 44, child: leftWidget), SizedBox(width: _leftPadding, child: leftWidget),
Expanded(child: item.text), Expanded(child: item.text),
if (item.rightWidget != null) ...[ if (item.rightWidget != null) ...[
DefaultTextStyle( DefaultTextStyle(
@ -101,7 +106,8 @@ class TableView extends StatelessWidget {
), ),
), ),
borderView, borderView,
...join(BorderView(leftPadding: 44), items.map(_buildItem).toList()), ...join(BorderView(leftPadding: _leftPadding),
items.map(_buildItem).toList()),
borderView, borderView,
], ],
); );