Commit ba590246 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

All testes clear and updated

parents 558ac0d8 cdbe1e86
This image diff could not be displayed because it is too large. You can view the blob instead.
...@@ -271,6 +271,7 @@ class HelpAndEnquiryProvider extends ChangeNotifier { ...@@ -271,6 +271,7 @@ class HelpAndEnquiryProvider extends ChangeNotifier {
orderId, orderId,
otherReason, otherReason,
images, images,
); );
// Check if widget is still mounted before showing dialogs // Check if widget is still mounted before showing dialogs
...@@ -282,10 +283,7 @@ class HelpAndEnquiryProvider extends ChangeNotifier { ...@@ -282,10 +283,7 @@ class HelpAndEnquiryProvider extends ChangeNotifier {
); );
//Navigator.pop(context); // close bottom sheet or dialog if open //Navigator.pop(context); // close bottom sheet or dialog if open
if (context.mounted) { if (context.mounted) {
Navigator.push( Navigator.pop(context);
context,
MaterialPageRoute(builder: (context) => HelpScreen(sessionId: sessionId, accId: accId))
);
} }
} else { } else {
......
...@@ -257,33 +257,33 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -257,33 +257,33 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
child: Row( child: Row(
children: [ children: [
// Pay Now Button (only if not paid) // Pay Now Button (only if not paid)
if (!isPaid) ...[ // if (!isPaid) ...[
Expanded( // Expanded(
child: ElevatedButton( // child: ElevatedButton(
onPressed: () { // onPressed: () {
_showPayNowDialog(screenWidth, screenHeight); // _showPayNowDialog(screenWidth, screenHeight);
}, // },
style: ElevatedButton.styleFrom( // style: ElevatedButton.styleFrom(
backgroundColor: AppColors.buttonColor, // backgroundColor: AppColors.buttonColor,
foregroundColor: Colors.white, // foregroundColor: Colors.white,
shape: RoundedRectangleBorder( // shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(screenWidth * 0.03), // borderRadius: BorderRadius.circular(screenWidth * 0.03),
), // ),
padding: EdgeInsets.symmetric(vertical: screenHeight * 0.018), // padding: EdgeInsets.symmetric(vertical: screenHeight * 0.018),
elevation: 0, // elevation: 0,
), // ),
child: Text( // child: Text(
"Pay Now", // "Pay Now",
style: TextStyle( // style: TextStyle(
fontSize: getResponsiveTextSize(context, 14), // fontSize: getResponsiveTextSize(context, 14),
fontFamily: "Poppins", // fontFamily: "Poppins",
fontWeight: FontWeight.w600, // fontWeight: FontWeight.w600,
), // ),
), // ),
), // ),
), // ),
SizedBox(width: screenWidth * 0.03), // SizedBox(width: screenWidth * 0.03),
], // ],
// Download Receipt Button // Download Receipt Button
Expanded( Expanded(
...@@ -315,7 +315,7 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -315,7 +315,7 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
label: Text( label: Text(
provider.isDownloading provider.isDownloading
? "Downloading..." ? "Downloading..."
: "Download Receipt", : "Download Bill",
style: TextStyle( style: TextStyle(
fontSize: getResponsiveTextSize(context, 14), fontSize: getResponsiveTextSize(context, 14),
fontFamily: "Plus Jakarta Sans", fontFamily: "Plus Jakarta Sans",
......
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:gen_rentals/Screens/HelpScreens/EnquiryScreen.dart'; import 'package:gen_rentals/Screens/HelpScreens/EnquiryScreen.dart';
import 'package:gen_rentals/Screens/HelpScreens/HelpScreen.dart'; import 'package:gen_rentals/Screens/HelpScreens/HelpScreen.dart';
...@@ -48,7 +51,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -48,7 +51,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
} }
} }
// Handle back button press // Handle back button press
Future<bool> _onWillPop() async { Future<bool> _onWillPop() async {
DateTime now = DateTime.now(); DateTime now = DateTime.now();
if (currentBackPressTime == null || if (currentBackPressTime == null ||
...@@ -61,9 +64,12 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -61,9 +64,12 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
); );
return false; return false;
} }
return true;
// Close the entire app immediately
exit(0);
} }
// Responsive text size function // Responsive text size function
double getResponsiveTextSize(BuildContext context, double baseSize) { double getResponsiveTextSize(BuildContext context, double baseSize) {
final double width = MediaQuery.of(context).size.width; final double width = MediaQuery.of(context).size.width;
...@@ -212,7 +218,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -212,7 +218,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
// Header with profile // Header with profile
Container( Container(
width: double.infinity, width: double.infinity,
height: screenHeight * 0.55, height: screenHeight * 0.51,
decoration: const BoxDecoration( decoration: const BoxDecoration(
gradient: LinearGradient( gradient: LinearGradient(
begin: Alignment.topCenter, begin: Alignment.topCenter,
...@@ -228,7 +234,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -228,7 +234,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
child: Column( child: Column(
children: [ children: [
SizedBox(height: screenHeight * 0.06), SizedBox(height: screenHeight * 0.09),
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
...@@ -260,10 +266,11 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -260,10 +266,11 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Image.asset( Image.asset(
'assets/images/gene_png.png', 'assets/images/dashboard_gen.png',
height: screenHeight * 0.25, height: screenHeight * 0.25,
width: screenWidth * 0.6, width: screenWidth * 0.6,
), ),
SizedBox(height: 5,),
Text( Text(
"Welcome!", "Welcome!",
style: TextStyle( style: TextStyle(
...@@ -288,8 +295,6 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -288,8 +295,6 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
), ),
SizedBox(height: screenHeight * 0.01),
// Main content section // Main content section
Container( Container(
padding: EdgeInsets.symmetric(horizontal: getResponsivePadding(context)), padding: EdgeInsets.symmetric(horizontal: getResponsivePadding(context)),
...@@ -387,7 +392,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -387,7 +392,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
// Subscribed Orders // Subscribed Orders
Container( Container(
width: double.infinity, width: double.infinity,
padding: EdgeInsets.symmetric(horizontal: screenWidth * 0.005, vertical: screenHeight * 0.012), padding: EdgeInsets.symmetric(horizontal: screenWidth * 0.0009, vertical: screenHeight * 0.012),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
...@@ -896,25 +901,26 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -896,25 +901,26 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
bottomRight: Radius.circular(screenWidth * 0.05), bottomRight: Radius.circular(screenWidth * 0.05),
), ),
), ),
child: Row( child: Center(
children: [ child: Row(
SizedBox(width: screenWidth * 0.03), children: [
Icon(Icons.info_outline, color: Colors.red, size: getResponsiveIconSize(context, 15)), SizedBox(width: screenWidth * 0.02),
SizedBox(width: screenWidth * 0.01), Icon(Icons.info_outline, color: Colors.red, size: getResponsiveIconSize(context, 15)),
Expanded( SizedBox(width: screenWidth * 0.01),
child: Text( Expanded(
product.pendingPaymentText ?? child: Text(
"Payment Pending. Please Pay before incurring fines.", product.pendingPaymentText ??
style: TextStyle( "Payment Pending. Please Pay before incurring fines.",
fontFamily: "Poppins", style: TextStyle(
color: Colors.red, fontFamily: "Poppins",
fontSize: getResponsiveTextSize(context, 11), color: Colors.black87,
fontWeight: FontWeight.w400, fontSize: getResponsiveTextSize(context, 10),
fontWeight: FontWeight.w400,
),
), ),
), ),
), ],
SizedBox(width: screenWidth * 0.03), ),
],
), ),
), ),
], ],
...@@ -952,7 +958,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -952,7 +958,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
width: getResponsiveIconSize(context, 40), width: getResponsiveIconSize(context, 40),
fit: BoxFit.contain, fit: BoxFit.contain,
errorBuilder: (context, error, stack) => errorBuilder: (context, error, stack) =>
Image.asset('assets/images/gene_png.png', Image.asset('assets/images/dashboard_gen.png',
height: getResponsiveIconSize(context, 40), height: getResponsiveIconSize(context, 40),
width: getResponsiveIconSize(context, 40)), width: getResponsiveIconSize(context, 40)),
), ),
...@@ -985,7 +991,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -985,7 +991,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
], ],
), ),
// Gradient expiry badge // Gradient expiry badge
if (product.expiringText != null && product.expiringText!.isNotEmpty) if (product.expiringText != null && product.expiringText!.isNotEmpty)
Container( Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
...@@ -1038,7 +1044,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb ...@@ -1038,7 +1044,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
"• ", "• ",
style: TextStyle( style: TextStyle(
color: Colors.black, color: Colors.black,
fontSize: getResponsiveTextSize(context, 16) fontSize: getResponsiveTextSize(context, 14)
), ),
), ),
Expanded( Expanded(
......
This diff is collapsed.
...@@ -135,17 +135,28 @@ class _HelpScreenState extends State<HelpScreen> { ...@@ -135,17 +135,28 @@ class _HelpScreenState extends State<HelpScreen> {
_buildCreateNewTicketSection(), _buildCreateNewTicketSection(),
const SizedBox(height: 12), const SizedBox(height: 12),
if (closedTickets.isEmpty && processingTickets.isEmpty)
Center(
child: SectionHeading(
title: 'No issues have been raised yet.',
textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
padding: EdgeInsets.symmetric(horizontal: 2, vertical: 4),
),
),
// Processing Tickets Section // Processing Tickets Section
if (processingTickets.isNotEmpty)
SectionHeading( SectionHeading(
title: 'Processing Tickets', title: 'Processing Tickets',
textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500), textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
padding: EdgeInsets.symmetric(horizontal: 2, vertical: 4), padding: EdgeInsets.symmetric(horizontal: 2, vertical: 4),
), ),
const SizedBox(height: 2), const SizedBox(height: 2),
if (processingTickets.isNotEmpty)
_buildProcessingTicketsSection(processingTickets), _buildProcessingTicketsSection(processingTickets),
const SizedBox(height: 10), const SizedBox(height: 10),
// Closed Tickets Section // Closed Tickets Section
if (closedTickets.isNotEmpty)
SectionHeading( SectionHeading(
title: 'Closed Tickets', title: 'Closed Tickets',
textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500), textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
...@@ -153,6 +164,7 @@ class _HelpScreenState extends State<HelpScreen> { ...@@ -153,6 +164,7 @@ class _HelpScreenState extends State<HelpScreen> {
), ),
const SizedBox(height: 2), const SizedBox(height: 2),
if (closedTickets.isNotEmpty)
_buildClosedTicketsSection(closedTickets), _buildClosedTicketsSection(closedTickets),
], ],
), ),
......
...@@ -127,7 +127,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -127,7 +127,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
// Create New Ticket Section // Create New Ticket Section
SectionHeading( SectionHeading(
title: 'Select the order you are having issues with', title: 'Select the order you are having issues with',
textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500), textStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.w500, fontFamily: "Poppins",),
padding: EdgeInsets.symmetric(horizontal: 4, vertical: 2), padding: EdgeInsets.symmetric(horizontal: 4, vertical: 2),
), ),
...@@ -280,7 +280,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -280,7 +280,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
width: 42, width: 42,
fit: BoxFit.contain, fit: BoxFit.contain,
errorBuilder: (context, error, stack) => errorBuilder: (context, error, stack) =>
Image.asset('assets/images/gene_png.png', Image.asset('assets/images/dashboard_gen.png',
height: 40, width: 40), height: 40, width: 40),
), ),
), ),
...@@ -369,6 +369,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -369,6 +369,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
visibleItems[i], visibleItems[i],
style: const TextStyle( style: const TextStyle(
color: Colors.black, color: Colors.black,
fontFamily: "Poppins",
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
), ),
...@@ -430,10 +431,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -430,10 +431,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
} }
} }
void _showReasonBottomSheet( void _showReasonBottomSheet(Orders product) {
Orders product,
) {
// Your existing bottom sheet implementation
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
backgroundColor: Colors.white, backgroundColor: Colors.white,
...@@ -461,7 +459,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -461,7 +459,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
), ),
), ),
), ),
SizedBox(height: 12,), SizedBox(height: 12),
Text( Text(
"Select Your Reason", "Select Your Reason",
style: TextStyle( style: TextStyle(
...@@ -496,6 +494,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -496,6 +494,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
orderId: product.orderid.toString(), orderId: product.orderid.toString(),
icon: icon, icon: icon,
color: color, color: color,
bottomSheetContext: context, // Pass the bottom sheet context
); );
}, },
), ),
...@@ -513,25 +512,31 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -513,25 +512,31 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
required String icon, required String icon,
required String orderId, required String orderId,
required Color color, required Color color,
required BuildContext bottomSheetContext, // Add this parameter
}) { }) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
Navigator.push( // Close the bottom sheet first
context, Navigator.pop(bottomSheetContext);
MaterialPageRoute(builder: (context) => HelpTicketScreen(
reason: title, // Then navigate to HelpTicketScreen after a small delay
Future.delayed(Duration(milliseconds: 300), () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => HelpTicketScreen(
reason: title,
sessionId: widget.sessionId,
accId: widget.accId,
orderId: orderId,
))
).then((_) {
final provider = Provider.of<HelpAndEnquiryProvider>(context, listen: false);
provider.fetchTicketList(
sessionId: widget.sessionId, sessionId: widget.sessionId,
accId: widget.accId, accId: widget.accId,
orderId: orderId, );
)) });
).then((_) {
final provider = Provider.of<HelpAndEnquiryProvider>(context, listen: false);
provider.fetchTicketList(
sessionId: widget.sessionId,
accId: widget.accId,
);
}); });
}, },
child: Container( child: Container(
padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 1), padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 1),
...@@ -565,6 +570,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> { ...@@ -565,6 +570,7 @@ class _OrderHelpScreenState extends State<OrderHelpScreen> {
title, title,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: "Poppins",
color: AppColors.nearDarkText, color: AppColors.nearDarkText,
fontSize: 13, fontSize: 13,
height: 1, height: 1,
......
...@@ -275,21 +275,32 @@ class _TicketChatScreenState extends State<TicketChatScreen> { ...@@ -275,21 +275,32 @@ class _TicketChatScreenState extends State<TicketChatScreen> {
), ),
); );
}, },
child: ClipRRect( child: Container(
borderRadius: BorderRadius.circular(12), decoration: BoxDecoration(
child: Image.network( borderRadius: BorderRadius.circular(12),
images[index], border: Border.all(
width: 100, color: Colors.grey, // Border color
height: 80, width: 1, // Border width
fit: BoxFit.cover, style: BorderStyle.solid, // Optional: solid, none
errorBuilder: (context, error, stackTrace) { ),
return Container( ),
width: 100,
height: 80, child: ClipRRect(
color: Colors.grey.shade200, borderRadius: BorderRadius.circular(12),
child: const Icon(Icons.broken_image, color: Colors.grey), child: Image.network(
); images[index],
}, width: 100,
height: 80,
fit: BoxFit.cover,
errorBuilder: (context, error, stackTrace) {
return Container(
width: 100,
height: 80,
color: Colors.grey.shade200,
child: const Icon(Icons.broken_image, color: Colors.grey),
);
},
),
), ),
), ),
), ),
......
...@@ -90,8 +90,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -90,8 +90,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
), ),
SizedBox(width: screenWidth * 0.025), SizedBox(width: screenWidth * 0.025),
Text( Text(
"Bill List", "Bill Details",
style: TextStyle( style: TextStyle(
fontFamily: "Poppins",
fontSize: isSmallScreen ? 14 : 16, fontSize: isSmallScreen ? 14 : 16,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Colors.black87, color: Colors.black87,
...@@ -114,9 +115,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -114,9 +115,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
child: _buildBody(provider, screenWidth, screenHeight), child: _buildBody(provider, screenWidth, screenHeight),
), ),
bottomNavigationBar: Container( bottomNavigationBar: Container(
height: screenHeight * 0.09, // Responsive height height: screenHeight * 0.085, // Responsive height
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: screenWidth * 0.04, horizontal: screenWidth * 0.048,
vertical: screenHeight * 0.012, vertical: screenHeight * 0.012,
), ),
width: double.infinity, width: double.infinity,
...@@ -147,8 +148,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -147,8 +148,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
child: Text( child: Text(
"View Bill", "View Bill",
style: TextStyle( style: TextStyle(
fontFamily: "Poppins",
fontSize: isSmallScreen ? 13 : 14, fontSize: isSmallScreen ? 13 : 14,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w500,
fontStyle: FontStyle.normal, fontStyle: FontStyle.normal,
), ),
), ),
...@@ -492,76 +494,64 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -492,76 +494,64 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
SizedBox(height: screenHeight * 0.015), SizedBox(height: screenHeight * 0.015),
// Table-like layout for dates and price // Table-like layout for dates and price
Table( Row(
columnWidths: const { mainAxisAlignment: MainAxisAlignment.spaceBetween,
0: FlexColumnWidth(2),
1: FlexColumnWidth(1),
},
children: [ children: [
TableRow( Expanded(
children: [ flex: 8,
TableCell( child: Text(
child: Text( product.dispatchDate != null
product.dispatchDate != null ? "Dispatched On ${product.dispatchDate!}"
? "Dispatched On ${product.dispatchDate!}" : "Dispatch date not available",
: "Dispatch date not available", style: TextStyle(
style: TextStyle( fontSize: isSmallScreen ? 10 : 12,
fontSize: isSmallScreen ? 10 : 12, fontFamily: "Poppins",
fontFamily: "Poppins", fontWeight: FontWeight.w400,
fontWeight: FontWeight.w400, color: AppColors.subtitleText,
color: AppColors.subtitleText,
),
),
),
TableCell(
child: Align(
alignment: Alignment.centerRight,
child: Text(
"Plan",
style: TextStyle(
fontSize: isSmallScreen ? 10 : 12,
fontFamily: "Poppins",
fontWeight: FontWeight.w400,
color: Colors.black54,
),
),
),
), ),
], ),
), ),
TableRow( Expanded(
children: [ child: Text(
TableCell( "Plan",
child: Text( style: TextStyle(
product.receivedDate != null fontSize: isSmallScreen ? 10 : 12,
? "Received On ${product.receivedDate!}" fontFamily: "Poppins",
: "Receive date not available", fontWeight: FontWeight.w400,
style: TextStyle( color: Colors.black54,
fontSize: isSmallScreen ? 10 : 12,
fontFamily: "Poppins",
fontWeight: FontWeight.w400,
color: Colors.grey,
),
),
), ),
TableCell( ),
child: Align( ),
alignment: Alignment.centerRight, ],
child: Text( ),
product.totalPrice != null Row(
? "${product.totalPrice!}${product.per ?? 'mo'}" mainAxisAlignment: MainAxisAlignment.spaceBetween,
: 'Price not available', children: [
style: TextStyle( Expanded(
fontSize: isSmallScreen ? 12 : 14, flex: 7,
fontFamily: "Poppins", child: Text(
fontStyle: FontStyle.normal, product.receivedDate != null
fontWeight: FontWeight.w400, ? "Received On ${product.receivedDate!}"
color: Colors.black87, : "Receive date not available",
), style: TextStyle(
), fontSize: isSmallScreen ? 10 : 12,
), fontFamily: "Poppins",
fontWeight: FontWeight.w400,
color: Colors.grey,
), ),
], ),
),
Text(
product.totalPrice != null
? "₹${product.totalPrice!}${product.per ?? 'mo'}"
: 'Price not available',
style: TextStyle(
fontSize: isSmallScreen ? 12 : 14,
fontFamily: "Poppins",
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w400,
color: Colors.black87,
),
), ),
], ],
), ),
...@@ -663,7 +653,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -663,7 +653,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
backgroundColor: Colors.white, backgroundColor: Colors.white,
isScrollControlled: true, // Add this to allow scrolling isScrollControlled: true,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
topLeft: Radius.circular(20), topLeft: Radius.circular(20),
...@@ -679,7 +669,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -679,7 +669,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
vertical: screenHeight * 0.016, vertical: screenHeight * 0.016,
), ),
constraints: BoxConstraints( constraints: BoxConstraints(
maxHeight: screenHeight * 0.7, // Limit maximum height maxHeight: screenHeight * 0.7,
), ),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
...@@ -706,7 +696,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -706,7 +696,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
), ),
), ),
SizedBox(height: screenHeight * 0.025), SizedBox(height: screenHeight * 0.025),
Expanded( // Wrap GridView with Expanded Expanded(
child: GridView.builder( child: GridView.builder(
shrinkWrap: true, shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
...@@ -714,7 +704,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -714,7 +704,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
crossAxisCount: 3, crossAxisCount: 3,
crossAxisSpacing: screenWidth * 0.03, crossAxisSpacing: screenWidth * 0.03,
mainAxisSpacing: screenWidth * 0.03, mainAxisSpacing: screenWidth * 0.03,
childAspectRatio: 0.85, // Reduced from 0.99 to prevent overflow childAspectRatio: 0.85,
), ),
itemCount: createNewTickets.length, itemCount: createNewTickets.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
...@@ -731,6 +721,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -731,6 +721,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
icon: icon, icon: icon,
color: color, color: color,
screenWidth: screenWidth, screenWidth: screenWidth,
bottomSheetContext: context, // Pass bottom sheet context
); );
}, },
), ),
...@@ -751,24 +742,31 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -751,24 +742,31 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
required String icon, required String icon,
required Color color, required Color color,
required double screenWidth, required double screenWidth,
required BuildContext bottomSheetContext, // Add this parameter
}) { }) {
final isSmallScreen = screenWidth < 360; final isSmallScreen = screenWidth < 360;
final iconSize = screenWidth * 0.20; // Slightly reduced final iconSize = screenWidth * 0.20;
final imageSize = screenWidth * 0.09; // Slightly reduced final imageSize = screenWidth * 0.09;
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
Navigator.push( // Close the bottom sheet first
context, Navigator.pop(bottomSheetContext);
MaterialPageRoute(
builder: (context) => HelpTicketScreen( // Then navigate to HelpTicketScreen after a small delay for smooth transition
reason: title, Future.delayed(Duration(milliseconds: 300), () {
sessionId: widget.sessionId, Navigator.push(
accId: widget.accId, context,
orderId: orderId, MaterialPageRoute(
builder: (context) => HelpTicketScreen(
reason: title,
sessionId: widget.sessionId,
accId: widget.accId,
orderId: orderId,
),
), ),
), );
); });
}, },
child: Container( child: Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
...@@ -776,7 +774,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -776,7 +774,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
vertical: screenWidth * 0.002 vertical: screenWidth * 0.002
), ),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, // Use min to prevent overflow mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
// Icon container // Icon container
...@@ -798,9 +796,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -798,9 +796,9 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
), ),
), ),
), ),
SizedBox(height: screenWidth * 0.015), // Reduced spacing SizedBox(height: screenWidth * 0.015),
// Title // Title
SizedBox( // SizedBox(
width: iconSize, width: iconSize,
child: Text( child: Text(
title, title,
...@@ -808,7 +806,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -808,7 +806,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
style: TextStyle( style: TextStyle(
color: AppColors.nearDarkText, color: AppColors.nearDarkText,
fontFamily: "Poppins", fontFamily: "Poppins",
fontSize: isSmallScreen ? 11 : 13, // Slightly smaller font fontSize: isSmallScreen ? 11 : 13,
fontStyle: FontStyle.normal, fontStyle: FontStyle.normal,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
), ),
...@@ -816,7 +814,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> { ...@@ -816,7 +814,7 @@ class _ProductsDetailScreenState extends State<ProductsDetailScreen> {
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
), ),
SizedBox(height: screenWidth * 0.005), // Reduced spacing SizedBox(height: screenWidth * 0.005),
], ],
), ),
), ),
......
...@@ -388,7 +388,7 @@ class _ProfileScreenState extends State<ProfileScreen> { ...@@ -388,7 +388,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
style: TextStyle( style: TextStyle(
fontSize: 16, fontSize: 16,
fontFamily: "Poppins", fontFamily: "Poppins",
fontWeight: FontWeight.w400, fontWeight: FontWeight.w500,
color: AppColors.normalText, color: AppColors.normalText,
), ),
), ),
...@@ -428,7 +428,7 @@ class _ProfileScreenState extends State<ProfileScreen> { ...@@ -428,7 +428,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
style: TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
fontFamily: "Poppins", fontFamily: "Poppins",
fontWeight: FontWeight.w500, fontWeight: FontWeight.w600,
color: AppColors.normalText, color: AppColors.normalText,
), ),
), ),
...@@ -536,13 +536,13 @@ class _ProfileScreenState extends State<ProfileScreen> { ...@@ -536,13 +536,13 @@ class _ProfileScreenState extends State<ProfileScreen> {
), ),
const SizedBox(height: 6), const SizedBox(height: 6),
Text(title, Text(title,
style: const TextStyle( style: TextStyle(
fontSize: 14, fontWeight: FontWeight.w400, fontFamily: "Poppins", color: Colors.black87)), fontSize: 14, fontWeight: FontWeight.w600, fontFamily: "Poppins", color: Colors.black87)),
const SizedBox(height: 2), const SizedBox(height: 2),
Text(value, Text(value,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: const TextStyle( style: TextStyle(
fontSize: 14, fontWeight: FontWeight.w400, fontFamily: "Poppins", color: Colors.black54)), fontSize: 14, fontWeight: FontWeight.w400, fontFamily: "Poppins", color: AppColors.subtitleText)),
], ],
); );
} }
...@@ -551,12 +551,12 @@ class _ProfileScreenState extends State<ProfileScreen> { ...@@ -551,12 +551,12 @@ class _ProfileScreenState extends State<ProfileScreen> {
return Column( return Column(
children: [ children: [
Text(title, Text(title,
style: const TextStyle( style: TextStyle(
fontSize: 14, fontWeight: FontWeight.w400, fontFamily: "Poppins", color: Colors.black87)), fontSize: 14, fontWeight: FontWeight.w600, fontFamily: "Poppins", color: Colors.black87)),
const SizedBox(height: 4), const SizedBox(height: 4),
Text(value, Text(value,
style: const TextStyle( style: TextStyle(
fontSize: 14, fontWeight: FontWeight.w400, fontFamily: "Poppins", color: Colors.black54)), fontSize: 14, fontWeight: FontWeight.w400, fontFamily: "Poppins", color: AppColors.subtitleText)),
], ],
); );
} }
......
...@@ -61,6 +61,22 @@ class _BillPendingToastState extends State<BillPendingToast> { ...@@ -61,6 +61,22 @@ class _BillPendingToastState extends State<BillPendingToast> {
: Column( : Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
InkResponse(
onTap: () => Navigator.pop(context),
child: CircleAvatar(
radius: 16,
backgroundColor: Colors.black12,
child: Icon(
Icons.close,
size: 16,
),
),
)
],
),
// 🔴 Red Pending Icon // 🔴 Red Pending Icon
Container( Container(
height: 60, height: 60,
...@@ -209,17 +225,18 @@ class _BillPendingToastState extends State<BillPendingToast> { ...@@ -209,17 +225,18 @@ class _BillPendingToastState extends State<BillPendingToast> {
), ),
) )
: const Icon(Icons.download_rounded, : const Icon(Icons.download_rounded,
color: Colors.black), color: Colors.white),
label: const Text( label: const Text(
"Download", "Download",
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
fontFamily: "Poppins", fontFamily: "Poppins",
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.black, color: Colors.white,
), ),
), ),
style: OutlinedButton.styleFrom( style: OutlinedButton.styleFrom(
backgroundColor: Colors.blue,
side: const BorderSide(color: Colors.black26), side: const BorderSide(color: Colors.black26),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(50), borderRadius: BorderRadius.circular(50),
...@@ -229,27 +246,27 @@ class _BillPendingToastState extends State<BillPendingToast> { ...@@ -229,27 +246,27 @@ class _BillPendingToastState extends State<BillPendingToast> {
), ),
), ),
const SizedBox(width: 12), const SizedBox(width: 12),
Expanded( // Expanded(
child: ElevatedButton( // child: ElevatedButton(
onPressed: widget.onPayNow, // onPressed: widget.onPayNow,
style: ElevatedButton.styleFrom( // style: ElevatedButton.styleFrom(
backgroundColor: AppColors.amountText, // backgroundColor: AppColors.amountText,
shape: RoundedRectangleBorder( // shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(50), // borderRadius: BorderRadius.circular(50),
), // ),
padding: const EdgeInsets.symmetric(vertical: 14), // padding: const EdgeInsets.symmetric(vertical: 14),
), // ),
child: const Text( // child: const Text(
"Pay Now", // "Pay Now",
style: TextStyle( // style: TextStyle(
fontSize: 15, // fontSize: 15,
fontFamily: "Poppins", // fontFamily: "Poppins",
fontWeight: FontWeight.w600, // fontWeight: FontWeight.w600,
color: Colors.white, // color: Colors.white,
), // ),
), // ),
), // ),
), // ),
], ],
), ),
], ],
......
...@@ -73,7 +73,23 @@ class _BillStatusToastState extends State<BillStatusToast> { ...@@ -73,7 +73,23 @@ class _BillStatusToastState extends State<BillStatusToast> {
: Column( : Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
// ✅ Success Tick Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
InkResponse(
onTap: () => Navigator.pop(context),
child: CircleAvatar(
radius: 16,
backgroundColor: Colors.black12,
child: Icon(
Icons.close,
size: 16,
),
),
)
],
),
// Success Tick
Container( Container(
height: 60, height: 60,
width: 60, width: 60,
......
...@@ -94,7 +94,7 @@ class _LoginScreenState extends State<LoginScreen> { ...@@ -94,7 +94,7 @@ class _LoginScreenState extends State<LoginScreen> {
// Fixed background image // Fixed background image
Positioned.fill( Positioned.fill(
child: Image.asset( child: Image.asset(
'assets/images/background.jpg', 'assets/images/login_background.png',
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
), ),
...@@ -168,10 +168,10 @@ class _LoginScreenState extends State<LoginScreen> { ...@@ -168,10 +168,10 @@ class _LoginScreenState extends State<LoginScreen> {
keyboardType: TextInputType.phone, keyboardType: TextInputType.phone,
onChanged: _validatePhone, onChanged: _validatePhone,
maxLength: 10, maxLength: 10,
style: const TextStyle(color: Colors.black), style: const TextStyle(color: Colors.black, fontFamily: "Poppins",fontSize: 14),
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter Mobile No.", hintText: "Enter Mobile No.",
hintStyle: const TextStyle(color: Colors.grey,fontFamily: "Poppins",), hintStyle: const TextStyle(color: Colors.grey,fontFamily: "Poppins", fontSize: 14),
filled: true, filled: true,
fillColor: Colors.white, fillColor: Colors.white,
counterText: "", // Remove character counter counterText: "", // Remove character counter
......
...@@ -97,9 +97,15 @@ class _OtpScreenState extends State<OtpScreen> { ...@@ -97,9 +97,15 @@ class _OtpScreenState extends State<OtpScreen> {
// Navigate to dashboard // Navigate to dashboard
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
MaterialPageRoute(builder: (_) => DashboardScreen( PageRouteBuilder(
accId: rentalProvider.otpResponse!.accId!, pageBuilder: (_, __, ___) => DashboardScreen(accId: rentalProvider.otpResponse!.accId!, sessionId: rentalProvider.otpResponse!.sessionId.toString(),),
sessionId: rentalProvider.otpResponse!.sessionId!,) transitionsBuilder: (_, animation, __, child) {
return FadeTransition(
opacity: animation,
child: child,
);
},
transitionDuration: const Duration(milliseconds: 800),
), ),
); );
} else { } else {
...@@ -243,7 +249,7 @@ class _OtpScreenState extends State<OtpScreen> { ...@@ -243,7 +249,7 @@ class _OtpScreenState extends State<OtpScreen> {
// Background image // Background image
Positioned.fill( Positioned.fill(
child: Image.asset( child: Image.asset(
'assets/images/background.jpg', 'assets/images/login_background.png',
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
), ),
......
...@@ -99,8 +99,8 @@ class CustomSnackBar { ...@@ -99,8 +99,8 @@ class CustomSnackBar {
style: const TextStyle( style: const TextStyle(
color: Colors.white, color: Colors.white,
fontFamily: "Poppins", fontFamily: "Poppins",
fontWeight: FontWeight.w700, fontWeight: FontWeight.w500,
fontSize: 15, fontSize: 14,
letterSpacing: -0.2, letterSpacing: -0.2,
), ),
), ),
...@@ -111,7 +111,7 @@ class CustomSnackBar { ...@@ -111,7 +111,7 @@ class CustomSnackBar {
style: TextStyle( style: TextStyle(
fontFamily: "Poppins", fontFamily: "Poppins",
color: Colors.white.withOpacity(0.9), color: Colors.white.withOpacity(0.9),
fontSize: 14, fontSize: 13,
height: 1.3, height: 1.3,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
), ),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment