Started Porting Progress Creation Screen

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker
2021-03-16 16:33:46 +01:00
parent 45d4f7ba3a
commit aabeef6384
6 changed files with 212 additions and 24 deletions

View File

@ -1,14 +1,18 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'package:time_progress_tracker/models/app_settings.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/redux/actions/time_progress_actions.dart';
import 'package:time_progress_tracker/redux/app_state.dart';
import 'package:time_progress_tracker/models/time_progress.dart';
import 'package:time_progress_tracker/redux/redux_selectors.dart';
import 'package:time_progress_tracker/utils/helper_functions.dart';
import 'package:time_progress_tracker/redux/store_connectors/create_time_progress_store_connector.dart';
import 'package:time_progress_tracker/ui/buttons/create_progress_button.dart';
import 'package:time_progress_tracker/ui/progress/progress_editor_widget.dart';
import 'package:time_progress_tracker/utils/color_utils.dart';
import 'package:time_progress_tracker/utils/helper_functions.dart';
class ProgressCreationScreen extends StatefulWidget {
static const routeName = "/create-progress";
@ -41,6 +45,86 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
@override
Widget build(BuildContext context) {
void _onCreateTimeProgress(CreateTimeProgressViewModel vm) {
if (!_isProgressValid) return null;
vm.addTimeProgress(timeProgressToCreate);
Navigator.pop(context);
}
initTimeProgress(TimeProgress.defaultFromDuration(
StoreProvider.of<AppState>(context).state.appSettings.duration));
return PlatformScaffold(
appBar: PlatformAppBar(
title: Text(
ProgressCreationScreen.title,
style: toolbarTextStyle,
),
cupertino: (_, __) => CupertinoNavigationBarData(
transitionBetweenRoutes: false,
trailing: CreateTimeProgressStoreConnector(
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
CreateProgressButton(
createProgress: () => _onCreateTimeProgress(vm),
),
),
),
),
material: (_, __) => MaterialScaffoldData(
floatingActionButton: Row(
children: [
Expanded(
child: CreateTimeProgressStoreConnector(
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
CreateProgressButton(
createProgress: () => _onCreateTimeProgress(vm),
),
),
)
],
),
),
body: ProgressEditorWidget(
timeProgress: timeProgressToCreate,
onTimeProgressChanged: onTimeProgressChanged,
),
);
return CreateTimeProgressStoreConnector(
loadedBuilder: (context, CreateTimeProgressViewModel vm) {
initTimeProgress(vm.defaultProgress);
return PlatformScaffold(
appBar: PlatformAppBar(
title: Text(
ProgressCreationScreen.title,
style: toolbarTextStyle,
),
cupertino: (_, __) => CupertinoNavigationBarData(
transitionBetweenRoutes: false,
trailing: CreateProgressButton(
createProgress: () => _onCreateTimeProgress(vm),
),
),
),
material: (_, __) => MaterialScaffoldData(
floatingActionButton: Row(
children: [
Expanded(
child: CreateProgressButton(
createProgress: () => _onCreateTimeProgress(vm),
),
)
],
),
),
body: ProgressEditorWidget(
timeProgress: timeProgressToCreate,
onTimeProgressChanged: onTimeProgressChanged,
),
);
},
);
return Scaffold(
appBar: AppBar(
title: Text(ProgressCreationScreen.title),