Remove website Telegram login countdown
All checks were successful
Build and deploy Flutter Web / build (push) Successful in 2m12s

This commit is contained in:
Ruslan Bakiev
2026-05-13 20:10:00 +07:00
parent a8b6aa6e02
commit 29e856bbd8

View File

@@ -297,8 +297,6 @@ class _TelegramLoginScreen extends StatefulWidget {
class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
final _api = MapflowApi();
Timer? _countdownTimer;
DateTime? _loginExpiresAt;
var _loading = false;
var _message = '';
@@ -311,12 +309,6 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
}
}
@override
void dispose() {
_countdownTimer?.cancel();
super.dispose();
}
Future<void> _startLogin() async {
setState(() {
_loading = true;
@@ -324,15 +316,8 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
});
final login = await _api.startTelegramBotLogin();
telegram_session.openExternalUrl(login.botUrl);
_countdownTimer?.cancel();
_countdownTimer = Timer.periodic(const Duration(seconds: 1), (_) {
if (mounted) {
setState(() {});
}
});
setState(() {
_loading = false;
_loginExpiresAt = login.expiresAt;
_message = '';
});
}
@@ -343,26 +328,11 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
_message = '';
});
final session = await _api.completeTelegramBotLogin(token);
_countdownTimer?.cancel();
telegram_session.saveMapflowSessionToken(session.sessionToken);
widget.onAuthenticated();
telegram_session.reloadApp();
}
String get _remainingText {
final expiresAt = _loginExpiresAt;
if (expiresAt == null) {
return '';
}
final seconds = expiresAt.difference(DateTime.now()).inSeconds;
if (seconds <= 0) {
return '00:00';
}
final minutes = seconds ~/ 60;
final rest = (seconds % 60).toString().padLeft(2, '0');
return '$minutes:$rest';
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -382,16 +352,6 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
),
const SizedBox(height: 24),
TelegramLoginButton(onPressed: _startLogin, loading: _loading),
if (_remainingText.isNotEmpty) ...[
const SizedBox(height: 12),
Text(
_remainingText,
style: Theme.of(context).textTheme.titleMedium?.copyWith(
fontWeight: FontWeight.w800,
letterSpacing: 0,
),
),
],
if (_message.isNotEmpty) ...[
const SizedBox(height: 14),
Text(