Fix LoginScreen widget scope and resolve all analyzer errors

This commit is contained in:
ssbg04 committed 2026-07-26 13:51:38 +08:00
1 parent 5ed9d4c213
commit 9c97d2db8a
1 file changed
+60 -62
+60 -62
View File
@@ -510,68 +510,6 @@ class _LoginScreenState extends ConsumerState<LoginScreen> with SingleTickerProv
),
);
}
}
class _NetworkScanDialog extends StatefulWidget {
const _NetworkScanDialog();
@override
State<_NetworkScanDialog> createState() => _NetworkScanDialogState();
}
class _NetworkScanDialogState extends State<_NetworkScanDialog> {
String _status = 'Scanning local network…';
@override
void initState() {
super.initState();
_scan();
}
Future<void> _scan() async {
final prefixes = await ServerDiscoveryService.getSubnetPrefixes();
final found = await ServerDiscoveryService.discover(
prefixes,
onProgress: (subnet, scanned, total) {
if (mounted) {
setState(() => _status = 'Scanning ${subnet}x … ($scanned/$total)');
}
},
);
if (!mounted) return;
Navigator.pop(context);
if (found != null) {
ApiConstants.setBaseUrl(found);
await ServerDiscoveryService.save(ApiConstants.baseUrl);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('✅ Connected to local server: $found'),
backgroundColor: AppColors.success,
),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('No TIS RMS server found on local network.'),
backgroundColor: AppColors.error,
),
);
}
}
@override
Widget build(BuildContext context) {
return AlertDialog(
title: const Text('Local Network Scan'),
content: Row(
children: [
const CircularProgressIndicator(),
const SizedBox(width: 20),
Expanded(child: Text(_status)),
],
),
);
}
Widget _buildLoginForm() {
final authState = ref.watch(authProvider);
@@ -871,3 +809,63 @@ class _ForgotPasswordDialogState extends ConsumerState<_ForgotPasswordDialog> {
);
}
}
class _NetworkScanDialog extends StatefulWidget {
const _NetworkScanDialog();
@override
State<_NetworkScanDialog> createState() => _NetworkScanDialogState();
}
class _NetworkScanDialogState extends State<_NetworkScanDialog> {
String _status = 'Scanning local network…';
@override
void initState() {
super.initState();
_scan();
}
Future<void> _scan() async {
final found = await ServerDiscoveryService.discover(
onProgress: (subnet, scanned, total) {
if (mounted) {
setState(() => _status = 'Scanning ${subnet}x … ($scanned/$total)');
}
},
);
if (!mounted) return;
Navigator.pop(context);
if (found != null) {
ApiConstants.setBaseUrl(found);
await ServerDiscoveryService.save(ApiConstants.baseUrl);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('✅ Connected to local server: $found'),
backgroundColor: AppColors.success,
),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('No TIS RMS server found on local network.'),
backgroundColor: AppColors.error,
),
);
}
}
@override
Widget build(BuildContext context) {
return AlertDialog(
title: const Text('Local Network Scan'),
content: Row(
children: [
const CircularProgressIndicator(),
const SizedBox(width: 20),
Expanded(child: Text(_status)),
],
),
);
}
}