menu detail page

This commit is contained in:
Efril 2026-01-16 14:41:09 +07:00
parent 44d48d41d4
commit f4f775b9ed
9 changed files with 623 additions and 316 deletions

View File

@ -1,3 +1,7 @@
part of 'theme.dart';
class AppValue {}
class AppValue {
static const double padding = 16;
static const double margin = 16;
static const double borderRadius = 12;
}

View File

@ -55,7 +55,9 @@ class ThemeApp {
backgroundColor: AppColor.primary,
foregroundColor: Colors.white,
elevation: 0,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(AppValue.borderRadius),
),
),
),
inputDecorationTheme: InputDecorationTheme(

View File

@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
import '../../../common/theme/theme.dart';
class QtyButton extends StatelessWidget {
const QtyButton({super.key});
@override
Widget build(BuildContext context) {
return Row(
children: [
InkWell(
child: Container(
height: 35,
width: 35,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
border: Border.all(width: 1, color: AppColor.border),
),
child: Icon(Icons.remove),
),
),
SizedBox(width: 12),
Text('1', style: AppStyle.lg.copyWith(fontWeight: FontWeight.bold)),
SizedBox(width: 12),
InkWell(
child: Container(
height: 35,
width: 35,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
border: Border.all(width: 1, color: AppColor.border),
),
child: Icon(Icons.add),
),
),
],
);
}
}

View File

@ -6,143 +6,147 @@ import '../../../sample/product_sample_data.dart';
class ProductCard extends StatelessWidget {
final Product product;
const ProductCard({super.key, required this.product});
final Function()? onTap;
const ProductCard({super.key, required this.product, this.onTap});
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: AppColor.surface,
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: AppColor.black.withOpacity(0.06),
blurRadius: 8,
offset: Offset(0, 2),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Product image
Expanded(
flex: 3,
child: Stack(
children: [
Container(
width: double.infinity,
decoration: BoxDecoration(
color: AppColor.backgroundLight,
borderRadius: BorderRadius.vertical(
top: Radius.circular(12),
),
),
child: Center(
child: Icon(
Icons.fastfood,
size: 40,
color: AppColor.textLight,
),
),
),
// Availability overlay
if (!product.isAvailable)
return InkWell(
onTap: onTap,
child: Container(
decoration: BoxDecoration(
color: AppColor.surface,
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: AppColor.black.withOpacity(0.06),
blurRadius: 8,
offset: Offset(0, 2),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Product image
Expanded(
flex: 3,
child: Stack(
children: [
Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(
color: AppColor.black.withOpacity(0.6),
color: AppColor.backgroundLight,
borderRadius: BorderRadius.vertical(
top: Radius.circular(12),
),
),
child: Center(
child: Text(
"HABIS",
style: AppStyle.sm.copyWith(
color: AppColor.textWhite,
fontWeight: FontWeight.bold,
),
child: Icon(
Icons.fastfood,
size: 40,
color: AppColor.textLight,
),
),
),
// Rating badge
Positioned(
top: 8,
right: 8,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 6, vertical: 3),
decoration: BoxDecoration(
color: AppColor.surface,
borderRadius: BorderRadius.circular(8),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.star, size: 12, color: AppColor.warning),
SizedBox(width: 2),
Text(
"${product.rating}",
style: AppStyle.xs.copyWith(
color: AppColor.textPrimary,
fontWeight: FontWeight.w600,
// Availability overlay
if (!product.isAvailable)
Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(
color: AppColor.black.withOpacity(0.6),
borderRadius: BorderRadius.vertical(
top: Radius.circular(12),
),
),
child: Center(
child: Text(
"HABIS",
style: AppStyle.sm.copyWith(
color: AppColor.textWhite,
fontWeight: FontWeight.bold,
),
),
],
),
),
),
],
),
),
// Product info
Expanded(
flex: 2,
child: Padding(
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
product.name,
style: AppStyle.md.copyWith(
fontWeight: FontWeight.bold,
color: AppColor.textPrimary,
),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
Spacer(),
// Price and sold count
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
"Rp ${product.price.currencyFormatRp}",
style: AppStyle.md.copyWith(
fontWeight: FontWeight.bold,
color: AppColor.primary,
),
),
Text(
"${product.soldCount} terjual",
style: AppStyle.xs.copyWith(
color: AppColor.textSecondary,
),
),
// Rating badge
Positioned(
top: 8,
right: 8,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 6, vertical: 3),
decoration: BoxDecoration(
color: AppColor.surface,
borderRadius: BorderRadius.circular(8),
),
],
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.star, size: 12, color: AppColor.warning),
SizedBox(width: 2),
Text(
"${product.rating}",
style: AppStyle.xs.copyWith(
color: AppColor.textPrimary,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
],
),
),
),
],
// Product info
Expanded(
flex: 2,
child: Padding(
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
product.name,
style: AppStyle.md.copyWith(
fontWeight: FontWeight.bold,
color: AppColor.textPrimary,
),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
Spacer(),
// Price and sold count
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
"Rp ${product.price.currencyFormatRp}",
style: AppStyle.md.copyWith(
fontWeight: FontWeight.bold,
color: AppColor.primary,
),
),
Text(
"${product.soldCount} terjual",
style: AppStyle.xs.copyWith(
color: AppColor.textSecondary,
),
),
],
),
],
),
),
),
],
),
),
);
}

