Use Selectable Location Fields
As a Host, I want location-related fields to be selectable dropdowns instead of text inputs, So that data entry is faster, more accurate, and consistent across the app.
Acceptance Criteria
Section titled “Acceptance Criteria”- Given I am adding or editing a product, tool, glassware, or equipment item
- When I set a storage location
- Then the location field is a dropdown/picker with predefined options
- And I cannot type free-form text for locations
- And location options are:
- Consistent across all inventory screens
- Based on the current venue’s bars and storage areas (see
use_venue_locations_for_inventory.md) - Or generic fallback options if venue locations aren’t available
- And I can quickly select from available locations
- And the selected location is displayed consistently across the app
Implementation Status
Section titled “Implementation Status”✅ FULLY IMPLEMENTED (January 2026)
Implementation
Section titled “Implementation”All Screens Using Pickers:
- ✅
add-product.tsx- Storage Location uses Picker component - ✅
add-tool.tsx- Storage Location uses Picker component - ✅
add-glassware.tsx- Storage Location uses Picker component - ✅
add-equipment.tsx- Storage Location uses Picker component - ✅
edit-item.tsx- Storage Location uses Picker component (updated January 2026)
Implementation Details
Section titled “Implementation Details”All Files Now Using Pickers:
- ✅
shaker/app/(tabs)/inventory/add-product.tsx- Uses Picker withstorageLocationOptions - ✅
shaker/app/(tabs)/inventory/tools/add-tool.tsx- Uses Picker withtoolStorageOptions - ✅
shaker/app/(tabs)/inventory/glassware/add-glassware.tsx- Uses Picker withglasswareStorageOptions - ✅
shaker/app/(tabs)/inventory/equipment/add-equipment.tsx- Uses Picker with equipment storage options - ✅
shaker/app/(tabs)/inventory/edit-item.tsx- Uses Picker withstorageLocationOptions(updated January 2026)
Changes Made:
-
Updated Edit Item Screen (January 2026):
- ✅ Replaced
TextInputforstorageLocationwithPickercomponent - ✅ Imported
storageLocationOptionsfrom@/lib/inventory/add-product/formFields - ✅ Uses the same location options as the add-product screen for consistency
- ✅ Replaced
-
Consistency Achieved:
- ✅ All location fields use the same Picker component
- ✅ Location options come from consistent sources (currently generic hardcoded options)
- ✅ Display format is consistent (labels with spaces, values with underscores)
-
Location Options Source (Current):
- Currently using generic hardcoded options for all inventory types
- Future: Venue-based locations (bars and storage areas) - see
use_venue_locations_for_inventory.md
Implementation Example:
Updated implementation in edit-item.tsx:
<Picker label="Storage Location" placeholder="Select storage location" options={storageLocationOptions} value={formData.storageLocation} onValueChange={(value) => handleFieldChange("storageLocation", value)}/>Priority
Section titled “Priority”Medium - Improves data quality and user experience
Related Entities
Section titled “Related Entities”- Product, Tool, Glassware, Equipment, StorageLocation, Venue, Bar, StorageArea
Related Features
Section titled “Related Features”- Use Venue Locations for Inventory (
use_venue_locations_for_inventory.md) - Location options should come from venue structure (future enhancement) - Add Product/Tool/Glassware/Equipment stories - Location selection is now consistent ✅
- Edit Item functionality - Now uses picker instead of text input ✅
Benefits
Section titled “Benefits”Speed:
- Faster selection from dropdown vs. typing
- No need to remember exact location names
- Consistent naming prevents typos
Accuracy:
- Prevents typos and inconsistent naming
- Ensures locations match venue structure
- Enables filtering by location reliably
Consistency:
- All location fields behave the same way
- Location names are standardized
- Easier to maintain and update
Future Enhancements
Section titled “Future Enhancements”- Dynamic location options based on current venue (see
use_venue_locations_for_inventory.md) - Search/filter within location picker for venues with many locations
- Recently used locations shown first
- Custom location option with validation