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

@@ -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,