34 lines
980 B
Dart
34 lines
980 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:pweb/providers/two_factor.dart';
|
|
import 'package:pweb/utils/cooldown_format.dart';
|
|
import 'package:pweb/widgets/resend_link.dart';
|
|
|
|
import 'package:pweb/generated/i18n/app_localizations.dart';
|
|
|
|
|
|
class ResendCodeButton extends StatelessWidget {
|
|
const ResendCodeButton({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final localizations = AppLocalizations.of(context)!;
|
|
final provider = context.watch<TwoFactorProvider>();
|
|
final isDisabled = provider.isCooldownActive || provider.isResending;
|
|
|
|
final label = provider.isCooldownActive
|
|
? '${localizations.twoFactorResend} (${formatCooldownSeconds(provider.cooldownRemainingSeconds)})'
|
|
: localizations.twoFactorResend;
|
|
|
|
return ResendLink(
|
|
label: label,
|
|
onPressed: provider.resendCode,
|
|
isDisabled: isDisabled,
|
|
isLoading: provider.isResending,
|
|
);
|
|
}
|
|
|
|
}
|