From 6c003ea70d453a14bfd03ff38b5923c98c136ff3 Mon Sep 17 00:00:00 2001 From: Komek Hayytnazarov Date: Tue, 23 Jul 2024 16:36:50 +0500 Subject: [PATCH] added card --- lib/presentation/screens/orders.dart | 81 +----------- lib/presentation/widgets/order_card.dart | 162 +++++++++++++++++++++++ lib/presentation/widgets/widgets.dart | 1 + 3 files changed, 165 insertions(+), 79 deletions(-) create mode 100644 lib/presentation/widgets/order_card.dart diff --git a/lib/presentation/screens/orders.dart b/lib/presentation/screens/orders.dart index b72ed29..75a82c8 100644 --- a/lib/presentation/screens/orders.dart +++ b/lib/presentation/screens/orders.dart @@ -1,8 +1,8 @@ +import 'package:cargo/presentation/presentation.dart'; import 'package:flutter/material.dart'; import '../../configs/configs.dart'; import '../../core/core.dart'; -import '../widgets/order_header.dart'; class OrdersScreen extends StatelessWidget { const OrdersScreen({super.key}); @@ -43,7 +43,7 @@ class OrdersScreen extends StatelessWidget { SliverList( delegate: SliverChildBuilderDelegate( (BuildContext context, int index) { - return _buildOrderCard(); + return const OrderCard(); }, childCount: 4, // items.length, ), @@ -52,81 +52,4 @@ class OrdersScreen extends StatelessWidget { ), ); } - - Widget _buildOrderCard() { - return Card( - color: Colors.white, - margin: Space.all(.8, 0.5), - child: Padding( - padding: const EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - '№ABC456789', - style: AppText.b1b, - ), - Text( - 'Genişleýin >', - style: AppText.b1b?.copyWith( - color: AppColors.primary, - ), - ), - ], - ), - const SizedBox(height: 8), - const Row( - children: [ - Icon(Icons.circle, color: Colors.green, size: 12), - SizedBox(width: 4), - Text('Ýolda'), - Spacer(), - Text('Ugradylan senesi: 16.07.2024'), - ], - ), - const SizedBox(height: 16), - const Row( - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Nireden:'), - Text('Urumçy', style: TextStyle(fontWeight: FontWeight.bold)), - SizedBox(height: 8), - Text('Nirede:'), - Text('Aşgabat', style: TextStyle(fontWeight: FontWeight.bold)), - ], - ), - Spacer(), - Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text('Ýer sany:'), - Text('10', style: TextStyle(fontWeight: FontWeight.bold)), - SizedBox(height: 8), - Text('Göwrümi:'), - Text('1472,31', style: TextStyle(fontWeight: FontWeight.bold)), - ], - ), - SizedBox(width: 16), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Maşyn №:'), - Text('AA1234AA', style: TextStyle(fontWeight: FontWeight.bold)), - SizedBox(height: 8), - Text('Dukan №:'), - Text('A1043', style: TextStyle(fontWeight: FontWeight.bold)), - ], - ), - ], - ), - ], - ), - ), - ); - } } diff --git a/lib/presentation/widgets/order_card.dart b/lib/presentation/widgets/order_card.dart new file mode 100644 index 0000000..c051b33 --- /dev/null +++ b/lib/presentation/widgets/order_card.dart @@ -0,0 +1,162 @@ +import 'package:flutter/material.dart'; + +import '../../configs/configs.dart'; +import '../../core/core.dart'; + +class OrderCard extends StatelessWidget { + const OrderCard({super.key}); + + @override + Widget build(BuildContext context) { + return Card( + color: Colors.white, + margin: Space.all(.8, 0.5), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + /// Track number + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '№ABC456789', + style: AppText.b1b, + ), + Text( + 'Genişleýin >', + style: AppText.b1b?.copyWith( + color: AppColors.primary, + ), + ), + ], + ), + + /// gap + Space.yf(0.5), + + /// status bar + Row( + children: [ + const Icon(Icons.circle, color: Colors.green, size: 12), + const SizedBox(width: 4), + Text( + 'Ýolda', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + const Spacer(), + Text( + 'Ugradylan senesi: 16.07.2024', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + ], + ), + + /// gap + Space.yf(0.75), + + /// info bar + Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Nireden:', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + Text( + 'Urumçy', + style: AppText.b2b!.copyWith( + color: const Color(0xFF57575C), + ), + ), + const SizedBox(height: 8), + Text( + 'Nirede:', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + Text( + 'Aşgabat', + style: AppText.b2b!.copyWith( + color: const Color(0xFF57575C), + ), + ), + ], + ), + ), + const Spacer(flex: 1), + Expanded( + flex: 1, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Ýer sany:'), + Text( + '10', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + const SizedBox(height: 8), + const Text('Göwrümi:'), + Text( + '1472,31', + style: AppText.b2b!.copyWith( + color: const Color(0xFF57575C), + ), + ), + ], + ), + ), + const Spacer(flex: 1), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Maşyn №:', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + Text( + 'AA1234AA', + style: AppText.b2b!.copyWith( + color: const Color(0xFF57575C), + ), + ), + const SizedBox(height: 8), + Text( + 'Dukan №:', + style: AppText.b2b!.copyWith( + color: const Color(0xFF96969C), + ), + ), + Text( + 'A1043', + style: AppText.b2b!.copyWith( + color: const Color(0xFF57575C), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/presentation/widgets/widgets.dart b/lib/presentation/widgets/widgets.dart index 53d08c4..9e3d2c1 100644 --- a/lib/presentation/widgets/widgets.dart +++ b/lib/presentation/widgets/widgets.dart @@ -4,3 +4,4 @@ export 'credential_failure_dialog.dart'; export 'auth_error_dialog.dart'; export 'bottom_navbar.dart'; export 'order_header.dart'; +export 'order_card.dart';