32 Commits

Author SHA1 Message Date
DocNR
5ff311bc4a feat(ios): Prepare app for TestFlight submission
UI enhancements and production optimizations:
- Added production flag in theme constants
- Hid development-only Programs tab in production builds
- Removed debug UI elements and debug logs from social feed
- Fixed workout completion flow UI issues (input styling, borders, spacing)
- Made improvements to exercise name resolution in feeds
- Standardized form element spacing and styling
- Enhanced multiline inputs with consistent design system

Note: Exercise name resolution in social feed still needs additional work
2025-04-06 23:26:55 -04:00
DocNR
9ad50956f8 fix: improve authentication state persistence with Zustand
- Standardize secure storage keys across auth systems
- Fix inconsistent key naming in NDK store and auth providers
- Implement proper credential migration between storage systems
- Enhance error handling during credential restoration
- Fix private key authentication not persisting across app restarts
- Add detailed logging for auth initialization sequence
- Improve overall authentication stability with better state management
2025-04-05 23:47:12 -04:00
DocNR
c441c5afa5 feat(profile): Improve profile loading performance with tiered display system
- Add ultra-early content display after just 500ms with ANY data available
- Implement progressive content loading with three-tier timeout system
- Reduce timeouts from 5s to 4s on Android and 4s to 3s on iOS
- Enhance render state logic to prioritize partial content display
- Improve parallel data loading for all profile elements
- Add multiple fallback timers to ensure content always displays
- Update CHANGELOG.md with detailed performance improvements

This commit dramatically improves perceived performance by showing content
as soon as it becomes available rather than waiting for complete data load.
2025-04-04 22:43:03 -04:00
DocNR
e6f1677d2c fix(android): prevent profile screen hanging with timeout and fallbacks
- Adds 5-second timeout for Android API calls to NostrBand with AbortController
- Implements platform-specific settings for React Query with longer caches on Android
- Creates error recovery with fallback values instead of empty UI states
- Fixes memory leaks with proper component mount tracking via useRef
- Adds Android-specific safety timeouts to force-refresh unresponsive screens
- Prevents hook ordering issues with consistent hook calling patterns
- Enhances error handling with dedicated error boundaries and recovery UI
- Adds comprehensive documentation for the Android profile optimizations
2025-04-04 18:00:20 -04:00
DocNR
c64ca8bf19 fix: profile stats loading and display issues on iOS and Android
- Enhanced NostrBandService with aggressive cache-busting and better error handling
- Improved useProfileStats hook with optimized refresh settings and platform-specific logging
- Fixed ProfileFollowerStats UI to show actual values with loading indicators
- Added visual feedback during refresh operations
- Updated CHANGELOG.md to document these improvements

This resolves the issue where follower/following counts were not updating properly
on Android and iOS platforms.
2025-04-04 15:46:31 -04:00
DocNR
3e4f304f56 Fix Android database initialization issue with platform-specific approach 2025-04-03 22:18:02 -04:00
DocNR
ff8851bd04 feat(auth): implement auth system core infrastructure (Phase 1)
- Add state machine for authentication state management
- Add signing queue for background processing
- Add auth service for centralized authentication logic
- Add React context provider for components
- Keep feature flag disabled for now
2025-04-02 23:40:54 -04:00
DocNR
969163313a fix(auth): Improve authentication state handling and avatar display
* Add style prop to UserAvatar component for better customization
* Refactor UserAvatar to use getAvatarSeed utility for consistent avatar generation
* Fix React hook ordering issues in profile/overview.tsx to prevent crashes during auth state changes
* Add proper state initialization and cleanup during authentication transitions
* Ensure consistent fallback avatar display for unauthenticated users

These changes improve stability during login/logout operations and provide better visual continuity with Robohash avatars when profile images aren't available.
2025-04-02 21:11:25 -04:00
DocNR
755e86e30b fix(profile): standardize login experience across profile screens
- Create reusable NostrProfileLogin component for consistent UI across all screens
- Fix profile feed error when not authenticated by conditionally calling useSocialFeed
- Resolve hook ordering inconsistencies to prevent React errors
- Improve feed loading state management during authentication transitions
- Update all profile screens (overview, activity, progress, settings) to use shared component
- Add proper error handling for profile data loading when not authenticated

