fix
This commit is contained in:
@@ -79,17 +79,18 @@ class _PhoneLoginScreenState extends State<PhoneLoginScreen> {
|
||||
if (state.isSuccess) {
|
||||
context.go("/pin");
|
||||
} else if (state.error != null) {
|
||||
setState(() {
|
||||
_isFirstTry = false;
|
||||
});
|
||||
setState(() { _isFirstTry = false; });
|
||||
codeController.clear();
|
||||
FocusScope.of(context).requestFocus(codeFocusNode);
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text(state.error!)));
|
||||
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(state.error!)));
|
||||
} else if (state.isBlocked) {
|
||||
context.go("/block");
|
||||
}
|
||||
|
||||
if (state.secondsLeft == 0 && codeFocusNode.hasFocus) {
|
||||
codeFocusNode.unfocus();
|
||||
codeController.clear();
|
||||
}
|
||||
},
|
||||
builder: (context, state) {
|
||||
return Scaffold(
|
||||
@@ -126,12 +127,21 @@ class _PhoneLoginScreenState extends State<PhoneLoginScreen> {
|
||||
),
|
||||
const SizedBox(height: 35),
|
||||
GestureDetector(
|
||||
onTap: openKeyboard,
|
||||
onTap: state.secondsLeft > 0 ? openKeyboard : null,
|
||||
child: CodeDots(code: state.code, length: 6),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
if (!_isFirstTry)
|
||||
if (state.secondsLeft == 0)
|
||||
const Text(
|
||||
"Время действия кода истекло. Запросите новый.",
|
||||
style: TextStyle(
|
||||
color: AppColors.pinError,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
)
|
||||
else if (!_isFirstTry)
|
||||
Text(
|
||||
"Осталось ${state.attemptsLeft} попытк${state.attemptsLeft == 1 ? 'а' : 'и'}",
|
||||
style: const TextStyle(
|
||||
@@ -145,14 +155,14 @@ class _PhoneLoginScreenState extends State<PhoneLoginScreen> {
|
||||
text: state.secondsLeft == 0
|
||||
? "Отправить код повторно"
|
||||
: "Отправить код повторно\nчерез 00:${state.secondsLeft.toString().padLeft(2, '0')} сек.",
|
||||
onTap: state.secondsLeft == 0
|
||||
onTap: (state.secondsLeft == 0 && !state.isSubmitting)
|
||||
? () {
|
||||
context.read<VerifyCodeBloc>().add(
|
||||
ResendCodePressed(),
|
||||
);
|
||||
}
|
||||
: () {},
|
||||
enabled: state.secondsLeft == 0,
|
||||
context.read<VerifyCodeBloc>().add(
|
||||
ResendCodePressed(),
|
||||
);
|
||||
}
|
||||
: null,
|
||||
enabled: state.secondsLeft == 0 && !state.isSubmitting,
|
||||
width: 250,
|
||||
),
|
||||
const Spacer(),
|
||||
@@ -167,6 +177,7 @@ class _PhoneLoginScreenState extends State<PhoneLoginScreen> {
|
||||
keyboardType: TextInputType.number,
|
||||
maxLength: 6,
|
||||
autofocus: true,
|
||||
enabled: state.secondsLeft > 0,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user