Created PlatformActionButton

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker
2021-03-16 16:46:54 +01:00
parent aabeef6384
commit d6ca3d4270
4 changed files with 44 additions and 33 deletions

View File

@ -1,9 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
import 'package:time_progress_tracker/ui/buttons/go_to_create_progress_button.dart';
import 'package:time_progress_tracker/ui/buttons/platform_action_button.dart';
import 'package:time_progress_tracker/ui/screens/active_time_progresses_screen.dart';
import 'package:time_progress_tracker/ui/screens/inactive_time_progresses_screen.dart';
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
import 'package:time_progress_tracker/ui/screens/settings_screen.dart';
import 'package:time_progress_tracker/utils/color_utils.dart';
import 'package:time_progress_tracker/utils/constants.dart';
@ -41,11 +42,22 @@ class _DashboardScreenState extends State<DashboardScreen> {
}
}
Widget _renderCreateProgressBtn() =>
_tabSelectedIndex == 2 ? null : GoToCreateProgressButton();
@override
Widget build(BuildContext context) {
Widget _renderCreateProgressBtn() => _tabSelectedIndex == 2
? null
: PlatformActionButton(
heroTag: "goToCreateTimeProgressBTN",
icon: Icons.add,
onBtnPressed: () => Navigator.push(
context,
platformPageRoute(
context: context,
builder: (context) => ProgressCreationScreen(),
),
),
);
return PlatformScaffold(
appBar: PlatformAppBar(
title: Text(

View File

@ -10,6 +10,7 @@ import 'package:time_progress_tracker/redux/app_state.dart';
import 'package:time_progress_tracker/redux/redux_selectors.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/buttons/platform_action_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';
@ -54,6 +55,14 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
initTimeProgress(TimeProgress.defaultFromDuration(
StoreProvider.of<AppState>(context).state.appSettings.duration));
Widget _createActionButton = CreateTimeProgressStoreConnector(
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
PlatformActionButton(
heroTag: "createTimeProgressBTN",
icon: Icons.save,
onBtnPressed: () => _onCreateTimeProgress(vm)),
);
return PlatformScaffold(
appBar: PlatformAppBar(
title: Text(
@ -62,24 +71,14 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
),
cupertino: (_, __) => CupertinoNavigationBarData(
transitionBetweenRoutes: false,
trailing: CreateTimeProgressStoreConnector(
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
CreateProgressButton(
createProgress: () => _onCreateTimeProgress(vm),
),
),
trailing: _createActionButton,
),
),
material: (_, __) => MaterialScaffoldData(
floatingActionButton: Row(
children: [
Expanded(
child: CreateTimeProgressStoreConnector(
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
CreateProgressButton(
createProgress: () => _onCreateTimeProgress(vm),
),
),
child: _createActionButton,
)
],
),