up
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import '../../core/network/api_exception.dart';
|
||||
import '../../core/storage/local_store.dart';
|
||||
import '../../core/theme/app_theme.dart';
|
||||
import '../../providers/auth_provider.dart';
|
||||
@@ -55,11 +56,17 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await AuthService.sendSmsCode(phone, 'register');
|
||||
final devCode = await AuthService.sendSmsCode(phone, 'register');
|
||||
setState(() {
|
||||
_error = null;
|
||||
_countdown = 60;
|
||||
});
|
||||
if (devCode != null && mounted) {
|
||||
// 短信通道未配置时的开发模式:直接展示验证码(上线配置短信后服务端不再返回)
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('开发模式验证码:$devCode(5 分钟内有效)'), duration: const Duration(seconds: 6)),
|
||||
);
|
||||
}
|
||||
_timer?.cancel();
|
||||
_timer = Timer.periodic(const Duration(seconds: 1), (t) {
|
||||
if (_countdown <= 1) {
|
||||
@@ -69,8 +76,10 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
|
||||
setState(() => _countdown -= 1);
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
setState(() => _error = _errText(e));
|
||||
} on ApiException catch (e) {
|
||||
setState(() => _error = e.message);
|
||||
} catch (_) {
|
||||
setState(() => _error = '网络异常,请稍后重试');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,16 +114,15 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
|
||||
);
|
||||
}
|
||||
context.go('/home');
|
||||
} catch (e) {
|
||||
setState(() => _error = _errText(e));
|
||||
} on ApiException catch (e) {
|
||||
setState(() => _error = e.message);
|
||||
} catch (_) {
|
||||
setState(() => _error = '网络异常,请稍后重试');
|
||||
} finally {
|
||||
if (mounted) setState(() => _loading = false);
|
||||
}
|
||||
}
|
||||
|
||||
String _errText(Object e) =>
|
||||
e.toString().replaceFirst('ApiException(', '').split(', ').last.replaceAll(')', '');
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
Reference in New Issue
Block a user