Contacts
Overview
The Contacts page facilitates friend connections and displays competitive leaderboards comparing performance with connected players.
Core Features
Friends Leaderboard
Four Leaderboard Cards:
Most Makes: All-time total makes leaderboard
Best Streak: Longest consecutive make streak
Makes/Min: Makes Per Minute leader board
Fastest 21: Fastest time to 21 consecutive makes
Display:
Rank positioning
Player names
Metric values
Your position highlighted (if ranked)
Your Friends Section
Friends List:
Current connections
Friend status display
Profile links
Activity indicators
Empty State:
👥 Icon
"No friends added yet" message
Call-to-action to use search feature
Import contacts button
Friend Requests:
Pending incoming requests
Accept/Decline actions
Request timestamp
Requester profile preview
Find Friends
Search Functionality:
Privacy-Focused Search:
Search by email (complete email required)
Search by phone number
Search by username/display name
Privacy Protection:
Only usernames shown publicly
Email/phone results hidden unless exact match
🔒 Privacy icon with explanation
Search Interface:
Text input field
Search button
Enter key support
Real-time validation
Import Contacts
Multi-Platform Support:
1. iPhone/iPad Contacts:
iCloud integration guide
vCard export instructions
Focus on 5 close friends recommendation
Step-by-step instructions
Quality over quantity messaging
2. Android Contacts:
Google Contacts integration
CSV export process
5-friend maximum guidance
Platform-specific steps
3. Gmail Contacts:
Direct link to contacts.google.com
Manual lookup workflow
Friend selection tips
One-by-one search process
4. Outlook Contacts:
Outlook.live.com integration
People/contacts section guide
Friend identification process
Manual email/phone notation
Import Modal Features:
Platform selection
Detailed step-by-step guides
External links to contact platforms
Copy app link button
Responsible usage messaging
Key Insights
Leaderboard API Integration
Promise.allSettled Pattern
Parallel leaderboard fetches
Graceful partial failure handling
Default empty arrays
No blocking on single failures
Privacy Philosophy
5-Contact Recommendation: Quality over quantity
Existing Player Focus: Find players already on platform
No Mass Invitations: Prevents spam
Selective Sharing: Manual app link sharing
Targeted Connections: Encourages meaningful connections
Import Contact Workflow
User clicks "Find Friends on Platform"
Modal displays platform options
User selects their platform (iOS, Android, Gmail, Outlook)
Follows platform-specific export steps
Obtains up to 5 email addresses
Manually searches in Find Friends section
Connects with existing players
Optionally invites non-players
State Management
searchTerm: Search input statefriendsLeaderboardData: Four leaderboard datasetsuseEffectfor data fetching on mountContext-based notifications
User Experience
Empty states with clear guidance
Educational modals
External link warnings
Step-by-step instructions
Responsible usage messaging
Icon-based visual communication
Future Enhancements
Friend search is marked as "coming soon"
Import contacts is informational only
Prepared for future friend system features
Educational foundation for future functionality
Last updated