diff --git a/app/lib/screens/study/tasks/intervention/checkmark_task_widget.dart b/app/lib/screens/study/tasks/intervention/checkmark_task_widget.dart index a363ca969..4bd496479 100644 --- a/app/lib/screens/study/tasks/intervention/checkmark_task_widget.dart +++ b/app/lib/screens/study/tasks/intervention/checkmark_task_widget.dart @@ -18,7 +18,7 @@ class CheckmarkTaskWidget extends StatefulWidget { } class _CheckmarkTaskWidgetState extends State { - DateTime _lastClickTime = DateTime.now(); + DateTime? _lastClickTime; bool _isLoading = false; @override diff --git a/app/lib/screens/study/tasks/observation/questionnaire_task_widget.dart b/app/lib/screens/study/tasks/observation/questionnaire_task_widget.dart index fe551f9d5..95b889813 100644 --- a/app/lib/screens/study/tasks/observation/questionnaire_task_widget.dart +++ b/app/lib/screens/study/tasks/observation/questionnaire_task_widget.dart @@ -27,7 +27,7 @@ class QuestionnaireTaskWidget extends StatefulWidget { class _QuestionnaireTaskWidgetState extends State { dynamic response; late bool responseValidator; - DateTime _lastClickTime = DateTime.now(); + DateTime? _lastClickTime; bool _isLoading = false; final GlobalKey formKey = GlobalKey(); @@ -86,12 +86,8 @@ class _QuestionnaireTaskWidgetState extends State { backgroundColor: WidgetStateProperty.all(Colors.green), ), onPressed: () async { - if (isRedundantClick(_lastClickTime)) { - return; - } - if (!formKey.currentState!.validate()) { - return; - } + if (isRedundantClick(_lastClickTime)) return; + if (!formKey.currentState!.validate()) return; setState(() { _isLoading = true; _lastClickTime = DateTime.now(); diff --git a/app/lib/util/misc.dart b/app/lib/util/misc.dart index e0ab7bce5..56104d22c 100644 --- a/app/lib/util/misc.dart +++ b/app/lib/util/misc.dart @@ -1,7 +1,8 @@ bool isRedundantClick( - DateTime lastClickTime, { - Duration interval = const Duration(seconds: 2), + DateTime? lastClickTime, { + Duration interval = const Duration(seconds: 1), }) { + if (lastClickTime == null) return false; final now = DateTime.now(); if (now.difference(lastClickTime) > interval) { return false;