Code cleanup

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker 2021-02-12 00:17:19 +01:00
parent 5c2592f601
commit d06d7f1448
10 changed files with 94 additions and 128 deletions

View File

@ -1,9 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:time_progress_tracker/screens/progress_creation_screen.dart'; import 'package:time_progress_tracker/screens/progress_creation_screen.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_bottom_navbar.dart'; import 'package:time_progress_tracker/widgets/home/home_bottom_navbar.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_active_progresses_tab.dart'; import 'package:time_progress_tracker/widgets/home/tabs/home_active_progresses_tab.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_inactive_progresses_tab.dart'; import 'package:time_progress_tracker/widgets/home/tabs/home_inactive_progresses_tab.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_settings_tab.dart'; import 'package:time_progress_tracker/widgets/home/tabs/home_settings_tab.dart';
class HomeScreen extends StatefulWidget { class HomeScreen extends StatefulWidget {
static const routeName = "/home"; static const routeName = "/home";
@ -31,8 +31,6 @@ class _HomeScreenState extends State<HomeScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ThemeData appTheme = Theme.of(context);
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text(HomeScreen.title), title: Text(HomeScreen.title),
@ -54,4 +52,4 @@ class _HomeScreenState extends State<HomeScreen> {
), ),
); );
} }
} }

View File

@ -7,7 +7,7 @@ import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/widgets/progress_editor_widget.dart'; import 'package:time_progress_tracker/widgets/progress_editor_widget.dart';
class ProgressCreationScreen extends StatefulWidget { class ProgressCreationScreen extends StatefulWidget {
static const routeName = "/progress-creation"; static const routeName = "/create-progress";
static const title = "Create Time Progress"; static const title = "Create Time Progress";
@override @override

View File

@ -17,7 +17,7 @@ class ProgressDetailScreenArguments {
} }
class ProgressDetailScreen extends StatefulWidget { class ProgressDetailScreen extends StatefulWidget {
static const routeName = "/progress-detail"; static const routeName = "/progress";
static const title = "Progress View"; static const title = "Progress View";
@override @override

View File

@ -0,0 +1,44 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:time_progress_tracker/actions/actions.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
import 'package:time_progress_tracker/widgets/home/home_progress_list_tile.dart';
class HomeActiveProgressesTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StoreConnector(
onInit: loadTimeProgressListIfUnloaded,
converter: (store) => store.state.hasLoaded,
builder: (BuildContext context, dynamic hasLoaded) {
if (!(hasLoaded as bool))
return Center(
child: CircularProgressIndicator(),
);
return StoreConnector(
onInit: loadTimeProgressListIfUnloaded,
converter: (store) => activeTimeProgressesSelector(store.state),
builder: (BuildContext context, List<TimeProgress> timeProgresses) {
if (timeProgresses.length < 1)
return Container(
padding: EdgeInsets.all(16),
child: Center(
child: Text(
"You don't have any currently active time progresses, that are tracked."),
),
);
return ListView(
padding: EdgeInsets.all(8),
children: timeProgresses
.map((timeProgress) => HomeProgressListTile(
timeProgress: timeProgress,
))
.toList(),
);
},
);
},
);
}
}

View File

@ -0,0 +1,43 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:time_progress_tracker/actions/actions.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
import 'package:time_progress_tracker/widgets/home/home_progress_list_tile.dart';
class HomeInactiveProgressesTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StoreConnector(
onInit: loadTimeProgressListIfUnloaded,
converter: (store) => store.state.hasLoaded,
builder: (BuildContext context, dynamic hasLoaded) {
if (!(hasLoaded as bool))
return Center(
child: CircularProgressIndicator(),
);
return StoreConnector(
onInit: loadTimeProgressListIfUnloaded,
converter: (store) => inactiveTimeProgressesSelector(store.state),
builder: (BuildContext context, List<TimeProgress> timeProgresses) {
if (timeProgresses.length < 1)
return Container(
padding: EdgeInsets.all(16),
child: Center(
child: Text(
"You don't have any currently inactive time progresses, that are tracked."),
),
);
return ListView(
padding: EdgeInsets.all(8),
children: timeProgresses
.map((timeProgress) =>
HomeProgressListTile(timeProgress: timeProgress))
.toList(),
);
},
);
},
);
}
}

View File

@ -5,8 +5,6 @@ import 'package:time_progress_tracker/app.dart';
class HomeSettingsTab extends StatelessWidget { class HomeSettingsTab extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ThemeData appTheme = Theme.of(context);
return Container( return Container(
padding: EdgeInsets.all(16), padding: EdgeInsets.all(16),
child: Center( child: Center(

View File

@ -1,57 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'package:time_progress_tracker/actions/actions.dart';
import 'package:time_progress_tracker/models/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_progress_list_tile.dart';
class HomeActiveProgressesTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
ThemeData appTheme = Theme.of(context);
return StoreConnector(
converter: _ViewModel.fromStore,
onInit: loadTimeProgressListIfUnloaded,
builder: (BuildContext scContext, _ViewModel vm) {
if (!vm.hasLoaded)
return Center(
child: CircularProgressIndicator(),
);
if (vm.activeTimeProgresses.length < 1)
return Container(
padding: EdgeInsets.all(16),
child: Center(
child: Text(
"You don't have any currently active time progresses, that are tracked."),
),
);
return ListView(
padding: EdgeInsets.all(8),
children: vm.activeTimeProgresses
.map((timeProgress) => HomeProgressListTile(
timeProgress: timeProgress,
))
.toList(),
);
});
}
}
class _ViewModel {
final List<TimeProgress> activeTimeProgresses;
final bool hasLoaded;
_ViewModel({
@required this.activeTimeProgresses,
@required this.hasLoaded,
});
static _ViewModel fromStore(Store<AppState> store) {
return _ViewModel(
activeTimeProgresses: activeTimeProgressesSelector(store.state),
hasLoaded: store.state.hasLoaded,
);
}
}

View File

@ -1,60 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'package:time_progress_tracker/actions/actions.dart';
import 'package:time_progress_tracker/models/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
import 'package:time_progress_tracker/widgets/home_widgets/home_progress_list_tile.dart';
class HomeInactiveProgressesTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
ThemeData appTheme = Theme.of(context);
// TODO: implement build
return StoreConnector(
converter: _ViewModel.fromStore,
onInit: loadTimeProgressListIfUnloaded,
builder: (BuildContext scContext, _ViewModel vm) {
if (!vm.hasLoaded)
return Center(
child: CircularProgressIndicator(),
);
if (vm.inactiveTimeProgresses.length < 1)
return Container(
padding: EdgeInsets.all(16),
child: Center(
child: Text(
"You don't have any currently inactive time progresses, that are tracked."),
),
);
return ListView(
padding: EdgeInsets.all(8),
children: vm.inactiveTimeProgresses
.map((timeProgress) =>
HomeProgressListTile(timeProgress: timeProgress))
.toList(),
);
});
return Container(
child: Text("Inactive Progresses"),
);
}
}
class _ViewModel {
final List<TimeProgress> inactiveTimeProgresses;
final bool hasLoaded;
_ViewModel({
@required this.inactiveTimeProgresses,
@required this.hasLoaded,
});
static _ViewModel fromStore(Store<AppState> store) {
return _ViewModel(
inactiveTimeProgresses: inactiveTimeProgressesSelector(store.state),
hasLoaded: store.state.hasLoaded,
);
}
}