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:
parent
cce67cccda
commit
9bc5c2b96a
@ -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'],
|
||||||
);
|
);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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(
|
||||||
|
@ -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',
|
||||||
|
@ -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),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user