This change resolves the console error that appeared when accessing the profile tab
while not logged in, while also providing a better user experience through
consistent styling and messaging across all profile screens.
2025-04-01 21:28:50 -04:00
DocNR
8e68fcf60f Fix Android Amber signer integration and cleanup repo structure
- Added Amber external signer integration for secure private key management on Android

- Fixed authentication issues and NIP-55 protocol implementation

- Added comprehensive documentation in amber-integration-fixes.md

- Moved android_backup to external location to keep repo clean

- Updated .gitignore to exclude APK files
2025-04-01 00:03:41 -04:00
DocNR
aad1b875a3 Android NIP-55 Amber integration and nsec key handling fixes 2025-03-29 17:47:10 -07:00
DocNR
89504f48e8 feat(deployment): prepare app for iOS TestFlight submission
- Update outdated Expo packages to latest compatible versions
- Remove unmaintained expo-random package
- Remove unnecessary @types/react-native package
- Configure eas.json with preview and production profiles for iOS
- Fix updates URL in app.json with correct project ID
- Add /android and /ios to .gitignore to resolve workflow conflict
- Create comprehensive iOS TestFlight submission guide
- Add production flag in theme constants
- Hide development-only Programs tab in production builds
- Remove debug UI and console logs from social feed in production
- Update CHANGELOG.md with TestFlight preparation changes
All checks from expo-doctor now pass (15/15).
2025-03-28 21:22:20 -07:00
DocNR
3f2ababe4f nostr.band integration for follow/following count 2025-03-28 10:18:44 -07:00
DocNR
22dcf81828 Restore documentation changes while maintaining stable codebase 2025-03-26 20:02:53 -07:00
DocNR
9043179643 Add NDK Mobile Cache Integration Plan and enhance offline functionality 2025-03-23 15:53:34 -04:00
DocNR
a5d98ba251 Fix calendar date highlighting shape and improve workout date detection 2025-03-23 11:07:26 -04:00
DocNR
3004bcd4f8 Fix history tab navigation issues and improve workout detail error handling 2025-03-23 06:59:22 -04:00
DocNR
e4aa59a07e Add Profile Tab enhancements and Terms of Service modal 2025-03-22 23:21:26 -04:00
DocNR
329154fc3d fix(templates): preserve exercise IDs during template creation
- Modified NewTemplateSheet to store full exercise objects
- Updated handleAddTemplate to use original exercise IDs
- Fixed type definitions to support enhanced template exercises
2025-03-22 20:14:19 -04:00
DocNR
58194c0eb3 restructure and optimization of social tab 2025-03-21 22:21:45 -04:00
DocNR
a3e9dc36d8 POWR Pack feature WIP - basic functionality, need to associate exercise events with workout template events. 2025-03-13 14:02:36 -04:00
DocNR
07fada6d07 new relay managment system 2025-03-09 11:15:28 -04:00
DocNR
29c4dd1675 feat(database): Add workout and template persistence
Implements database tables and services for workout and template storage:
- Updates schema to version 5 with new workout and template tables
- Adds WorkoutService for CRUD operations on workouts
- Enhances TemplateService for template management
- Creates NostrWorkoutService for bidirectional Nostr event handling
- Implements React hooks for database access
- Connects workout store to database layer for persistence
- Improves offline support with publication queue

This change ensures workouts and templates are properly saved to SQLite
and can be referenced across app sessions, while maintaining Nostr
integration for social sharing.
2025-03-08 15:48:07 -05:00
DocNR
25d40b3a12 workout completion flow WIP 2025-03-07 10:09:55 -05:00
DocNR
b61381b865 updated with NDK-mobile library and removed custom nostr functions 2025-03-06 16:34:50 -05:00
DocNR
4eb9d428a2 updated exercise/template UI, publication queue, forking of exercises (templates next) 2025-03-06 09:19:16 -05:00
DocNR
f870f2a0ca nostr testing component (programs) functioning with all event kinds 2025-03-04 08:07:27 -05:00
DocNR
0a0af436c0 updated template details and fixed favoriting workouts 2025-02-26 23:30:00 -05:00
DocNR
f26a59f569 Library tab MVP finished 2025-02-19 21:39:47 -05:00
DocNR
7fd62bce37 sqlite db implementation with development seeding and mock exercise library and more 2025-02-17 13:40:37 -05:00
DocNR
76433b93e6 update to add new exercise UI and database testing 2025-02-17 11:24:17 -05:00
DocNR
87cdf3fc1c Initial commit of new POWR version 2025-02-09 20:38:38 -05:00