Created
March 26, 2024 14:51
-
-
Save carloswm85/f640be1407c1bc8b13588645f58669f3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://www.facebook.com/groups/flutter.dart.spanish/permalink/7282244618524827/ | |
import 'package:flutter/material.dart'; | |
import 'package:incidencias/src/providers/student_form_provider.dart'; | |
import 'package:provider/provider.dart'; | |
import 'package:qr_bar_code_scanner_dialog/qr_bar_code_scanner_dialog.dart'; | |
class QrBarCodeScannerDialogView extends StatelessWidget { | |
final _qrBarCodeScannerDialogPlugin = QrBarCodeScannerDialog(); | |
QrBarCodeScannerDialogView({super.key}); | |
@override | |
Widget build(BuildContext context) { | |
return Builder(builder: (context) { | |
return Material( | |
child: Center( | |
child: ElevatedButton( | |
onPressed: () { | |
_qrBarCodeScannerDialogPlugin.getScannedQrBarCode( | |
context: context, | |
onCode: (code) { | |
try { | |
int numControl = int.parse(code.toString()); | |
context | |
.read<StudentForm>() | |
.setStudent(numControl) | |
.whenComplete(() => showSnackBar(context, true)); | |
} catch (e) { | |
showSnackBar(context, false); | |
debugPrint("Este es el catch del qr scanner dialog$e"); | |
} | |
}); | |
}, | |
child: const Text('Scanear Código QR')), | |
), | |
); | |
}); | |
} | |
/// Muestra un snackbar con un mensaje indicando que se encontró un alumno. | |
/// | |
/// El parámetro [context] es el contexto de construcción del widget. | |
/// El parámetro [code] es el código que se escaneó. | |
void showSnackBar(BuildContext context, bool result) { | |
// Crea un widget SnackBar con un color de fondo verde azulado y un mensaje | |
// indicando que se encontró un alumno. | |
SnackBar snackBar = SnackBar( | |
backgroundColor: result ? Colors.teal : Colors.red, | |
content: Text(result ? 'Alumno encontrado' : 'No se encontro el alumno'), | |
); | |
// Muestra el SnackBar usando ScaffoldMessenger. | |
ScaffoldMessenger.of(context).showSnackBar(snackBar); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment