progress on batches

This commit is contained in:
2026-06-05 20:25:20 +02:00
parent eab2368331
commit 2dd790fe6e
23 changed files with 9112 additions and 74 deletions

View File

@@ -259,7 +259,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
),
),
const SizedBox(height: 24),
const SizedBox(height: 16),
// Animated info card section
FadeTransition(
@@ -272,7 +272,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
),
),
const SizedBox(height: 20),
const SizedBox(height: 14),
// Animated content section
FadeTransition(
@@ -386,7 +386,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
],
stops: const [0.0, 0.5, 1.0],
),
borderRadius: BorderRadius.circular(24),
borderRadius: BorderRadius.circular(20),
border: Border.all(
color: primaryColor.withValues(alpha: 0.12),
width: 1,
@@ -399,13 +399,13 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
],
),
padding: const EdgeInsets.symmetric(vertical: 28, horizontal: 24),
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20),
child: Column(
children: [
// Status badge
if (status != null) ...[
_buildStatusBadge(status, theme),
const SizedBox(height: 16),
const SizedBox(height: 12),
],
// Amount row
@@ -433,14 +433,14 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
],
),
const SizedBox(height: 12),
const SizedBox(height: 8),
// Bill name (if available)
if (billName.isNotEmpty)
Container(
padding: const EdgeInsets.symmetric(
horizontal: 14,
vertical: 6,
horizontal: 12,
vertical: 4,
),
decoration: BoxDecoration(
color: primaryColor.withValues(alpha: 0.08),
@@ -455,7 +455,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
),
),
const SizedBox(height: 6),
const SizedBox(height: 4),
// Date
if (createdAt != null)
@@ -467,11 +467,11 @@ class _ReceiptScreenState extends State<ReceiptScreen>
color: isDark ? Colors.white54 : Colors.grey.shade500,
),
),
const SizedBox(height: 24),
const SizedBox(height: 16),
// Divider with dots pattern
_buildDottedDivider(isDark),
const SizedBox(height: 20),
const SizedBox(height: 14),
// Action buttons row
_buildActionButtons(theme),
@@ -487,7 +487,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
Widget _buildDottedDivider(bool isDark) {
return Row(
children: List.generate(
60,
40,
(index) => Expanded(
child: Container(
height: 1.5,
@@ -508,8 +508,8 @@ class _ReceiptScreenState extends State<ReceiptScreen>
final paymentStatus = _transaction?.paymentStatus;
return Wrap(
spacing: 12,
runSpacing: 8,
spacing: 10,
runSpacing: 6,
alignment: WrapAlignment.center,
children: [
_modernActionButton(
@@ -926,7 +926,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
],
),
child: Padding(
padding: const EdgeInsets.all(20),
padding: const EdgeInsets.all(14),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -954,7 +954,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
],
),
const SizedBox(height: 16),
const SizedBox(height: 12),
// Divider
Container(
@@ -963,12 +963,12 @@ class _ReceiptScreenState extends State<ReceiptScreen>
? Colors.white.withValues(alpha: 0.06)
: Colors.grey.shade200,
),
const SizedBox(height: 16),
const SizedBox(height: 12),
// Detail items
...items.map(
(item) => Padding(
padding: const EdgeInsets.only(bottom: 14),
padding: const EdgeInsets.only(bottom: 10),
child: _buildModernDetailRow(
theme: theme,
isDark: isDark,
@@ -980,7 +980,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
// Total amount divider & total
if (totalAmount != null) ...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
padding: const EdgeInsets.symmetric(vertical: 2),
child: Container(
height: 1,
decoration: BoxDecoration(
@@ -993,7 +993,7 @@ class _ReceiptScreenState extends State<ReceiptScreen>
),
),
),
const SizedBox(height: 12),
const SizedBox(height: 8),
Row(
children: [
Container(
@@ -1111,4 +1111,4 @@ class _DetailItem {
this.isWarning = false,
this.trailing,
});
}
}