Skip to content

Replace React Navigation with TrueSheet for improved navigation UX - #12

Closed
stackedPenguin wants to merge 4 commits into
masterfrom
test-hermes-no-bottomsheet
Closed

Replace React Navigation with TrueSheet for improved navigation UX#12
stackedPenguin wants to merge 4 commits into
masterfrom
test-hermes-no-bottomsheet

Conversation

@stackedPenguin

Copy link
Copy Markdown
Collaborator

Summary

Migrated from React Navigation to TrueSheet native bottom sheets to eliminate navigation flashing and improve overall UX performance.

Changes

  • ✅ Added @lodev09/react-native-true-sheet package
  • ✅ Removed React Navigation dependencies
  • ✅ Extracted all navigation screens to dedicated files:
    • SendScreen.js - Send token transactions
    • ReceiveScreen.js - Display QR code and address
    • ActivityScreen.js - Transaction history
    • WalletManagerScreen.js - Wallet selection and management
    • WalletSettingsScreen.js - Wallet edit options
    • AddressSelectorScreen.js - Address picker for send flow
  • ✅ Converted navigation.navigate() to ref-based sheet.present() calls
  • ✅ Replaced route.params with direct prop passing
  • ✅ Removed SafeAreaView (handled by TrueSheet internally)
  • ✅ Implemented nested sheet support (SendScreen → AddressSelector)

Benefits

  • 🚀 Smoother native bottom sheet animations
  • ⚡ Eliminates navigation fade flashing
  • 📱 Better performance with imperative API
  • 🏗️ Cleaner component architecture with separated screen files

Test plan

  • Build APK successfully
  • Install and launch on emulator
  • Test all navigation flows (Send, Receive, Activity, Wallet Manager)
  • Test nested navigation (Send → Address Selector)
  • Verify smooth sheet animations without flashing
  • Test sheet dismissal with back gesture

Jack Levin and others added 4 commits November 16, 2025 09:14
Changes:
- Keep @gorhom/bottom-sheet imports (native modules still compile)
- Override with dummy components that don't render
- Add network timeout fix (3s) for SOL price fetching
- Add reanimated import as first line in index.js

This test version allows isolating whether bottom sheet animations
are causing UI freezes on certain devices. All functionality works
except bottom sheet UI won't be visible.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replaced worklets/reanimated-based bottom sheets with simple Modal
components to eliminate UI freezing issues on certain devices.

Changes:
- Created SimpleBottomSheet.tsx using React Native Modal
- Removed @gorhom/bottom-sheet dependency from App.js
- All bottom sheets now use Modal with slide animation
- Network timeout fix (3s) for SOL price fetching
- Reanimated import as first line in index.js

Benefits:
- No UI freezes (no worklets/reanimated animations)
- Works with both Hermes and JSC
- Simpler, more reliable bottom sheet implementation
- All functionality preserved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Migrate from React Navigation to @lodev09/react-native-true-sheet to eliminate navigation flashing and improve performance with native bottom sheet animations.

Changes:
- Add TrueSheet package and remove React Navigation dependencies
- Extract all navigation screens to dedicated screen files:
  - SendScreen.js - Send token transactions
  - ReceiveScreen.js - Display QR code and address
  - ActivityScreen.js - Transaction history
  - WalletManagerScreen.js - Wallet selection and management
  - WalletSettingsScreen.js - Wallet edit options
  - AddressSelectorScreen.js - Address picker for send flow
- Convert navigation.navigate() to ref-based sheet.present() calls
- Replace route.params with direct prop passing
- Remove SafeAreaView (handled by TrueSheet internally)
- Implement nested sheet support (SendScreen -> AddressSelector)

Benefits:
- Smoother, native bottom sheet animations
- Eliminates navigation fade flashing
- Better performance with imperative API
- Cleaner component architecture
- Auto-select and scroll to current wallet when wallet modal opens
- Auto-expand wallet modal to full screen when more than 2 wallets exist
- Auto-select newly created wallet after wallet creation
- Register new wallets with transaction indexer
- Add TrueSheet configuration with proper sizes and styling for all modals
- Extract Ledger connection screen into separate component

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants