Fixed Progress Editor Bug

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker
2021-02-13 00:54:16 +01:00
parent 9ee29a7c7c
commit f592e7b66b
5 changed files with 51 additions and 42 deletions

View File

@ -19,10 +19,13 @@ class ProgressCreationScreen extends StatefulWidget {
class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
TimeProgress timeProgressToCreate =
TimeProgress("", DateTime.now(), DateTime(DateTime.now().year + 1));
bool _isProgressValid = false;
void onTimeProgressChanged(TimeProgress newTimeProgress) {
void onTimeProgressChanged(
TimeProgress newTimeProgress, bool isNewProgressValid) {
setState(() {
timeProgressToCreate = newTimeProgress;
_isProgressValid = isNewProgressValid;
});
}
@ -46,7 +49,7 @@ class _ProgressCreationScreenState extends State<ProgressCreationScreen> {
child: FloatingActionButton(
heroTag: "createTimeProgressBTN",
child: Icon(Icons.save),
onPressed: TimeProgress.isValid(timeProgressToCreate)
onPressed: _isProgressValid
? () {
StoreProvider.of<AppState>(context).dispatch(
AddTimeProgressAction(timeProgressToCreate));

View File

@ -27,12 +27,14 @@ class ProgressDetailScreen extends StatefulWidget {
}
class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
bool _editMode = false;
TimeProgress _editedProgress;
bool _editMode = false, _isEditedProgressValid = false;
TimeProgress _editedProgress, _originalProgress;
void _onEditedProgressChanged(TimeProgress newProgress) {
void _onEditedProgressChanged(
TimeProgress newProgress, bool isNewProgressValid) {
setState(() {
_editedProgress = newProgress;
_isEditedProgressValid = isNewProgressValid;
});
}
@ -42,6 +44,13 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
});
}
void _cancelEditMode() {
setState(() {
_editMode = false;
_editedProgress = _originalProgress;
});
}
@override
Widget build(BuildContext context) {
final ProgressDetailScreenArguments args =
@ -60,8 +69,10 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
return Center(
child: Text("Error Invalid Time Progress"),
);
if (_editedProgress == null)
_editedProgress = timeProgress; // initialize _editedProgress
if (_editedProgress == null) {
_editedProgress = timeProgress;
_originalProgress = timeProgress;
} // initialize _editedProgress
List<Widget> columnChildren = [
Expanded(
@ -106,9 +117,10 @@ class _ProgressDetailScreenState extends State<ProgressDetailScreen> {
editMode: _editMode,
originalProgress: timeProgress,
editedProgress: _editedProgress,
isEditedProgressValid: _isEditedProgressValid,
onEditProgress: () => _switchEditMode(true),
onSaveEditedProgress: _saveEditedProgress,
onCancelEditProgress: () => _switchEditMode(false),
onCancelEditProgress: _cancelEditMode,
onDeleteProgress: _deleteTimeProgress);
}),
);