Add delivery order badges and optimize list performance

Enhance delivery list UI with sequential order badges and improve scrolling
performance with faster animations for better user experience.

Delivery Order Badge:
- Add 60x60px status-colored square badge showing delivery sequence number
- Position badge to the left of vertical status bar for clear visual hierarchy
- White text (26px, bold) centered in badge
- Automatically displays deliveryIndex + 1 (first delivery = 1, second = 2, etc.)
- Status color matches delivery state (green for completed, gray for pending, etc.)
- 10px border radius for modern appearance

Layout Enhancements:
- Sidebar expanded from 360px to 420px to accommodate order badges
- Vertical centering of row elements for better visual balance
- Maintains optimized spacing: badge (60px) + gap (12px) + bar (6px) + gap (16px) + content
- Full list scrolling restored (removed 4-item limit)

Animation Performance:
- Stagger animation delay reduced by 90% (50ms to 5ms)
- Fast stagger: 30ms to 3ms for ultra-responsive scrolling
- Delivery items appear almost instantly when scrolling
- Total animation time for 20 items: 500ms to 100ms
- Maintains subtle stagger effect while feeling immediate

User Experience Improvements:
- Clear visual indication of delivery order in route
- Faster perceived loading when scrolling through deliveries
- Better readability with larger, prominent order numbers
- Consistent status color coding across badge and accent bar

Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jean-Philippe Brule
2025-11-17 10:29:17 -05:00
parent dc2c82e938
commit 98ce195bbb
4 changed files with 32 additions and 12 deletions
+1 -1
View File
@@ -272,7 +272,7 @@ class UnifiedDeliveryListView extends StatelessWidget {
controller: scrollController,
padding: const EdgeInsets.only(top: 4, bottom: 8),
physics: const AlwaysScrollableScrollPhysics(),
itemCount: deliveries.length > 4 ? 4 : deliveries.length, // Limit to max 4 items for better readability
itemCount: deliveries.length, // Show all deliveries with scrolling
itemBuilder: (context, index) {
final delivery = deliveries[index];
return DeliveryListItem(