bug fixes

This commit is contained in:
2026-09-04 13:41:57 +03:00
parent cf5b56e365
commit 5f57af2ad2
14 changed files with 201 additions and 89 deletions

View File

@@ -73,7 +73,6 @@ class MapSettingsSheet extends StatelessWidget {
TextButton(
onPressed: () {
context.read<MapSettingsModalBloc>().add(ApllyButtonClick());
context.read<MapBloc>().add(UpdateMap());
Navigator.of(context).pop();
},
child: const Text(

View File

@@ -3,8 +3,10 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../di/service_locator.dart';
import '../../event/map_event.dart';
import '../../event/reserved_ride_event.dart';
import '../../state/reserved_ride_state.dart';
import '../../viewmodel/map_bloc.dart';
import '../../viewmodel/reserved_ride_bloc.dart';
import '../dialog/cancel_booking_dialog.dart';
import '../gradient_button.dart';
@@ -125,7 +127,6 @@ class _ReservedRideSheetState extends State<ReservedRideSheet> {
const SizedBox(height: 20),
// ТАЙМЕР + ИНФО О САМОКАТЕ (КОМПАКТНЫЙ)
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Row(
@@ -227,6 +228,7 @@ class _ReservedRideSheetState extends State<ReservedRideSheet> {
listener: (context, state) {
if (state.rideStarted) {
Navigator.pop(context);
context.read<MapBloc>().add(FetchActiveOrders());
showModalBottomSheet(
context: context,
isScrollControlled: true,

View File

@@ -15,9 +15,11 @@ import '../../../domain/usecase/add_payment_card_usecase.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/map_event.dart';
import '../../event/payment_method_sheet_event.dart';
import '../../event/tariff_sheet_event.dart';
import '../../state/tariff_sheet_state.dart';
import '../../viewmodel/map_bloc.dart';
import '../../viewmodel/tariff_sheet_bloc.dart';
import '../gradient_button.dart';
import '../scooter/mini_battery_indicator.dart';
@@ -62,6 +64,14 @@ class _TariffSheetState extends State<TariffSheet> {
}
return BlocConsumer<TariffSheetBloc, TariffSheetState>(
listener: (context, state) {
if (state.status == TariffSheetStatus.success &&
state.tariffs.isNotEmpty &&
_selectedTariffIndex == null) {
setState(() {
_selectedTariffIndex = 0;
});
}
if (state.status == TariffSheetStatus.failure && state.errorMessage != null) {
ScaffoldMessenger.of(context).hideCurrentSnackBar();
ScaffoldMessenger.of(context).showSnackBar(
@@ -82,6 +92,8 @@ class _TariffSheetState extends State<TariffSheet> {
}
},
builder: (context, state) {
final selectedIndex = _selectedTariffIndex ?? (state.tariffs.isNotEmpty ? 0 : null);
if (state.status == TariffSheetStatus.loading) {
return Align(
alignment: Alignment.bottomCenter,
@@ -283,7 +295,7 @@ class _TariffSheetState extends State<TariffSheet> {
'Далее ${tariff.drivePrice.toStringAsFixed(2)} ${tariff.currency}/мин.',
'Минута на паузе ${tariff.pausePrice.toStringAsFixed(2)} ${tariff.currency}',
],
isSelected: _selectedTariffIndex == index,
isSelected: selectedIndex == index,
isInsurance: state.isInsurance,
tariff: tariff,
onTap: () {
@@ -412,19 +424,20 @@ class _TariffSheetState extends State<TariffSheet> {
height: 56,
width: double.infinity,
fontSize: 16,
enabled: _selectedTariffIndex != null && (state.selectedCard != null || state.useBalance),
onTap: (_selectedTariffIndex != null && (state.selectedCard != null || state.useBalance))
enabled: selectedIndex != null && (state.selectedCard != null || state.useBalance),
onTap: (selectedIndex != null && (state.selectedCard != null || state.useBalance))
? () {
context.read<TariffSheetBloc>().add(
BookScooterPressed(
widget.scooter.id,
state.tariffs[_selectedTariffIndex!].id,
state.tariffs[_selectedTariffIndex!].subscriptionId,
state.tariffs[selectedIndex].id,
state.tariffs[selectedIndex].subscriptionId,
state.useBalance ? null : state.selectedCard?.id,
state.useBalance,
state.isInsurance
)
);
context.read<MapBloc>().add(FetchActiveOrders());
context.pushReplacement('/home/current-rides-sheet');
}
: null,