View File

@ -0,0 +1,43 @@
import 'package:flutter/material.dart';
import '../../../common/extension/extension.dart';
import '../../../common/theme/theme.dart';
class VariantCard extends StatelessWidget {
final String name;
final bool isSelected;
const VariantCard({super.key, required this.name, this.isSelected = false});
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(vertical: 16, horizontal: 8),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(AppValue.borderRadius),
color: isSelected ? AppColor.primary.withOpacity(0.1) : AppColor.white,
border: Border.all(
width: isSelected ? 2 : 1,
color: isSelected ? AppColor.primary : AppColor.border,
),
),
child: Row(
children: [
Expanded(
child: Text(
name,
style: AppStyle.md.copyWith(fontWeight: FontWeight.w600),
),
),
SizedBox(width: 12),
Text(
"+${"2000".currencyFormatRp}",
style: AppStyle.md.copyWith(
color: AppColor.primary,
fontWeight: FontWeight.w500,
),
),
],
),
);
}
}

View File

@ -0,0 +1,166 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import '../../../../../common/extension/extension.dart';
import '../../../../../common/theme/theme.dart';
import '../../../../../sample/product_sample_data.dart';
import '../../../../components/button/button.dart';
import '../../../../components/button/qty_button.dart';
import '../../../../components/card/variant_card.dart';
import '../../../../components/image/image.dart';
@RoutePage()
class MenuDetailPage extends StatefulWidget {
final Product product;
const MenuDetailPage({super.key, required this.product});
@override
State<MenuDetailPage> createState() => _MenuDetailPageState();
}
class _MenuDetailPageState extends State<MenuDetailPage> {
final ScrollController _scrollController = ScrollController();
double _titleOpacity = 0.0;
@override
void initState() {
super.initState();
_scrollController.addListener(_onScroll);
}
void _onScroll() {
// Hitung opacity berdasarkan scroll offset
// Mulai muncul dari offset 150, full opacity di offset 220
double offset = _scrollController.offset;
double newOpacity = ((offset - 150) / 70).clamp(0.0, 1.0);
if (newOpacity != _titleOpacity) {
setState(() => _titleOpacity = newOpacity);
}
}
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: Container(
padding: EdgeInsets.all(AppValue.padding).copyWith(bottom: 24),
decoration: BoxDecoration(
color: AppColor.white,
boxShadow: [
BoxShadow(
color: AppColor.black.withOpacity(0.1),
offset: Offset(2, 0),
blurRadius: 10,
),
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Expanded(flex: 1, child: QtyButton()),
SizedBox(width: 16),
Expanded(
flex: 2,
child: AppElevatedButton(
onPressed: () {},
title: '+ Keranjang ${"27000".currencyFormatRp}',
),
),
],
),
),
body: CustomScrollView(
controller: _scrollController,
slivers: [
SliverAppBar(
expandedHeight: 240,
pinned: true,
backgroundColor: Colors.white,
title: AnimatedOpacity(
opacity: _titleOpacity,
duration: Duration(milliseconds: 200),
child: Text(
widget.product.name,
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
),
),
),
flexibleSpace: FlexibleSpaceBar(
background: Stack(
children: [
ImagePlaceholder(width: double.infinity, height: 240),
],
),
),
),
SliverToBoxAdapter(
child: Container(
padding: EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
widget.product.name,
style: AppStyle.xl.copyWith(fontWeight: FontWeight.bold),
),
SizedBox(height: 4),
Text(
widget.product.description,
style: AppStyle.md.copyWith(fontWeight: FontWeight.w500),
),
SizedBox(height: 8),
Align(
alignment: Alignment.centerRight,
child: Text(
widget.product.price.currencyFormatRp,
style: AppStyle.xxl.copyWith(
color: AppColor.primary,
fontWeight: FontWeight.w700,
),
),
),
],
),
),
),
SliverToBoxAdapter(
child: Container(
width: double.infinity,
height: 6,
decoration: BoxDecoration(color: AppColor.borderLight),
),
),
SliverToBoxAdapter(
child: Container(
padding: EdgeInsets.all(16),
decoration: BoxDecoration(),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Pilih Varian',
style: AppStyle.lg.copyWith(fontWeight: FontWeight.bold),
),
SizedBox(height: 12),
VariantCard(name: 'Small'),
SizedBox(height: 8),
VariantCard(name: 'Normal', isSelected: true),
SizedBox(height: 8),
VariantCard(name: 'Large'),
],
),
),
),
],
),
);
}
}

View File

@ -1,9 +1,11 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import '../../../../common/theme/theme.dart';
import '../../../../sample/product_sample_data.dart';
import '../../../components/card/product_card.dart';
import '../../../components/card/product_empty_card.dart';
import '../../../router/app_router.gr.dart';
class MenuProductSection extends StatelessWidget {
final ProductCategory category;
@ -60,7 +62,12 @@ class MenuProductSection extends StatelessWidget {
),
itemCount: categoryProducts.length,
itemBuilder: (context, index) {
return ProductCard(product: categoryProducts[index]);
return ProductCard(
product: categoryProducts[index],
onTap: () => context.router.push(
MenuDetailRoute(product: categoryProducts[index]),
),
);
},
),
],

View File

@ -77,5 +77,6 @@ class AppRouter extends RootStackRouter {
// Menu
AutoRoute(page: MenuRoute.page),
AutoRoute(page: MenuDetailRoute.page),
];
}

