fix
This commit is contained in:
@@ -12,6 +12,7 @@ import '../../../domain/entities/payment_card.dart';
|
||||
import '../../../domain/entities/scooter.dart';
|
||||
import '../../../domain/entities/tariff.dart';
|
||||
import '../../../domain/usecase/get_payment_cards_usecase.dart';
|
||||
import '../../../domain/usecase/get_profile_usecase.dart';
|
||||
import '../../../domain/usecase/set_main_payment_card_usecase.dart';
|
||||
import '../../event/payment_method_sheet_event.dart';
|
||||
import '../../event/tariff_sheet_event.dart';
|
||||
@@ -40,6 +41,24 @@ class _TariffSheetState extends State<TariffSheet> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final double remainingKm = (62 * widget.scooter.batteryLevel) / 100;
|
||||
|
||||
final String kmText = remainingKm % 1 == 0
|
||||
? '${remainingKm.toInt()} км'
|
||||
: '${remainingKm.toStringAsFixed(1)} км';
|
||||
|
||||
final int totalMinutes = ((150 * widget.scooter.batteryLevel) / 100).round();
|
||||
final int hours = totalMinutes ~/ 60;
|
||||
final int minutes = totalMinutes % 60;
|
||||
|
||||
String timeText = '';
|
||||
if (hours > 0 && minutes > 0) {
|
||||
timeText = '$hours ч $minutes мин';
|
||||
} else if (hours > 0) {
|
||||
timeText = '$hours ч';
|
||||
} else {
|
||||
timeText = '$minutes мин';
|
||||
}
|
||||
return BlocConsumer<TariffSheetBloc, TariffSheetState>(
|
||||
listener: (context, state) {
|
||||
if (state.status == TariffSheetStatus.failure && state.errorMessage != null) {
|
||||
@@ -135,7 +154,6 @@ class _TariffSheetState extends State<TariffSheet> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// 🔹 HEADER
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20),
|
||||
child: Row(
|
||||
@@ -227,7 +245,7 @@ class _TariffSheetState extends State<TariffSheet> {
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
'Заряда хватит на 4 часа 17 минут\nили 47 км',
|
||||
'Заряда хватит на $kmText или $timeText',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 13,
|
||||
@@ -303,6 +321,7 @@ class _TariffSheetState extends State<TariffSheet> {
|
||||
create: (context) => PaymentMethodSheetBloc(
|
||||
getIt<GetPaymentCardsUsecase>(),
|
||||
getIt<SetMainPaymentCardUsecase>(),
|
||||
getIt<GetProfileUseCase>(),
|
||||
)..add(PaymentMethodSheetStarted()),
|
||||
child: PaymentMethodSheet(
|
||||
initialSelectedCard: state.useBalance ? null : state.selectedCard,
|
||||
@@ -547,7 +566,7 @@ class _TariffCard extends StatelessWidget {
|
||||
context: context,
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
builder: (context) => TariffInfoSheet(
|
||||
builder: (_) => TariffInfoSheet(
|
||||
tariff: tariff,
|
||||
isInsurance: isInsurance,
|
||||
onChanged: (val) {
|
||||
|
||||
Reference in New Issue
Block a user