fix
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:be_happy/presentation/screens/card_binding_result_screen.dart';
|
||||
import 'package:bot_toast/bot_toast.dart';
|
||||
import 'package:be_happy/core/app_colors.dart';
|
||||
import 'package:be_happy/di/service_locator.dart';
|
||||
@@ -43,6 +44,7 @@ import 'package:path/path.dart';
|
||||
|
||||
import '../../domain/entities/scooter.dart';
|
||||
import '../../domain/usecase/activate_subscription_usecase.dart';
|
||||
import '../../domain/usecase/add_payment_card_usecase.dart';
|
||||
import '../../domain/usecase/book_scooter_usecase.dart';
|
||||
import '../../domain/usecase/create_pin_usecase.dart';
|
||||
import '../../domain/usecase/get_address_by_point_usecase.dart';
|
||||
@@ -139,7 +141,8 @@ class AppRouter {
|
||||
createPinUseCase: getIt<CreatePinUseCase>(),
|
||||
verifyPinUsecase: getIt<VerifyPinUseCase>(),
|
||||
isPinSetUsecase: getIt<IsPinSetUsecase>(),
|
||||
)..add(PinScreenStarted()),
|
||||
)
|
||||
..add(PinScreenStarted()),
|
||||
child: const PinLoginScreen(),
|
||||
)
|
||||
),
|
||||
@@ -151,6 +154,26 @@ class AppRouter {
|
||||
path: '/license-agreement',
|
||||
builder: (context, state) => const LicenseAgreementScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: '/card-result',
|
||||
builder: (context, state) {
|
||||
final modeParam = state.uri.queryParameters['status'];
|
||||
|
||||
CardBindingStatus status = CardBindingStatus.success;
|
||||
String title = 'Карта успешно\nпривязана!';
|
||||
|
||||
if (modeParam == 'failed') {
|
||||
status = CardBindingStatus.failed;
|
||||
title = 'Извините, что-то\nпошло не так';
|
||||
}
|
||||
|
||||
return CardBindingResultScreen(
|
||||
status: status,
|
||||
title: title,
|
||||
cardImagePath: 'assets/icons/card_result_screen.png',
|
||||
);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: '/home',
|
||||
builder: (context, state) => const MapScreen(),
|
||||
@@ -237,7 +260,8 @@ class AppRouter {
|
||||
type: MaterialType.transparency,
|
||||
child: BlocProvider(
|
||||
create: (context) =>
|
||||
PaymentMethodSheetBloc(getIt<GetPaymentCardsUsecase>()),
|
||||
PaymentMethodSheetBloc(getIt<GetPaymentCardsUsecase>(),
|
||||
getIt<SetMainPaymentCardUsecase>()),
|
||||
child: PaymentMethodSheet(),
|
||||
),
|
||||
),
|
||||
@@ -297,12 +321,14 @@ class AppRouter {
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: 'scooter/:id',
|
||||
builder: (context, state) =>
|
||||
BlocProvider(
|
||||
path: 'scooter/:id',
|
||||
builder: (context, state) {
|
||||
String address = state.extra as String;
|
||||
return BlocProvider(
|
||||
create: (context) => getIt<ScooterDetailBloc>(),
|
||||
child: ScooterDetailScreen(),
|
||||
),
|
||||
child: ScooterDetailScreen(address: address),
|
||||
);
|
||||
}
|
||||
),
|
||||
GoRoute(
|
||||
path: 'order-photos/:orderId',
|
||||
@@ -371,6 +397,7 @@ class AppRouter {
|
||||
create: (context) =>
|
||||
SubscriptionDetailsBloc(
|
||||
getIt<GetSubscriptionByIdUsecase>(),
|
||||
getIt<GetPaymentCardsUsecase>(),
|
||||
getIt<ActivateSubscriptionUsecase>(),
|
||||
getIt<GetClientSubscriptionsUsecase>(),
|
||||
)
|
||||
@@ -394,24 +421,26 @@ class AppRouter {
|
||||
builder: (context, state) => const NewsScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: 'qr-info',
|
||||
builder: (context, state) => const QRScanInfoScreen(),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'qr-scan',
|
||||
builder: (context, state) => const QrScanScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: 'qr-input',
|
||||
builder: (context, state) => BlocProvider(
|
||||
create: (context) =>
|
||||
ScooterCodeBloc(
|
||||
getScooterByTitleUsecase: getIt<GetScooterByTitleUsecase>(),
|
||||
),
|
||||
child: ScooterCodeInputScreen(),
|
||||
path: 'qr-info',
|
||||
builder: (context, state) => const QRScanInfoScreen(),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'qr-scan',
|
||||
builder: (context, state) => const QrScanScreen(),
|
||||
),
|
||||
),
|
||||
]
|
||||
GoRoute(
|
||||
path: 'qr-input',
|
||||
builder: (context, state) =>
|
||||
BlocProvider(
|
||||
create: (context) =>
|
||||
ScooterCodeBloc(
|
||||
getScooterByTitleUsecase: getIt<
|
||||
GetScooterByTitleUsecase>(),
|
||||
),
|
||||
child: ScooterCodeInputScreen(),
|
||||
),
|
||||
),
|
||||
]
|
||||
),
|
||||
GoRoute(
|
||||
path: 'payment-methods',
|
||||
@@ -423,6 +452,7 @@ class AppRouter {
|
||||
getIt<RemovePaymentCardUsecase>(),
|
||||
getIt<SetMainPaymentCardUsecase>(),
|
||||
getIt<GetProfileUseCase>(),
|
||||
getIt<AddPaymentCardUsecase>(),
|
||||
)
|
||||
..add(PaymentMethodsStarted()),
|
||||
child: PaymentMethodsScreen(),
|
||||
@@ -454,9 +484,9 @@ class AppRouter {
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: 'order-history',
|
||||
builder: (context, state) => const OrderHistoryScreen(),
|
||||
routes: []
|
||||
path: 'order-history',
|
||||
builder: (context, state) => const OrderHistoryScreen(),
|
||||
routes: []
|
||||
),
|
||||
GoRoute(
|
||||
path: 'notifications',
|
||||
@@ -466,6 +496,24 @@ class AppRouter {
|
||||
),
|
||||
],
|
||||
|
||||
onException: (context, state, router) {
|
||||
final location = state.uri.toString();
|
||||
|
||||
if (location.startsWith('com.behappy.app://')) {
|
||||
|
||||
String normalizedPath = location
|
||||
.replaceFirst('com.behappy.app://', '/')
|
||||
.replaceAll('/?', '?')
|
||||
.replaceAll(' ', '');
|
||||
|
||||
print("Нормализованный путь диплинка: $normalizedPath");
|
||||
|
||||
router.go(normalizedPath);
|
||||
} else {
|
||||
print('GoRouter Exception: ${state.error}');
|
||||
}
|
||||
},
|
||||
|
||||
observers: [BotToastNavigatorObserver()],
|
||||
|
||||
redirect: (BuildContext context, GoRouterState state) {
|
||||
|
||||
Reference in New Issue
Block a user