6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit 9176f754
Changed files
.../booking_details/bloc/booking_details_bloc.dart | 26 ++-- .../lib/pregistration/preregistration_flow.dart | 17 +-- comwell_key_app/lib/routing/app_router.dart | 28 +++- .../components/catalog/room_upgrade_catalog.dart | 5 - .../components/catalog/service_catalog.dart | 13 -- comwell_key_app/lib/up_sales/up_sales_catalog.dart | 168 +++++++++++---------- 6 files changed, 123 insertions(+), 134 deletions(-)
Diff
diff --git a/comwell_key_app/lib/booking_details/bloc/booking_details_bloc.dart b/comwell_key_app/lib/booking_details/bloc/booking_details_bloc.dart
index f0d5c1b4..8f1e08bf 100644
--- a/comwell_key_app/lib/booking_details/bloc/booking_details_bloc.dart
+++ b/comwell_key_app/lib/booking_details/bloc/booking_details_bloc.dart
@@ -26,7 +26,7 @@ class BookingDetailsBloc
extends Bloc<BookingDetailsEvent, BookingDetailsState> {
late Booking booking;
late User user;
- Timer? _timer;
+ Timer? _timer;
final BookingDetailsRepository bookingDetailsRepository;
final ProfileRepository profileRepository;
final SeosRepository seosRepository = locator<SeosRepository>();
@@ -34,11 +34,10 @@ class BookingDetailsBloc
final UpSalesRepository upSaleRepository;
UpSales? upSales;
-
BookingDetailsBloc(
this.booking, {
required this.bookingDetailsRepository,
- required this.profileRepository,
+ required this.profileRepository,
required this.upSaleRepository,
}) : super(BookingDetailsState.initial(booking)) {
on<InitialEvent>((event, emit) async {
@@ -50,10 +49,8 @@ class BookingDetailsBloc
add(CheckMobileKeys());
add(GetBookingDetailsEvent(booking.confirmationId));
add(GetUserEvent());
- add(GetUpSalesEvent());
+ add(GetUpSalesEvent());
add(UpdateRemainingEvent(getCheckInTime().difference(DateTime.now())));
-
-
} catch (e, st) {
if (kDebugMode) print("err=$e, $st");
emit(state.setupError());
@@ -90,14 +87,14 @@ class BookingDetailsBloc
});
on<GetUserEvent>((event, emit) async {
-
await getUser(emit);
});
}
Future<void> getUpSales(Emitter<BookingDetailsState> emit) async {
- upSales = await upSaleRepository.getUpSales(booking.confirmationId, booking.hotelCode);
-
+ upSales = await upSaleRepository.getUpSales(
+ booking.confirmationId, booking.hotelCode);
+
if (upSales != null) {
emit(state.getUpSales(upSales!));
}
@@ -106,11 +103,9 @@ class BookingDetailsBloc
Future<Booking> getBookingDetails(
Emitter<BookingDetailsState> emit, String bookingId) async {
try {
- final bookingDetails =
- await profileRepository.getBookingDetails(bookingId);
- booking = bookingDetails;
+ booking = await profileRepository.getBookingDetails(bookingId);
- return bookingDetails;
+ return booking;
} catch (e) {
if (kDebugMode) print("err=$e");
emit(state.setupError());
@@ -182,11 +177,10 @@ class BookingDetailsBloc
DateTime getCheckOutTime() => booking.endDate.add(const Duration(hours: 5));
- bool get isHouseKeepingTime => booking.endDate.difference(booking.startDate).inDays > 2;
+ bool get isHouseKeepingTime =>
+ booking.endDate.difference(booking.startDate).inDays > 2;
Future<void> getUser(Emitter<BookingDetailsState> emit) async {
user = await profileRepository.fetchProfileSettings();
}
}
-
-
diff --git a/comwell_key_app/lib/pregistration/preregistration_flow.dart b/comwell_key_app/lib/pregistration/preregistration_flow.dart
index 7183dc6f..c208f4d7 100644
--- a/comwell_key_app/lib/pregistration/preregistration_flow.dart
+++ b/comwell_key_app/lib/pregistration/preregistration_flow.dart
@@ -8,10 +8,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../common/components/shimmer_loader/prereg_flow_shimmer_loader.dart';
-
class PreregistrationFlow extends StatefulWidget {
- final Booking booking;
- const PreregistrationFlow({super.key, required this.booking});
+ const PreregistrationFlow({super.key});
@override
State<PreregistrationFlow> createState() => _PreregistrationFlowState();
@@ -20,11 +18,7 @@ class PreregistrationFlow extends StatefulWidget {
class _PreregistrationFlowState extends State<PreregistrationFlow> {
@override
Widget build(BuildContext context) {
- return BlocProvider(
- create: (context) =>
- PreregistrationCubit(booking: widget.booking, culture: context.locale)..init(),
- child: BlocConsumer<PreregistrationCubit, PreregistrationState>(
- listener: (context, state) {},
+ return BlocBuilder<PreregistrationCubit, PreregistrationState>(
builder: (context, state) {
final cubit = context.read<PreregistrationCubit>();
return Scaffold(
@@ -86,10 +80,9 @@ class _PreregistrationFlowState extends State<PreregistrationFlow> {
),
],
);
- }),
- );
- },
- ),
+ }),
+ );
+ },
);
}
}
diff --git a/comwell_key_app/lib/routing/app_router.dart b/comwell_key_app/lib/routing/app_router.dart
index 51db5238..9fbab150 100644
--- a/comwell_key_app/lib/routing/app_router.dart
+++ b/comwell_key_app/lib/routing/app_router.dart
@@ -38,6 +38,7 @@ import 'package:comwell_key_app/overview/cubit/overview_cubit.dart';
import 'package:comwell_key_app/overview/repository/overview_repository.dart';
import 'package:comwell_key_app/payment_cards/bloc/payment_cards_cubit.dart';
import 'package:comwell_key_app/payment_cards/payment_cards_page.dart';
+import 'package:comwell_key_app/pregistration/cubit/preregistration_cubit.dart';
import 'package:comwell_key_app/pregistration/preregistration_flow.dart';
import 'package:comwell_key_app/profile/cubit/profile_cubit.dart';
import 'package:comwell_key_app/profile/profile_page.dart';
@@ -333,7 +334,12 @@ GoRouter goRouter() {
name: AppRoutes.preregistration.name,
builder: (context, state) {
final booking = state.extra as Booking;
- return PreregistrationFlow(booking: booking);
+ return BlocProvider(
+ create: (context) => PreregistrationCubit(
+ booking: booking, culture: context.locale)
+ ..init(),
+ child: const PreregistrationFlow(),
+ );
}),
GoRoute(
path: "/${AppRoutes.houseKeeping.name}",
@@ -382,7 +388,8 @@ GoRouter goRouter() {
)..init(),
child: child,
),
- transitionsBuilder: (context, animation, secondaryAnimation, child) {
+ transitionsBuilder:
+ (context, animation, secondaryAnimation, child) {
return SlideTransition(
position: Tween<Offset>(
begin: const Offset(1.0, 0.0),
@@ -402,14 +409,15 @@ GoRouter goRouter() {
path: "/${AppRoutes.upSalesCatalog.name}",
name: AppRoutes.upSalesCatalog.name,
builder: (context, state) {
- return const UpSalesCatalog();
+ return const UpSalesCatalog();
},
),
GoRoute(
path: "/${AppRoutes.roomUpgrade.name}",
name: AppRoutes.roomUpgrade.name,
builder: (context, state) {
- return RoomUpgradePage(roomUpgradeList: state.extra as RoomUpgradeList);
+ return RoomUpgradePage(
+ roomUpgradeList: state.extra as RoomUpgradeList);
},
),
GoRoute(
@@ -417,13 +425,15 @@ GoRouter goRouter() {
name: AppRoutes.otherUpgrade.name,
builder: (context, state) {
//with extra
- return AddonUpgradePage(addonUpgrade: state.extra as AddOnUpgrade);
+ return AddonUpgradePage(
+ addonUpgrade: state.extra as AddOnUpgrade);
}),
GoRoute(
path: "/${AppRoutes.servicesUpgrade.name}",
name: AppRoutes.servicesUpgrade.name,
- builder: (context, state) {
- return ServicesUpgradePage(roomUpgradeList: state.extra as RoomUpgradeList);
+ builder: (context, state) {
+ return ServicesUpgradePage(
+ roomUpgradeList: state.extra as RoomUpgradeList);
},
),
GoRoute(
@@ -447,7 +457,9 @@ GoRouter goRouter() {
final extras = state.extra as List<dynamic>;
final selectedUpSales = extras[0] as List<Upgrade>;
final selectedRoomUpgrade = extras[1] as RoomUpgrade?;
- return UpSalesProcessingPage(selectedUpSales: selectedUpSales, selectedRoomUpgrade: selectedRoomUpgrade);
+ return UpSalesProcessingPage(
+ selectedUpSales: selectedUpSales,
+ selectedRoomUpgrade: selectedRoomUpgrade);
},
),
]),
diff --git a/comwell_key_app/lib/up_sales/components/catalog/room_upgrade_catalog.dart b/comwell_key_app/lib/up_sales/components/catalog/room_upgrade_catalog.dart
index eac85560..da44009b 100644
--- a/comwell_key_app/lib/up_sales/components/catalog/room_upgrade_catalog.dart
+++ b/comwell_key_app/lib/up_sales/components/catalog/room_upgrade_catalog.dart
@@ -28,9 +28,6 @@ class RoomUpgradeCatalog extends StatelessWidget {
@override
Widget build(BuildContext context) {
- print("Available room upgrades: ${availableRoomUpgrades.map((e) => e.id)}");
-
-
return SizedBox(
height: 289,
child: ListView.builder(
@@ -39,8 +36,6 @@ class RoomUpgradeCatalog extends StatelessWidget {
itemBuilder: (context, index) {
final roomUpgrade = availableRoomUpgrades.elementAt(index);
final isSelected = selectedRoomUpgrade == roomUpgrade.id;
-
-
return GestureDetector(
onTap: () async {
diff --git a/comwell_key_app/lib/up_sales/components/catalog/service_catalog.dart b/comwell_key_app/lib/up_sales/components/catalog/service_catalog.dart
index 11ae4850..0bd96d1c 100644
--- a/comwell_key_app/lib/up_sales/components/catalog/service_catalog.dart
+++ b/comwell_key_app/lib/up_sales/components/catalog/service_catalog.dart
@@ -28,19 +28,6 @@ class ServiceCatalog extends StatelessWidget {
@override
Widget build(BuildContext context) {
- final theme = Theme.of(context);
-
-
- print("Available services: ${upSales.map((e) => e.id)}");
-
- // if (services.isEmpty) {
- // return Padding(
- // padding: const EdgeInsets.symmetric(horizontal: 16),
- // child: Text('no_services_available'.tr(),
- // style: theme.textTheme.headlineMedium
- // ?.copyWith(color: colorHeadlineText)),
- // );
- // }
return SizedBox(
height: height ?? kUpSalesServiceWidgetHeightSmall,
diff --git a/comwell_key_app/lib/up_sales/up_sales_catalog.dart b/comwell_key_app/lib/up_sales/up_sales_catalog.dart
index f197e529..6138cf6f 100644
--- a/comwell_key_app/lib/up_sales/up_sales_catalog.dart
+++ b/comwell_key_app/lib/up_sales/up_sales_catalog.dart
@@ -19,10 +19,16 @@ class UpSalesCatalog extends StatelessWidget {
final theme = Theme.of(context);
return BlocBuilder<UpSalesCubit, UpSalesState>(builder: (context, state) {
final cubit = context.read<UpSalesCubit>();
- final selectedRoomUpgrade = cubit.state.selectedRoomUpgrade.isEmpty ? null : cubit.upSales.roomUpgrades.firstWhere((e) => e.id == cubit.state.selectedRoomUpgrade);
- print("selectedRoomUpgrade in up sales catalog: ${selectedRoomUpgrade}");
-
- print("selectedUpSales in up sales catalog: ${cubit.state.selectedUpSales}");
+ final serviceUpgrades = cubit.upSales.addOnUpgrades
+ .where((upgrade) => upgrade.isService)
+ .toList();
+ final addonUpgrade = cubit.upSales.addOnUpgrades
+ .where((upgrade) => !upgrade.isService)
+ .toList();
+ final selectedRoomUpgrade = cubit.state.selectedRoomUpgrade.isEmpty
+ ? null
+ : cubit.upSales.roomUpgrades
+ .firstWhere((e) => e.id == cubit.state.selectedRoomUpgrade);
return Scaffold(
appBar: const ComwellAppBar(),
@@ -44,80 +50,82 @@ class UpSalesCatalog extends StatelessWidget {
style: theme.textTheme.headlineLarge),
),
const SizedBox(height: 40),
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 16),
- child: Text('services'.tr(),
- style: theme.textTheme.headlineMedium),
- ),
- const SizedBox(height: 8),
- ServiceCatalog(
- upSales: cubit.upSales.addOnUpgrades
- .where((upgrade) => upgrade.isService)
- .toList(),
- selectedUpSales: cubit.state.selectedUpSales,
- onServiceSelected: (upgrade, isSelected) {
- if (isSelected) {
- cubit.removeUpgrade(upgrade);
- } else {
- cubit.addSelected(upgrade);
- }
- },
- onTap: (upgrade) {
- final isSelected =
- cubit.state.selectedUpSales.any((e) => e.id == upgrade.id);
- if (isSelected) {
- cubit.removeUpgrade(upgrade);
- } else {
- cubit.addSelected(upgrade);
- }
- },
- ),
- const SizedBox(height: 24),
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 16),
- child: Text('room_upgrades'.tr(),
- style: theme.textTheme.headlineMedium),
- ),
- const SizedBox(height: 8),
- RoomUpgradeCatalog(
- availableRoomUpgrades: cubit.upSales.roomUpgrades,
- selectedRoomUpgrade: cubit.state.selectedRoomUpgrade,
- selectedUpSales: cubit.state.selectedUpSales,
- onRoomUpgradeSelected: (upgrade, isSelected) {
- if (isSelected) {
- cubit.removeUpgrade(upgrade);
- } else {
- cubit.addSelected(upgrade);
- }
- },
- onTap: (upgrade) {
- final isSelected =
- cubit.state.selectedRoomUpgrade == upgrade.id;
- if (isSelected) {
- cubit.removeUpgrade(upgrade);
- } else {
- cubit.addSelected(upgrade);
- }
- },
- ),
+ if (serviceUpgrades.isNotEmpty) ...[
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 16),
+ child: Text('services'.tr(),
+ style: theme.textTheme.headlineMedium),
+ ),
+ const SizedBox(height: 8),
+ ServiceCatalog(
+ upSales: serviceUpgrades,
+ selectedUpSales: cubit.state.selectedUpSales,
+ onServiceSelected: (upgrade, isSelected) {
+ if (isSelected) {
+ cubit.removeUpgrade(upgrade);
+ } else {
+ cubit.addSelected(upgrade);
+ }
+ },
+ onTap: (upgrade) {
+ final isSelected = cubit.state.selectedUpSales
+ .any((e) => e.id == upgrade.id);
+ if (isSelected) {
+ cubit.removeUpgrade(upgrade);
+ } else {
+ cubit.addSelected(upgrade);
+ }
+ },
+ ),
+ ],
const SizedBox(height: 24),
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 16),
- child: Text('other_up_sales'.tr(),
- style: theme.textTheme.headlineMedium),
- ),
- const SizedBox(height: 8),
- AddOnUpgradeCatalog(
- addOnUpgrades: cubit.upSales.addOnUpgrades
- .where((upgrade) => !upgrade.isService)
- .toList(),
- selectedUpSales: cubit.state.selectedUpSales
- .whereType<AddOnUpgrade>()
- .toList(),
- onAddOnUpgradeSelected: (upgrade) {
- cubit.updateAddonUpgradeQuantity(upgrade);
- },
- ),
+ if (cubit.upSales.roomUpgrades.isNotEmpty) ...[
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 16),
+ child: Text('room_upgrades'.tr(),
+ style: theme.textTheme.headlineMedium),
+ ),
+ const SizedBox(height: 8),
+ RoomUpgradeCatalog(
+ availableRoomUpgrades: cubit.upSales.roomUpgrades,
+ selectedRoomUpgrade: cubit.state.selectedRoomUpgrade,
+ selectedUpSales: cubit.state.selectedUpSales,
+ onRoomUpgradeSelected: (upgrade, isSelected) {
+ if (isSelected) {
+ cubit.removeUpgrade(upgrade);
+ } else {
+ cubit.addSelected(upgrade);
+ }
+ },
+ onTap: (upgrade) {
+ final isSelected =
+ cubit.state.selectedRoomUpgrade == upgrade.id;
+ if (isSelected) {
+ cubit.removeUpgrade(upgrade);
+ } else {
+ cubit.addSelected(upgrade);
+ }
+ },
+ ),
+ const SizedBox(height: 24),
+ ],
+ if (addonUpgrade.isNotEmpty) ...[
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 16),
+ child: Text('other_up_sales'.tr(),
+ style: theme.textTheme.headlineMedium),
+ ),
+ const SizedBox(height: 8),
+ AddOnUpgradeCatalog(
+ addOnUpgrades: addonUpgrade,
+ selectedUpSales: cubit.state.selectedUpSales
+ .whereType<AddOnUpgrade>()
+ .toList(),
+ onAddOnUpgradeSelected: (upgrade) {
+ cubit.updateAddonUpgradeQuantity(upgrade);
+ },
+ ),
+ ],
const SizedBox(height: 24),
],
),
@@ -126,9 +134,9 @@ class UpSalesCatalog extends StatelessWidget {
bottomNavigationBar: Column(mainAxisSize: MainAxisSize.min, children: [
const Divider(color: colorDivider),
UpSalesContinueButton(
- selectedUpSales: cubit.state.selectedUpSales,
- extrasTotalPrice: cubit.extrasTotalPrice,
- selectedRoomUpgrade: selectedRoomUpgrade,
+ selectedUpSales: cubit.state.selectedUpSales,
+ extrasTotalPrice: cubit.extrasTotalPrice,
+ selectedRoomUpgrade: selectedRoomUpgrade,
)
]),
);