* feat(MM-65145): low connectivity manager
* forgot localization
* connection banner showing limited network connectivity
* network_performance_manager test
* adding some test related to network performance monitoring
* add comment about count-based sliding window
* component and hook tests
* clean up some code based on review.
* changes based on CP review
* 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
* feat: add shared server password to server setup
* feat: allow editing the sever
* refactor: changed password -> secret, styling and tests
* e2e: draft e2e tests
* chore: lint fix
* feat: also send preauth secret header when using native share
* fix: removed unused server database migration
credentials are being stored in the keychain
* i18n: added missing english translations
* test(e2e): simplified connection tests
* test(e2e): rework
* refactor: remove setBearerToken
* chore: restore migrations the way it was
* chore: reverted file to original state
* chore: removed unneeded test and renamed password to secret
* chore: function version
* chore: updated forms i18n keys
* chore: remove if from test
* chore: unneeded variable
* fix: add missing key on object list
* refactor: swift keychain access to retrieve all credentials in one call
* revert: edit server screen
* refactor: credentials use getGenericCredential
* fix: objc code calling old method
* fix: added scroll to login screen
* chore: variable names
* fix: avoid inline styles
* fix: Improved appVersion positioning
* Update app/screens/server/form.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* feat: show error message on 403
* Revert "feat: show error message on 403"
This reverts commit f41630c767e10211adf1885321ceefd8a0931e32.
---------
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Fix MM-61975
* Add missing strings
* Ensure the app gets logged out after not accepting the ToS
* Fix i18n and add comment
* Fix tests and address feedback
* Check for the right value coming from status
* Update texts
* Network metrics
* update network-client ref
* fix unit tests
* missing catch error parsing
* Replace API's to fetch all teams and channels for a user
Update groupLabel to use a type definition
Include effective Latency and Average Speed in the metrics
Include parallel and sequential request counts
* update network library and fix tests
* feat(MM-61865): send network request telemetry data to the server (#8436)
* feat(MM-61865): send network info telemetry data
* unit testing
* fix latency vs effectiveLatency
* cleanup test
* fix failing tests
* fix spelling error
* fix failing test
* more cleanup
* fix: improve parallel requests calculation (#8439)
* fix: improve parallel requests calculation
* fix test issue
* multiple parallelGroups testing
* calculateAverageSpeedWithCategories test
* categorizedRequests in it's own describe
* clean up duplicate tests
* check for when groupLabel is non-existent
* a case when groupLabel is non-existent
* more testing with effective latency.
* resolveAndFlattenModels with a capital F
* add try..catch within resolveAndFlattenModels
* update groupLabel to fix failing lint
* fix linting issue due to unknown group label
* forgot to push changes
* fix the indentation problem again
* add env var option for COLLECT_NETWORK_METRICS
---------
Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>