49 lines
1.3 KiB
Dart
49 lines
1.3 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
import 'package:mobile_scanner/mobile_scanner.dart';
|
||
|
|
||
|
class ScannerErrorWidget extends StatelessWidget {
|
||
|
const ScannerErrorWidget({super.key, required this.error});
|
||
|
|
||
|
final MobileScannerException error;
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
String errorMessage;
|
||
|
|
||
|
switch (error.errorCode) {
|
||
|
case MobileScannerErrorCode.controllerUninitialized:
|
||
|
errorMessage = 'Controller not ready.';
|
||
|
case MobileScannerErrorCode.permissionDenied:
|
||
|
errorMessage = 'Permission denied';
|
||
|
case MobileScannerErrorCode.unsupported:
|
||
|
errorMessage = 'Scanning is unsupported on this device';
|
||
|
default:
|
||
|
errorMessage = 'Generic Error';
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return ColoredBox(
|
||
|
color: Colors.black,
|
||
|
child: Center(
|
||
|
child: Column(
|
||
|
mainAxisSize: MainAxisSize.min,
|
||
|
children: [
|
||
|
const Padding(
|
||
|
padding: EdgeInsets.only(bottom: 16),
|
||
|
child: Icon(Icons.error, color: Colors.white),
|
||
|
),
|
||
|
Text(
|
||
|
errorMessage,
|
||
|
style: const TextStyle(color: Colors.white),
|
||
|
),
|
||
|
Text(
|
||
|
error.errorDetails?.message ?? '',
|
||
|
style: const TextStyle(color: Colors.white),
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|