From 58f2a954ed93d4e4efc75b728716ae33537cf653 Mon Sep 17 00:00:00 2001 From: yaso-meth Date: Mon, 5 Aug 2024 15:39:09 +0200 Subject: [PATCH] add keyboard click for submit --- .../patient_manager/lib/pages/patientAdd.dart | 38 ++++++++++++------ .../lib/pages/patientEdit.dart | 39 +++++++++++++------ 2 files changed, 55 insertions(+), 22 deletions(-) diff --git a/Frontend/patient_manager/lib/pages/patientAdd.dart b/Frontend/patient_manager/lib/pages/patientAdd.dart index ff0a0e8c..774872b0 100644 --- a/Frontend/patient_manager/lib/pages/patientAdd.dart +++ b/Frontend/patient_manager/lib/pages/patientAdd.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:patient_manager/components/myDropdownInput.dart'; import 'package:patient_manager/components/myErrorMessage.dart'; import 'package:patient_manager/components/mySuccessMessage.dart'; @@ -41,6 +42,7 @@ class _AddPatientState extends State { final baseAPI = AppEnviroment.baseApiUrl; late int futureDocOfficeId; late bool medRequired; + final FocusNode _focusNode = FocusNode(); bool isFieldsFilled() { if (medRequired) { @@ -292,16 +294,7 @@ class _AddPatientState extends State { height: 100.0, child: MyButton( onTap: () { - if (isFieldsFilled()) { - addPatientAPICall(); - } else { - showDialog( - context: context, - builder: (context) { - return const MyErrorMessage(errorType: "Input Error"); - }, - ); - } + submitForm(); }, buttonText: "Add", buttonColor: @@ -316,6 +309,19 @@ class _AddPatientState extends State { ); } + void submitForm() { + if (isFieldsFilled()) { + addPatientAPICall(); + } else { + showDialog( + context: context, + builder: (context) { + return const MyErrorMessage(errorType: "Input Error"); + }, + ); + } + } + @override void initState() { medAidController.addListener(isRequired); @@ -332,7 +338,17 @@ class _AddPatientState extends State { Widget build(BuildContext context) { return Scaffold( appBar: const MIHAppBar(barTitle: "Add Patient"), - body: displayForm(), + body: KeyboardListener( + focusNode: _focusNode, + autofocus: true, + onKeyEvent: (event) async { + if (event is KeyDownEvent && + event.logicalKey == LogicalKeyboardKey.enter) { + submitForm(); + } + }, + child: displayForm(), + ), ); } } diff --git a/Frontend/patient_manager/lib/pages/patientEdit.dart b/Frontend/patient_manager/lib/pages/patientEdit.dart index b90e0ca8..d9517b95 100644 --- a/Frontend/patient_manager/lib/pages/patientEdit.dart +++ b/Frontend/patient_manager/lib/pages/patientEdit.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:patient_manager/components/mihAppBar.dart'; import 'package:patient_manager/components/myDropdownInput.dart'; import 'package:patient_manager/components/myErrorMessage.dart'; @@ -50,6 +51,8 @@ class _EditPatientState extends State { late double width; late double height; + final FocusNode _focusNode = FocusNode(); + // Future getOfficeIdByUser(String endpoint) async { // final response = await http.get(Uri.parse(endpoint)); // if (response.statusCode == 200) { @@ -507,16 +510,7 @@ class _EditPatientState extends State { height: 100.0, child: MyButton( onTap: () { - if (isFieldsFilled()) { - updatePatientApiCall(); - } else { - showDialog( - context: context, - builder: (context) { - return const MyErrorMessage(errorType: "Input Error"); - }, - ); - } + submitForm(); }, buttonText: "Update", buttonColor: @@ -531,6 +525,19 @@ class _EditPatientState extends State { ); } + void submitForm() { + if (isFieldsFilled()) { + updatePatientApiCall(); + } else { + showDialog( + context: context, + builder: (context) { + return const MyErrorMessage(errorType: "Input Error"); + }, + ); + } + } + @override void initState() { getLoginUserEmail(); @@ -574,7 +581,17 @@ class _EditPatientState extends State { return Scaffold( appBar: const MIHAppBar(barTitle: "Edit Patient"), - body: displayForm(), + body: KeyboardListener( + focusNode: _focusNode, + autofocus: true, + onKeyEvent: (event) async { + if (event is KeyDownEvent && + event.logicalKey == LogicalKeyboardKey.enter) { + submitForm(); + } + }, + child: displayForm(), + ), ); } }