* feat: implement floating banner system
- Add FloatingBanner component with gesture support and keyboard awareness
- Implement BannerManager singleton for banner lifecycle management
- Create floating banner screen with SafeAreaProvider integration
- Add comprehensive banner configuration types and positioning
- Update Banner component to use modern gesture handling
- Enhance BannerItem with improved typography and spacing (40px height)
- Add ConnectionBanner improvements with better sizing
- Remove ConnectionBanner from channel list (moved to floating system)
- Update screens constants (remove FLOATING_BANNER - handled as overlay)
- Add i18n support for limited network connection message
The system provides:
- Auto-hide functionality with customizable duration
- Position-aware rendering (top/bottom with keyboard adjustment)
- Tablet-specific offset handling
- Swipe-to-dismiss with configurable thresholds
- Custom component support alongside default banner items
- Comprehensive test coverage with device-specific scenarios
* docs: add floating banner system documentation and cleanup
- Add comprehensive floating-banner.md with architecture diagrams
- Remove incompatible connection_banner/index.ts file
- Update device.ts hooks for better keyboard handling
- Simplify screens/index.tsx floating banner registration
- Update test/setup.ts to remove deprecated keyboard mocks
- Clean up keyboard height logic and ESLint issues
The documentation covers:
- System architecture and component relationships
- API reference and usage patterns
- Performance considerations and best practices
- Integration points and troubleshooting guide
- Comprehensive testing strategy
All tests now pass with the updated setup.
* fix issue with translation file
* some self cleanup.
* renamed index.tsx => Banner.tsx
* creaete meaningful tests for Banner component and all the hooks.
* fix tests
* cleanup based on initial review by AI
* dismissible was set to true, changing to what was configured.
* making title and message optional
* feat(MM-65145): Network connectivity/performance observer
* add MONITOR_NETWORK_PERFORMANCE
* i18n stuff
* remove unused props
* Undo some AI changes that caught by another AI
* network connectivity observation md
* addressed some comments in PR
* more fixes based on PR review.
* added future enhancement
* dismissOverlay will be awaited
* delay dismissing overlay so we don't have to show a new one all the time
* make the banner stackable
* Fix issue with last banner dismissal delayed by 2s
* update floating-banner test
* put back an extra space
* add a todo to use namespace
* add comment on priority order for connectivity performance
* use static const vs magic number
* add a guard against adding performanceSubject when server has been removed
* fix failing tests
* clean-up based on review by @enahum
* fix failing test
* fix failiing tests
* rename confusing var
* update changes to types
* fixed issue with swipe not working on android
* performance and connectivity use the same id so that 2 banners won't appear
* fix issue w/ android not registering touch events behind the overlay
* fix failing test
* hideBanner now needs id.
* Connection status unknown added in en.json
* update the doc
* animate the banner moving up when bottom banner first appear.
* removed unused functions and update tests
* add useMemo and useCallback
* update jsdoc to say dismissable is default true
* fix failing test
* notification ringing, settings screen, native code patch, ringing mp3s
* i18n
* play preview on first press
* prevent playing from background (only affects Android) to match iOS beh
* stop ringing/vibration on entering background
* ring when coming back from background and new incoming call is present
* no push notification sound when it's a call; improve ringing
* move sounds to asset folder; copy on postinstall for android bundling
* make Ringtone type a string enum
* make Android ring async + await ring and stop; changes from PR comments
* missing fields after merge
* release lock on an exception
* cancel sample ringing when turning notifications off
* copy sound files for android build
* typo
* update snapshots
* testing if the problem is copying the mp3 files
* fix android mp3 assets when building for non-release
* add sounds to .gitignore
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Only call app entry on websocket reconnect
* Handle notification on its own entry and run app entry on websocket initialization
* Fix notification entry issues
* Fix login entry and add retry on entry failure
* feedback review
* Put back handleEntryAfterLoadNavigation before the batching
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>