feat: merchant page

This commit is contained in:
efrilm
2025-08-28 01:11:19 +07:00
parent 627de219cb
commit d86c38e77c
12 changed files with 618 additions and 121 deletions
@@ -1,4 +1,6 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import '../../../../../router/app_router.gr.dart';
import 'feature_card.dart';
class HomeFeatureSection extends StatelessWidget {
@@ -27,7 +29,7 @@ class HomeFeatureSection extends StatelessWidget {
icon: Icons.store,
title: 'Merchant',
iconColor: const Color(0xFF388E3C),
onTap: () => print('Navigate to Merchant'),
onTap: () => context.router.push(MerchantRoute()),
),
],
),
@@ -1,6 +1,8 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import '../../../../../../common/theme/theme.dart';
import '../../../../../router/app_router.gr.dart';
import 'popular_merchant_card.dart';
class HomePopularMerchantSection extends StatelessWidget {
@@ -19,22 +21,25 @@ class HomePopularMerchantSection extends StatelessWidget {
style: AppStyle.xl.copyWith(fontWeight: FontWeight.bold),
),
Spacer(),
Row(
children: [
Text(
'Lihat Semua',
style: AppStyle.sm.copyWith(
fontWeight: FontWeight.w500,
InkWell(
onTap: () => context.router.push(MerchantRoute()),
child: Row(
children: [
Text(
'Lihat Semua',
style: AppStyle.sm.copyWith(
fontWeight: FontWeight.w500,
color: AppColor.primary,
),
),
SizedBox(width: 4),
Icon(
Icons.arrow_forward_ios,
size: 12,
color: AppColor.primary,
),
),
SizedBox(width: 4),
Icon(
Icons.arrow_forward_ios,
size: 12,
color: AppColor.primary,
),
],
],
),
),
],
),
@@ -1,3 +1,4 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import '../../../../../common/theme/theme.dart';
@@ -46,8 +47,9 @@ class OrderItem {
enum OrderStatus { pending, processing, completed, cancelled }
@RoutePage()
class OrderPage extends StatefulWidget {
const OrderPage({Key? key}) : super(key: key);
const OrderPage({super.key});
@override
State<OrderPage> createState() => _OrderPageState();
@@ -2,6 +2,7 @@ import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import '../../../../../common/theme/theme.dart';
import '../../../../components/field/field.dart';
import 'widgets/voucher_card.dart';
@RoutePage()
@@ -16,49 +17,9 @@ class VoucherPage extends StatelessWidget {
automaticallyImplyLeading: false,
bottom: PreferredSize(
preferredSize: Size.fromHeight(70),
child: Container(
margin: EdgeInsets.fromLTRB(16, 0, 16, 16),
decoration: BoxDecoration(
color: AppColor.white,
borderRadius: BorderRadius.circular(25),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
blurRadius: 10,
offset: Offset(0, 2),
),
],
),
child: TextField(
cursorColor: AppColor.primary,
decoration: InputDecoration(
hintText: 'Punya kode promo? Masukkan disini',
hintStyle: TextStyle(color: AppColor.textLight, fontSize: 14),
disabledBorder: InputBorder.none,
enabledBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedBorder: InputBorder.none,
prefixIcon: Container(
margin: EdgeInsets.all(12),
width: 24,
height: 24,
decoration: BoxDecoration(
color: AppColor.primary,
borderRadius: BorderRadius.circular(6),
),
child: Icon(
Icons.local_offer,
color: AppColor.white,
size: 14,
),
),
border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(
horizontal: 16,
vertical: 16,
),
),
),
child: SearchTextField(
hintText: 'Punya kode promo? Masukkan disini',
prefixIcon: Icons.local_offer,
),
),
),