View File

@ -9,28 +9,28 @@
// coverage:ignore-file
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:auto_route/auto_route.dart' as _i36;
import 'package:enaklo/common/data/service_data.dart' as _i38;
import 'package:auto_route/auto_route.dart' as _i37;
import 'package:enaklo/common/data/service_data.dart' as _i40;
import 'package:enaklo/presentation/pages/account/account_my/account_my_page.dart'
as _i1;
import 'package:enaklo/presentation/pages/account/address/address_page.dart'
as _i2;
import 'package:enaklo/presentation/pages/account/payment/payment_page.dart'
as _i26;
as _i27;
import 'package:enaklo/presentation/pages/auth/create_password/create_password_page.dart'
as _i5;
import 'package:enaklo/presentation/pages/auth/login/login_page.dart' as _i14;
import 'package:enaklo/presentation/pages/auth/otp/otp_page.dart' as _i24;
import 'package:enaklo/presentation/pages/auth/otp/otp_page.dart' as _i25;
import 'package:enaklo/presentation/pages/auth/password/password_page.dart'
as _i25;
import 'package:enaklo/presentation/pages/auth/pin/pin_page.dart' as _i27;
as _i26;
import 'package:enaklo/presentation/pages/auth/pin/pin_page.dart' as _i28;
import 'package:enaklo/presentation/pages/auth/register/register_page.dart'
as _i31;
as _i32;
import 'package:enaklo/presentation/pages/coin/coin_page.dart' as _i4;
import 'package:enaklo/presentation/pages/coin/pages/coin_history_page.dart'
as _i3;
import 'package:enaklo/presentation/pages/coin/pages/product_redeem/product_redeem_page.dart'
as _i29;
as _i30;
import 'package:enaklo/presentation/pages/draw/draw_page.dart' as _i9;
import 'package:enaklo/presentation/pages/draw/pages/draw_detail/draw_detail_page.dart'
as _i6;
@ -46,42 +46,45 @@ import 'package:enaklo/presentation/pages/main/main_page.dart' as _i15;
import 'package:enaklo/presentation/pages/main/pages/home/home_page.dart'
as _i13;
import 'package:enaklo/presentation/pages/main/pages/order/order_page.dart'
as _i23;
as _i24;
import 'package:enaklo/presentation/pages/main/pages/profile/profile_page.dart'
as _i30;
as _i31;
import 'package:enaklo/presentation/pages/main/pages/voucher/voucher_page.dart'
as _i35;
import 'package:enaklo/presentation/pages/menu/menu_page.dart' as _i16;
import 'package:enaklo/presentation/pages/merchant/merchant_page.dart' as _i18;
as _i36;
import 'package:enaklo/presentation/pages/menu/menu_page.dart' as _i17;
import 'package:enaklo/presentation/pages/menu/pages/menu_detail/menu_detail_page.dart'
as _i16;
import 'package:enaklo/presentation/pages/merchant/merchant_page.dart' as _i19;
import 'package:enaklo/presentation/pages/merchant/pages/merchant_detail/merchant_detail_page.dart'
as _i17;
as _i18;
import 'package:enaklo/presentation/pages/mini_games/ferris_wheel/ferris_wheel_page.dart'
as _i12;
import 'package:enaklo/presentation/pages/mini_games/mistery_box/mistery_box_page.dart'
as _i19;
import 'package:enaklo/presentation/pages/notification/notification_page.dart'
as _i20;
import 'package:enaklo/presentation/pages/onboarding/onboarding_page.dart'
import 'package:enaklo/presentation/pages/notification/notification_page.dart'
as _i21;
import 'package:enaklo/presentation/pages/order/order_detail/order_detail_page.dart'
import 'package:enaklo/presentation/pages/onboarding/onboarding_page.dart'
as _i22;
import 'package:enaklo/presentation/pages/point/point_page.dart' as _i28;
import 'package:enaklo/presentation/pages/reward/reward_page.dart' as _i32;
import 'package:enaklo/presentation/pages/splash/splash_page.dart' as _i33;
import 'package:enaklo/presentation/pages/order/order_detail/order_detail_page.dart'
as _i23;
import 'package:enaklo/presentation/pages/point/point_page.dart' as _i29;
import 'package:enaklo/presentation/pages/reward/reward_page.dart' as _i33;
import 'package:enaklo/presentation/pages/splash/splash_page.dart' as _i34;
import 'package:enaklo/presentation/pages/voucher/voucher_detail/voucher_detail_page.dart'
as _i34;
import 'package:enaklo/sample/sample_data.dart' as _i39;
import 'package:flutter/material.dart' as _i37;
as _i35;
import 'package:enaklo/sample/product_sample_data.dart' as _i39;
import 'package:enaklo/sample/sample_data.dart' as _i41;
import 'package:flutter/material.dart' as _i38;
/// generated route for
/// [_i1.AccountMyPage]
class AccountMyRoute extends _i36.PageRouteInfo<void> {
const AccountMyRoute({List<_i36.PageRouteInfo>? children})
class AccountMyRoute extends _i37.PageRouteInfo<void> {
const AccountMyRoute({List<_i37.PageRouteInfo>? children})
: super(AccountMyRoute.name, initialChildren: children);
static const String name = 'AccountMyRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i1.AccountMyPage();
@ -91,13 +94,13 @@ class AccountMyRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i2.AddressPage]
class AddressRoute extends _i36.PageRouteInfo<void> {
const AddressRoute({List<_i36.PageRouteInfo>? children})
class AddressRoute extends _i37.PageRouteInfo<void> {
const AddressRoute({List<_i37.PageRouteInfo>? children})
: super(AddressRoute.name, initialChildren: children);
static const String name = 'AddressRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i2.AddressPage();
@ -107,13 +110,13 @@ class AddressRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i3.CoinHistoryPage]
class CoinHistoryRoute extends _i36.PageRouteInfo<void> {
const CoinHistoryRoute({List<_i36.PageRouteInfo>? children})
class CoinHistoryRoute extends _i37.PageRouteInfo<void> {
const CoinHistoryRoute({List<_i37.PageRouteInfo>? children})
: super(CoinHistoryRoute.name, initialChildren: children);
static const String name = 'CoinHistoryRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i3.CoinHistoryPage();
@ -123,13 +126,13 @@ class CoinHistoryRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i4.CoinPage]
class CoinRoute extends _i36.PageRouteInfo<void> {
const CoinRoute({List<_i36.PageRouteInfo>? children})
class CoinRoute extends _i37.PageRouteInfo<void> {
const CoinRoute({List<_i37.PageRouteInfo>? children})
: super(CoinRoute.name, initialChildren: children);
static const String name = 'CoinRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i4.CoinPage();
@ -139,11 +142,11 @@ class CoinRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i5.CreatePasswordPage]
class CreatePasswordRoute extends _i36.PageRouteInfo<CreatePasswordRouteArgs> {
class CreatePasswordRoute extends _i37.PageRouteInfo<CreatePasswordRouteArgs> {
CreatePasswordRoute({
_i37.Key? key,
_i38.Key? key,
required String registrationToken,
List<_i36.PageRouteInfo>? children,
List<_i37.PageRouteInfo>? children,
}) : super(
CreatePasswordRoute.name,
args: CreatePasswordRouteArgs(
@ -155,11 +158,11 @@ class CreatePasswordRoute extends _i36.PageRouteInfo<CreatePasswordRouteArgs> {
static const String name = 'CreatePasswordRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<CreatePasswordRouteArgs>();
return _i36.WrappedRoute(
return _i37.WrappedRoute(
child: _i5.CreatePasswordPage(
key: args.key,
registrationToken: args.registrationToken,
@ -172,7 +175,7 @@ class CreatePasswordRoute extends _i36.PageRouteInfo<CreatePasswordRouteArgs> {
class CreatePasswordRouteArgs {
const CreatePasswordRouteArgs({this.key, required this.registrationToken});
final _i37.Key? key;
final _i38.Key? key;
final String registrationToken;
@ -184,13 +187,13 @@ class CreatePasswordRouteArgs {
/// generated route for
/// [_i6.DrawDetailPage]
class DrawDetailRoute extends _i36.PageRouteInfo<void> {
const DrawDetailRoute({List<_i36.PageRouteInfo>? children})
class DrawDetailRoute extends _i37.PageRouteInfo<void> {
const DrawDetailRoute({List<_i37.PageRouteInfo>? children})
: super(DrawDetailRoute.name, initialChildren: children);
static const String name = 'DrawDetailRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i6.DrawDetailPage();
@ -200,13 +203,13 @@ class DrawDetailRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i7.DrawInfoPage]
class DrawInfoRoute extends _i36.PageRouteInfo<void> {
const DrawInfoRoute({List<_i36.PageRouteInfo>? children})
class DrawInfoRoute extends _i37.PageRouteInfo<void> {
const DrawInfoRoute({List<_i37.PageRouteInfo>? children})
: super(DrawInfoRoute.name, initialChildren: children);
static const String name = 'DrawInfoRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i7.DrawInfoPage();
@ -216,13 +219,13 @@ class DrawInfoRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i8.DrawMyNumberPage]
class DrawMyNumberRoute extends _i36.PageRouteInfo<void> {
const DrawMyNumberRoute({List<_i36.PageRouteInfo>? children})
class DrawMyNumberRoute extends _i37.PageRouteInfo<void> {
const DrawMyNumberRoute({List<_i37.PageRouteInfo>? children})
: super(DrawMyNumberRoute.name, initialChildren: children);
static const String name = 'DrawMyNumberRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i8.DrawMyNumberPage();
@ -232,13 +235,13 @@ class DrawMyNumberRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i9.DrawPage]
class DrawRoute extends _i36.PageRouteInfo<void> {
const DrawRoute({List<_i36.PageRouteInfo>? children})
class DrawRoute extends _i37.PageRouteInfo<void> {
const DrawRoute({List<_i37.PageRouteInfo>? children})
: super(DrawRoute.name, initialChildren: children);
static const String name = 'DrawRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i9.DrawPage();
@ -248,13 +251,13 @@ class DrawRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i10.DrawTodayPage]
class DrawTodayRoute extends _i36.PageRouteInfo<void> {
const DrawTodayRoute({List<_i36.PageRouteInfo>? children})
class DrawTodayRoute extends _i37.PageRouteInfo<void> {
const DrawTodayRoute({List<_i37.PageRouteInfo>? children})
: super(DrawTodayRoute.name, initialChildren: children);
static const String name = 'DrawTodayRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i10.DrawTodayPage();
@ -264,13 +267,13 @@ class DrawTodayRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i11.DrawWinnerPage]
class DrawWinnerRoute extends _i36.PageRouteInfo<void> {
const DrawWinnerRoute({List<_i36.PageRouteInfo>? children})
class DrawWinnerRoute extends _i37.PageRouteInfo<void> {
const DrawWinnerRoute({List<_i37.PageRouteInfo>? children})
: super(DrawWinnerRoute.name, initialChildren: children);
static const String name = 'DrawWinnerRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i11.DrawWinnerPage();
@ -280,29 +283,29 @@ class DrawWinnerRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i12.FerrisWheelPage]
class FerrisWheelRoute extends _i36.PageRouteInfo<void> {
const FerrisWheelRoute({List<_i36.PageRouteInfo>? children})
class FerrisWheelRoute extends _i37.PageRouteInfo<void> {
const FerrisWheelRoute({List<_i37.PageRouteInfo>? children})
: super(FerrisWheelRoute.name, initialChildren: children);
static const String name = 'FerrisWheelRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return _i36.WrappedRoute(child: const _i12.FerrisWheelPage());
return _i37.WrappedRoute(child: const _i12.FerrisWheelPage());
},
);
}
/// generated route for
/// [_i13.HomePage]
class HomeRoute extends _i36.PageRouteInfo<void> {
const HomeRoute({List<_i36.PageRouteInfo>? children})
class HomeRoute extends _i37.PageRouteInfo<void> {
const HomeRoute({List<_i37.PageRouteInfo>? children})
: super(HomeRoute.name, initialChildren: children);
static const String name = 'HomeRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i13.HomePage();
@ -312,29 +315,29 @@ class HomeRoute extends _i36.PageRouteInfo<void> {
/// generated route for
/// [_i14.LoginPage]
class LoginRoute extends _i36.PageRouteInfo<void> {
const LoginRoute({List<_i36.PageRouteInfo>? children})
class LoginRoute extends _i37.PageRouteInfo<void> {
const LoginRoute({List<_i37.PageRouteInfo>? children})
: super(LoginRoute.name, initialChildren: children);
static const String name = 'LoginRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return _i36.WrappedRoute(child: const _i14.LoginPage());
return _i37.WrappedRoute(child: const _i14.LoginPage());
},
);
}
/// generated route for
/// [_i15.MainPage]
class MainRoute extends _i36.PageRouteInfo<void> {
const MainRoute({List<_i36.PageRouteInfo>? children})
class MainRoute extends _i37.PageRouteInfo<void> {
const MainRoute({List<_i37.PageRouteInfo>? children})
: super(MainRoute.name, initialChildren: children);
static const String name = 'MainRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i15.MainPage();
@ -343,12 +346,49 @@ class MainRoute extends _i36.PageRouteInfo<void> {
}
/// generated route for
/// [_i16.MenuPage]
class MenuRoute extends _i36.PageRouteInfo<MenuRouteArgs> {
/// [_i16.MenuDetailPage]
class MenuDetailRoute extends _i37.PageRouteInfo<MenuDetailRouteArgs> {
MenuDetailRoute({
_i38.Key? key,
required _i39.Product product,
List<_i37.PageRouteInfo>? children,
}) : super(
MenuDetailRoute.name,
args: MenuDetailRouteArgs(key: key, product: product),
initialChildren: children,
);
static const String name = 'MenuDetailRoute';
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<MenuDetailRouteArgs>();
return _i16.MenuDetailPage(key: args.key, product: args.product);
},
);
}
class MenuDetailRouteArgs {
const MenuDetailRouteArgs({this.key, required this.product});
final _i38.Key? key;
final _i39.Product product;
@override
String toString() {
return 'MenuDetailRouteArgs{key: $key, product: $product}';
}
}
/// generated route for
/// [_i17.MenuPage]
class MenuRoute extends _i37.PageRouteInfo<MenuRouteArgs> {
MenuRoute({
_i37.Key? key,
required _i38.Service service,
List<_i36.PageRouteInfo>? children,
_i38.Key? key,
required _i40.Service service,
List<_i37.PageRouteInfo>? children,
}) : super(
MenuRoute.name,
args: MenuRouteArgs(key: key, service: service),
@ -357,11 +397,11 @@ class MenuRoute extends _i36.PageRouteInfo<MenuRouteArgs> {
static const String name = 'MenuRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<MenuRouteArgs>();
return _i16.MenuPage(key: args.key, service: args.service);
return _i17.MenuPage(key: args.key, service: args.service);
},
);
}
@ -369,9 +409,9 @@ class MenuRoute extends _i36.PageRouteInfo<MenuRouteArgs> {
class MenuRouteArgs {
const MenuRouteArgs({this.key, required this.service});
final _i37.Key? key;
final _i38.Key? key;
final _i38.Service service;
final _i40.Service service;
@override
String toString() {
@ -380,12 +420,12 @@ class MenuRouteArgs {
}
/// generated route for
/// [_i17.MerchantDetailPage]
class MerchantDetailRoute extends _i36.PageRouteInfo<MerchantDetailRouteArgs> {
/// [_i18.MerchantDetailPage]
class MerchantDetailRoute extends _i37.PageRouteInfo<MerchantDetailRouteArgs> {
MerchantDetailRoute({
_i37.Key? key,
required _i39.MerchantModel merchant,
List<_i36.PageRouteInfo>? children,
_i38.Key? key,
required _i41.MerchantModel merchant,
List<_i37.PageRouteInfo>? children,
}) : super(
MerchantDetailRoute.name,
args: MerchantDetailRouteArgs(key: key, merchant: merchant),
@ -394,11 +434,11 @@ class MerchantDetailRoute extends _i36.PageRouteInfo<MerchantDetailRouteArgs> {
static const String name = 'MerchantDetailRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<MerchantDetailRouteArgs>();
return _i17.MerchantDetailPage(key: args.key, merchant: args.merchant);
return _i18.MerchantDetailPage(key: args.key, merchant: args.merchant);
},
);
}
@ -406,9 +446,9 @@ class MerchantDetailRoute extends _i36.PageRouteInfo<MerchantDetailRouteArgs> {
class MerchantDetailRouteArgs {
const MerchantDetailRouteArgs({this.key, required this.merchant});
final _i37.Key? key;
final _i38.Key? key;
final _i39.MerchantModel merchant;
final _i41.MerchantModel merchant;
@override
String toString() {
@ -417,76 +457,76 @@ class MerchantDetailRouteArgs {
}
/// generated route for
/// [_i18.MerchantPage]
class MerchantRoute extends _i36.PageRouteInfo<void> {
const MerchantRoute({List<_i36.PageRouteInfo>? children})
/// [_i19.MerchantPage]
class MerchantRoute extends _i37.PageRouteInfo<void> {
const MerchantRoute({List<_i37.PageRouteInfo>? children})
: super(MerchantRoute.name, initialChildren: children);
static const String name = 'MerchantRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i18.MerchantPage();
return const _i19.MerchantPage();
},
);
}
/// generated route for
/// [_i19.MisteryBoxPage]
class MisteryBoxRoute extends _i36.PageRouteInfo<void> {
const MisteryBoxRoute({List<_i36.PageRouteInfo>? children})
/// [_i20.MisteryBoxPage]
class MisteryBoxRoute extends _i37.PageRouteInfo<void> {
const MisteryBoxRoute({List<_i37.PageRouteInfo>? children})
: super(MisteryBoxRoute.name, initialChildren: children);
static const String name = 'MisteryBoxRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i19.MisteryBoxPage();
return const _i20.MisteryBoxPage();
},
);
}
/// generated route for
/// [_i20.NotificationPage]
class NotificationRoute extends _i36.PageRouteInfo<void> {
const NotificationRoute({List<_i36.PageRouteInfo>? children})
/// [_i21.NotificationPage]
class NotificationRoute extends _i37.PageRouteInfo<void> {
const NotificationRoute({List<_i37.PageRouteInfo>? children})
: super(NotificationRoute.name, initialChildren: children);
static const String name = 'NotificationRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i20.NotificationPage();
return const _i21.NotificationPage();
},
);
}
/// generated route for
/// [_i21.OnboardingPage]
class OnboardingRoute extends _i36.PageRouteInfo<void> {
const OnboardingRoute({List<_i36.PageRouteInfo>? children})
/// [_i22.OnboardingPage]
class OnboardingRoute extends _i37.PageRouteInfo<void> {
const OnboardingRoute({List<_i37.PageRouteInfo>? children})
: super(OnboardingRoute.name, initialChildren: children);
static const String name = 'OnboardingRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i21.OnboardingPage();
return const _i22.OnboardingPage();
},
);
}
/// generated route for
/// [_i22.OrderDetailPage]
class OrderDetailRoute extends _i36.PageRouteInfo<OrderDetailRouteArgs> {
/// [_i23.OrderDetailPage]
class OrderDetailRoute extends _i37.PageRouteInfo<OrderDetailRouteArgs> {
OrderDetailRoute({
_i37.Key? key,
required _i23.Order order,
List<_i36.PageRouteInfo>? children,
_i38.Key? key,
required _i24.Order order,
List<_i37.PageRouteInfo>? children,
}) : super(
OrderDetailRoute.name,
args: OrderDetailRouteArgs(key: key, order: order),
@ -495,11 +535,11 @@ class OrderDetailRoute extends _i36.PageRouteInfo<OrderDetailRouteArgs> {
static const String name = 'OrderDetailRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<OrderDetailRouteArgs>();
return _i22.OrderDetailPage(key: args.key, order: args.order);
return _i23.OrderDetailPage(key: args.key, order: args.order);
},
);
}
@ -507,9 +547,9 @@ class OrderDetailRoute extends _i36.PageRouteInfo<OrderDetailRouteArgs> {
class OrderDetailRouteArgs {
const OrderDetailRouteArgs({this.key, required this.order});
final _i37.Key? key;
final _i38.Key? key;
final _i23.Order order;
final _i24.Order order;
@override
String toString() {
@ -518,29 +558,29 @@ class OrderDetailRouteArgs {
}
/// generated route for
/// [_i23.OrderPage]
class OrderRoute extends _i36.PageRouteInfo<void> {
const OrderRoute({List<_i36.PageRouteInfo>? children})
/// [_i24.OrderPage]
class OrderRoute extends _i37.PageRouteInfo<void> {
const OrderRoute({List<_i37.PageRouteInfo>? children})
: super(OrderRoute.name, initialChildren: children);
static const String name = 'OrderRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i23.OrderPage();
return const _i24.OrderPage();
},
);
}
/// generated route for
/// [_i24.OtpPage]
class OtpRoute extends _i36.PageRouteInfo<OtpRouteArgs> {
/// [_i25.OtpPage]
class OtpRoute extends _i37.PageRouteInfo<OtpRouteArgs> {
OtpRoute({
_i37.Key? key,
_i38.Key? key,
required String registrationToken,
required String phoneNumber,
List<_i36.PageRouteInfo>? children,
List<_i37.PageRouteInfo>? children,
}) : super(
OtpRoute.name,
args: OtpRouteArgs(
@ -553,12 +593,12 @@ class OtpRoute extends _i36.PageRouteInfo<OtpRouteArgs> {
static const String name = 'OtpRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<OtpRouteArgs>();
return _i36.WrappedRoute(
child: _i24.OtpPage(
return _i37.WrappedRoute(
child: _i25.OtpPage(
key: args.key,
registrationToken: args.registrationToken,
phoneNumber: args.phoneNumber,
@ -575,7 +615,7 @@ class OtpRouteArgs {
required this.phoneNumber,
});
final _i37.Key? key;
final _i38.Key? key;
final String registrationToken;
@ -588,12 +628,12 @@ class OtpRouteArgs {
}
/// generated route for
/// [_i25.PasswordPage]
class PasswordRoute extends _i36.PageRouteInfo<PasswordRouteArgs> {
/// [_i26.PasswordPage]
class PasswordRoute extends _i37.PageRouteInfo<PasswordRouteArgs> {
PasswordRoute({
_i37.Key? key,
_i38.Key? key,
required String phoneNumber,
List<_i36.PageRouteInfo>? children,
List<_i37.PageRouteInfo>? children,
}) : super(
PasswordRoute.name,
args: PasswordRouteArgs(key: key, phoneNumber: phoneNumber),
@ -602,12 +642,12 @@ class PasswordRoute extends _i36.PageRouteInfo<PasswordRouteArgs> {
static const String name = 'PasswordRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<PasswordRouteArgs>();
return _i36.WrappedRoute(
child: _i25.PasswordPage(key: args.key, phoneNumber: args.phoneNumber),
return _i37.WrappedRoute(
child: _i26.PasswordPage(key: args.key, phoneNumber: args.phoneNumber),
);
},
);
@ -616,7 +656,7 @@ class PasswordRoute extends _i36.PageRouteInfo<PasswordRouteArgs> {
class PasswordRouteArgs {
const PasswordRouteArgs({this.key, required this.phoneNumber});
final _i37.Key? key;
final _i38.Key? key;
final String phoneNumber;
@ -627,29 +667,29 @@ class PasswordRouteArgs {
}
/// generated route for
/// [_i26.PaymentPage]
class PaymentRoute extends _i36.PageRouteInfo<void> {
const PaymentRoute({List<_i36.PageRouteInfo>? children})
/// [_i27.PaymentPage]
class PaymentRoute extends _i37.PageRouteInfo<void> {
const PaymentRoute({List<_i37.PageRouteInfo>? children})
: super(PaymentRoute.name, initialChildren: children);
static const String name = 'PaymentRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i26.PaymentPage();
return const _i27.PaymentPage();
},
);
}
/// generated route for
/// [_i27.PinPage]
class PinRoute extends _i36.PageRouteInfo<PinRouteArgs> {
/// [_i28.PinPage]
class PinRoute extends _i37.PageRouteInfo<PinRouteArgs> {
PinRoute({
_i37.Key? key,
_i38.Key? key,
bool isCreatePin = true,
String? title,
List<_i36.PageRouteInfo>? children,
List<_i37.PageRouteInfo>? children,
}) : super(
PinRoute.name,
args: PinRouteArgs(key: key, isCreatePin: isCreatePin, title: title),
@ -658,13 +698,13 @@ class PinRoute extends _i36.PageRouteInfo<PinRouteArgs> {
static const String name = 'PinRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<PinRouteArgs>(
orElse: () => const PinRouteArgs(),
);
return _i27.PinPage(
return _i28.PinPage(
key: args.key,
isCreatePin: args.isCreatePin,
title: args.title,
@ -676,7 +716,7 @@ class PinRoute extends _i36.PageRouteInfo<PinRouteArgs> {
class PinRouteArgs {
const PinRouteArgs({this.key, this.isCreatePin = true, this.title});
final _i37.Key? key;
final _i38.Key? key;
final bool isCreatePin;
@ -689,29 +729,29 @@ class PinRouteArgs {
}
/// generated route for
/// [_i28.PointPage]
class PointRoute extends _i36.PageRouteInfo<void> {
const PointRoute({List<_i36.PageRouteInfo>? children})
/// [_i29.PointPage]
class PointRoute extends _i37.PageRouteInfo<void> {
const PointRoute({List<_i37.PageRouteInfo>? children})
: super(PointRoute.name, initialChildren: children);
static const String name = 'PointRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i28.PointPage();
return const _i29.PointPage();
},
);
}
/// generated route for
/// [_i29.ProductRedeemPage]
class ProductRedeemRoute extends _i36.PageRouteInfo<ProductRedeemRouteArgs> {
/// [_i30.ProductRedeemPage]
class ProductRedeemRoute extends _i37.PageRouteInfo<ProductRedeemRouteArgs> {
ProductRedeemRoute({
_i37.Key? key,
_i38.Key? key,
required _i4.Product product,
required _i4.PointCard pointCard,
List<_i36.PageRouteInfo>? children,
List<_i37.PageRouteInfo>? children,
}) : super(
ProductRedeemRoute.name,
args: ProductRedeemRouteArgs(
@ -724,11 +764,11 @@ class ProductRedeemRoute extends _i36.PageRouteInfo<ProductRedeemRouteArgs> {
static const String name = 'ProductRedeemRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<ProductRedeemRouteArgs>();
return _i29.ProductRedeemPage(
return _i30.ProductRedeemPage(
key: args.key,
product: args.product,
pointCard: args.pointCard,
@ -744,7 +784,7 @@ class ProductRedeemRouteArgs {
required this.pointCard,
});
final _i37.Key? key;
final _i38.Key? key;
final _i4.Product product;
@ -757,28 +797,28 @@ class ProductRedeemRouteArgs {
}
/// generated route for
/// [_i30.ProfilePage]
class ProfileRoute extends _i36.PageRouteInfo<void> {
const ProfileRoute({List<_i36.PageRouteInfo>? children})
/// [_i31.ProfilePage]
class ProfileRoute extends _i37.PageRouteInfo<void> {
const ProfileRoute({List<_i37.PageRouteInfo>? children})
: super(ProfileRoute.name, initialChildren: children);
static const String name = 'ProfileRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return _i36.WrappedRoute(child: const _i30.ProfilePage());
return _i37.WrappedRoute(child: const _i31.ProfilePage());
},
);
}
/// generated route for
/// [_i31.RegisterPage]
class RegisterRoute extends _i36.PageRouteInfo<RegisterRouteArgs> {
/// [_i32.RegisterPage]
class RegisterRoute extends _i37.PageRouteInfo<RegisterRouteArgs> {
RegisterRoute({
_i37.Key? key,
_i38.Key? key,
required String phoneNumber,
List<_i36.PageRouteInfo>? children,
List<_i37.PageRouteInfo>? children,
}) : super(
RegisterRoute.name,
args: RegisterRouteArgs(key: key, phoneNumber: phoneNumber),
@ -787,12 +827,12 @@ class RegisterRoute extends _i36.PageRouteInfo<RegisterRouteArgs> {
static const String name = 'RegisterRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
final args = data.argsAs<RegisterRouteArgs>();
return _i36.WrappedRoute(
child: _i31.RegisterPage(key: args.key, phoneNumber: args.phoneNumber),
return _i37.WrappedRoute(
child: _i32.RegisterPage(key: args.key, phoneNumber: args.phoneNumber),
);
},
);
@ -801,7 +841,7 @@ class RegisterRoute extends _i36.PageRouteInfo<RegisterRouteArgs> {
class RegisterRouteArgs {
const RegisterRouteArgs({this.key, required this.phoneNumber});
final _i37.Key? key;
final _i38.Key? key;
final String phoneNumber;
@ -812,65 +852,65 @@ class RegisterRouteArgs {
}
/// generated route for
/// [_i32.RewardPage]
class RewardRoute extends _i36.PageRouteInfo<void> {
const RewardRoute({List<_i36.PageRouteInfo>? children})
/// [_i33.RewardPage]
class RewardRoute extends _i37.PageRouteInfo<void> {
const RewardRoute({List<_i37.PageRouteInfo>? children})
: super(RewardRoute.name, initialChildren: children);
static const String name = 'RewardRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i32.RewardPage();
return const _i33.RewardPage();
},
);
}
/// generated route for
/// [_i33.SplashPage]
class SplashRoute extends _i36.PageRouteInfo<void> {
const SplashRoute({List<_i36.PageRouteInfo>? children})
/// [_i34.SplashPage]
class SplashRoute extends _i37.PageRouteInfo<void> {
const SplashRoute({List<_i37.PageRouteInfo>? children})
: super(SplashRoute.name, initialChildren: children);
static const String name = 'SplashRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i33.SplashPage();
return const _i34.SplashPage();
},
);
}
/// generated route for
/// [_i34.VoucherDetailPage]
class VoucherDetailRoute extends _i36.PageRouteInfo<void> {
const VoucherDetailRoute({List<_i36.PageRouteInfo>? children})
/// [_i35.VoucherDetailPage]
class VoucherDetailRoute extends _i37.PageRouteInfo<void> {
const VoucherDetailRoute({List<_i37.PageRouteInfo>? children})
: super(VoucherDetailRoute.name, initialChildren: children);
static const String name = 'VoucherDetailRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i34.VoucherDetailPage();
return const _i35.VoucherDetailPage();
},
);
}
/// generated route for
/// [_i35.VoucherPage]
class VoucherRoute extends _i36.PageRouteInfo<void> {
const VoucherRoute({List<_i36.PageRouteInfo>? children})
/// [_i36.VoucherPage]
class VoucherRoute extends _i37.PageRouteInfo<void> {
const VoucherRoute({List<_i37.PageRouteInfo>? children})
: super(VoucherRoute.name, initialChildren: children);
static const String name = 'VoucherRoute';
static _i36.PageInfo page = _i36.PageInfo(
static _i37.PageInfo page = _i37.PageInfo(
name,
builder: (data) {
return const _i35.VoucherPage();
return const _i36.VoucherPage();
},
);
}