NamePicker Component UX Improvements
June 18, 2025 ยท View on GitHub
Summary
Completely redesigned the "What's your friend name" screen (NamePicker component) to be more consistent with the modern, dark-themed design patterns used throughout the WiSaw app.
Changes Made
1. Visual Design Overhaul
- Theme Consistency: Changed from light theme to dark theme matching ModalInputText
- Modern UI: Implemented glass-morphism effects with transparent backgrounds
- Professional Layout: Better spacing, typography, and visual hierarchy
- Icon Integration: Added meaningful icons for better visual communication
2. Enhanced User Experience
- Custom Header: Replaced generic header with custom navigation similar to photo screens
- Keyboard Handling: Added TouchableWithoutFeedback for keyboard dismissal
- Input Validation: Real-time character counting and validation feedback
- Loading States: Added visual feedback during friend creation process
- Haptic Feedback: Tactile responses for all user interactions
3. Improved Interaction Patterns
- Multiple Submit Methods:
- Header checkmark button
- Primary "Add Friend" button
- Keyboard "done" action
- Smart Validation: Buttons disabled until valid input is provided
- Graceful Cancellation: Multiple ways to cancel with proper state reset
4. Content and Messaging
- Better Copy: More descriptive and helpful text
- Contextual Help: Customizable subtitle text via props
- Character Limits: Reduced from 140 to 50 characters for better UX
- Clear Actions: Unambiguous button labels and states
Technical Implementation
Key Features:
- Full-Screen Modal: Uses modern presentation style
- Safe Area Support: Proper handling of device notches and status bars
- Keyboard-Aware: Automatic adjustment for keyboard appearance
- State Management: Proper loading and validation states
- Accessibility: Better focus management and interaction feedback
Design System Alignment:
- Uses app's primary color (
CONST.MAIN_COLOR) - Consistent shadow and elevation patterns
- Typography matching other screens
- Icon library consistency (
FontAwesome5)
Animation and Polish:
- Smooth slide animation for modal presentation
- Haptic feedback for user actions
- Loading states with button animations
- Character counter for input guidance
Before vs After
Before:
- Basic white modal with simple header
- Generic "Save on Device" button
- Minimal visual hierarchy
- Inconsistent with app's dark theme
- No validation feedback
- Limited interaction methods
After:
- Modern dark-themed full-screen experience
- Clear "Add Friend" action with loading states
- Rich visual design with icons and proper spacing
- Consistent with photo and comment input screens
- Real-time validation and character counting
- Multiple intuitive ways to complete the action
User Flow Improvements
Enhanced Onboarding:
- Clear Purpose: Icon and title immediately communicate the action
- Helpful Guidance: Subtitle explains the purpose of naming friends
- Visual Feedback: Character counter and button states guide completion
- Multiple Completion Paths: Users can complete via header, button, or keyboard
Error Prevention:
- Character limit prevents overly long names
- Real-time validation prevents empty submissions
- Loading states prevent double-submissions
- Proper state reset prevents UI inconsistencies
Benefits
- Visual Consistency: Now matches the app's modern design language
- Better Usability: Clearer actions and better feedback
- Professional Feel: More polished and intuitive interface
- Accessibility: Better keyboard navigation and haptic feedback
- Maintainability: Cleaner code structure and better prop handling
Future Enhancements
- Auto-Complete: Suggest names from device contacts
- Name Validation: Check for duplicate friend names
- Avatar Selection: Allow users to assign profile pictures
- Quick Actions: Recent names or common name suggestions
- Bulk Import: Import multiple contacts at once