Started Porting Progress Creation Screen
Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
@ -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),
|
||||
|
Reference in New Issue
Block a user