Created PlatformActionButton
Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
parent
aabeef6384
commit
d6ca3d4270
@ -1,8 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||||
import 'package:time_progress_tracker/models/time_progress.dart';
|
|
||||||
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
|
|
||||||
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
||||||
|
|
||||||
class CreateProgressButton extends StatelessWidget {
|
class CreateProgressButton extends StatelessWidget {
|
||||||
|
@ -1,36 +1,38 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
|
|
||||||
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
||||||
|
|
||||||
class GoToCreateProgressButton extends StatelessWidget {
|
class PlatformActionButton extends StatelessWidget {
|
||||||
final String _heroTag = "createProgressBTN";
|
final String heroTag;
|
||||||
|
final IconData icon;
|
||||||
|
final void Function() onBtnPressed;
|
||||||
|
|
||||||
|
const PlatformActionButton({
|
||||||
|
Key key,
|
||||||
|
@required this.heroTag,
|
||||||
|
@required this.icon,
|
||||||
|
@required this.onBtnPressed,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
void _onButtonPressed() => Navigator.push(
|
|
||||||
context,
|
|
||||||
platformPageRoute(
|
|
||||||
context: context,
|
|
||||||
builder: (context) => ProgressCreationScreen(),
|
|
||||||
));
|
|
||||||
|
|
||||||
Widget _renderCupertino() {
|
Widget _renderCupertino() {
|
||||||
return PlatformButton(
|
return PlatformButton(
|
||||||
padding: EdgeInsets.all(4),
|
padding: EdgeInsets.all(4),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.add,
|
icon,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
),
|
),
|
||||||
onPressed: _onButtonPressed,
|
onPressed: onBtnPressed,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _renderMaterial() {
|
Widget _renderMaterial() {
|
||||||
return FloatingActionButton(
|
return FloatingActionButton(
|
||||||
heroTag: _heroTag,
|
heroTag: heroTag,
|
||||||
child: Icon(Icons.add),
|
child: Icon(icon),
|
||||||
onPressed: _onButtonPressed,
|
onPressed: onBtnPressed,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,10 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_platform_widgets/flutter_platform_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/active_time_progresses_screen.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/inactive_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/ui/screens/settings_screen.dart';
|
||||||
import 'package:time_progress_tracker/utils/color_utils.dart';
|
import 'package:time_progress_tracker/utils/color_utils.dart';
|
||||||
import 'package:time_progress_tracker/utils/constants.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
|
@override
|
||||||
Widget build(BuildContext context) {
|
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(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: PlatformAppBar(
|
||||||
title: Text(
|
title: Text(
|
||||||
|
@ -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/redux_selectors.dart';
|
||||||
import 'package:time_progress_tracker/redux/store_connectors/create_time_progress_store_connector.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/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/ui/progress/progress_editor_widget.dart';
|
||||||
import 'package:time_progress_tracker/utils/color_utils.dart';
|
import 'package:time_progress_tracker/utils/color_utils.dart';
|
||||||
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
||||||
@ -54,6 +55,14 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
|
|||||||
initTimeProgress(TimeProgress.defaultFromDuration(
|
initTimeProgress(TimeProgress.defaultFromDuration(
|
||||||
StoreProvider.of<AppState>(context).state.appSettings.duration));
|
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(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: PlatformAppBar(
|
||||||
title: Text(
|
title: Text(
|
||||||
@ -62,24 +71,14 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
|
|||||||
),
|
),
|
||||||
cupertino: (_, __) => CupertinoNavigationBarData(
|
cupertino: (_, __) => CupertinoNavigationBarData(
|
||||||
transitionBetweenRoutes: false,
|
transitionBetweenRoutes: false,
|
||||||
trailing: CreateTimeProgressStoreConnector(
|
trailing: _createActionButton,
|
||||||
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
|
|
||||||
CreateProgressButton(
|
|
||||||
createProgress: () => _onCreateTimeProgress(vm),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
material: (_, __) => MaterialScaffoldData(
|
material: (_, __) => MaterialScaffoldData(
|
||||||
floatingActionButton: Row(
|
floatingActionButton: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: CreateTimeProgressStoreConnector(
|
child: _createActionButton,
|
||||||
loadedBuilder: (context, CreateTimeProgressViewModel vm) =>
|
|
||||||
CreateProgressButton(
|
|
||||||
createProgress: () => _onCreateTimeProgress(vm),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user