chore: standardize empty field display across all views (#162) #171
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Relates to #162
Severity: Medium
Problem
Vehicle detail page shows "Not provided" in gray italic for missing fields (Color, VIN, Purchase Price/Date). But on the vehicle list cards, empty VIN shows "VIN:" with nothing after it. The approach should be consistent across all views.
Recommendation
Pick one consistent pattern for empty/missing field display and apply it everywhere:
Acceptance Criteria
Implementation Plan (from #162 -- Milestone 8)
Phase: 3 (Vehicle display consistency) | Priority: Medium | Depends on: #165 (Milestone 1 -- shared utilities) | Blocks: None
Context
Empty fields are handled inconsistently: some show blank labels, some show "null", some hide correctly. This milestone standardizes the approach: hide empty fields on list/card views, keep "Not provided" on detail pages.
Implementation
Pattern decision:
VehicleDetailPage.tsx)Exhaustive audit scope:
features/vehicles/components/VehicleCard.tsx:54features/vehicles/components/VehicleCard.tsx:57-61features/vehicles/mobile/VehicleMobileCard.tsx:43-46features/vehicles/pages/VehicleDetailPage.tsx:288-350pages/SettingsPage.tsx:378getVehicleSubtitle()features/settings/mobile/MobileSettingsScreen.tsx:376getVehicleSubtitle()features/dashboard/components/VehicleAttention.tsxgetVehicleLabel()Changes:
VehicleCard.tsx: Wrap VIN in conditional{vehicle.vin && ...}(may overlap with #167 work -- coordinate)SettingsPage.tsxandMobileSettingsScreen.tsx: Replace direct Year/Make/Model concatenation withgetVehicleSubtitle()from@/core/utils/vehicleDisplayVehicleDetailPage.tsxdetail page pattern is consistent (should already be correct)VehicleAttention.tsxusesgetVehicleLabel()(should be done in #165)Files
frontend/src/features/vehicles/components/VehicleCard.tsxfrontend/src/features/vehicles/mobile/VehicleMobileCard.tsx(verify only)frontend/src/features/vehicles/pages/VehicleDetailPage.tsx(verify only)frontend/src/pages/SettingsPage.tsxfrontend/src/features/settings/mobile/MobileSettingsScreen.tsxfrontend/src/features/dashboard/components/VehicleAttention.tsx(verify only)Commit Convention
Test Criteria
Branch
Work on branch
issue-162-ux-design-audit-cleanup(shared with all #162 sub-issues)Milestone: Audit Complete -- No Additional Changes Needed
Phase: Execution | Agent: Developer | Status: PASS
Audit Results
VehicleCard.tsxVehicleCard.tsxVehicleMobileCard.tsxVehicleDetailPage.tsxSettingsPage.tsx:379getVehicleSubtitle()(fixed in #165)MobileSettingsScreen.tsx:377getVehicleSubtitle()(fixed in #165)VehicleAttention.tsx:108getVehicleLabel()(fixed in #165)Pattern Summary
All locations are consistent. No additional code changes required -- prior milestones (#165, #167) already addressed all items.
Verdict: PASS | Next: Continue to next milestone