Remove website Telegram login countdown
All checks were successful
Build and deploy Flutter Web / build (push) Successful in 2m12s
All checks were successful
Build and deploy Flutter Web / build (push) Successful in 2m12s
This commit is contained in:
@@ -297,8 +297,6 @@ class _TelegramLoginScreen extends StatefulWidget {
|
|||||||
|
|
||||||
class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
|
class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
|
||||||
final _api = MapflowApi();
|
final _api = MapflowApi();
|
||||||
Timer? _countdownTimer;
|
|
||||||
DateTime? _loginExpiresAt;
|
|
||||||
var _loading = false;
|
var _loading = false;
|
||||||
var _message = '';
|
var _message = '';
|
||||||
|
|
||||||
@@ -311,12 +309,6 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_countdownTimer?.cancel();
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _startLogin() async {
|
Future<void> _startLogin() async {
|
||||||
setState(() {
|
setState(() {
|
||||||
_loading = true;
|
_loading = true;
|
||||||
@@ -324,15 +316,8 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
|
|||||||
});
|
});
|
||||||
final login = await _api.startTelegramBotLogin();
|
final login = await _api.startTelegramBotLogin();
|
||||||
telegram_session.openExternalUrl(login.botUrl);
|
telegram_session.openExternalUrl(login.botUrl);
|
||||||
_countdownTimer?.cancel();
|
|
||||||
_countdownTimer = Timer.periodic(const Duration(seconds: 1), (_) {
|
|
||||||
if (mounted) {
|
|
||||||
setState(() {});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_loading = false;
|
_loading = false;
|
||||||
_loginExpiresAt = login.expiresAt;
|
|
||||||
_message = '';
|
_message = '';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -343,26 +328,11 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
|
|||||||
_message = '';
|
_message = '';
|
||||||
});
|
});
|
||||||
final session = await _api.completeTelegramBotLogin(token);
|
final session = await _api.completeTelegramBotLogin(token);
|
||||||
_countdownTimer?.cancel();
|
|
||||||
telegram_session.saveMapflowSessionToken(session.sessionToken);
|
telegram_session.saveMapflowSessionToken(session.sessionToken);
|
||||||
widget.onAuthenticated();
|
widget.onAuthenticated();
|
||||||
telegram_session.reloadApp();
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@@ -382,16 +352,6 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
TelegramLoginButton(onPressed: _startLogin, loading: _loading),
|
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) ...[
|
if (_message.isNotEmpty) ...[
|
||||||
const SizedBox(height: 14),
|
const SizedBox(height: 14),
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
Reference in New Issue
Block a user