* Add Report a Problem functionality
* update cache pinned SHA version from 4.0.2 to 4.2.0
* Address feedback
* Fix tests
* Fix some issues and update kotlin coroutines version
* Fix delete file for iOS
* Bump 1 more version for coroutines
* Use rxjava instead of kotlin coroutines to avoid security issue
* Move path prefix to avoid test error
* Address feedback
* Address feedback
* Address feedback
* Use mailto on iOS
* Fix tests related to button changes
* Address feedback
* Update icon and fix onboarding buttons
* Fix test
---------
Co-authored-by: Angelos Kyratzakos <angelos.kyratzakos@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
* Add license load metric to About screen
- Add REST endpoint to fetch license load percentage
- Display load metric in About screen next to server version
Fixes: https://mattermost.atlassian.net/browse/MM-63728
* MM-63728: Address PR feedback from enahum
- Move license load metric fetch to a remote action
- Use isMinimumServerVersion to check for server 10.8.0 or higher
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Simplify getLicenseLoadMetric to directly return number
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Move getLicenseLoadMetric to dedicated license.ts file
- Create new remote action file specifically for license-related functions
- Add test file for the license actions
- Update imports in about.tsx
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Remove redundant license check in about.tsx
- Rely on getLicenseLoadMetric to handle the license check
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Update E2E tests for license load metric
- Add license load metric test IDs to about screen
- Update E2E test to check for load metric when license is enabled
- Handle cases where server might not support the feature
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* recover app/actions/remote/general.ts
* MM-63728: Return error from getLicenseLoadMetric instead of silent failure
- Remove silent failure and debug logging
- Return the error object when API call fails
- Update the About component to handle possible error responses
- Update tests to verify error handling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Remove groupLabel parameter from getLicenseLoadMetric
- Remove groupLabel parameter from client getLicenseLoadMetric method in interface and implementation
- Update client tests to reflect the parameter removal
- Update license action test to verify no parameter is passed
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* simplify about screen checks
* MM-63728: Use jest.mocked and real version checks in license tests
- Removed isMinimumServerVersion mock, letting tests use real version checking
- Used proper type casting for mock Client
- Added comprehensive version compatibility test cases
- Simplified test setup
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Remove redundant server version test
- Removed redundant test for different server versions
- Existing tests already cover the necessary version compatibility cases
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Refactor license test to use better mocking pattern
- Refactored the test file to use a better mocking pattern similar to custom_emoji.test.ts
- Simplified mock declarations using jest.mock()
- Added type import for Client for better readability
- Improved type casting for mock objects
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* npm run fix
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat: add copy to clip board button in about page
* add intl format text
* make suggested changes.
- fix: wrap copyToClipBoard function in useCallBack
- remove annonymous function onPress, provide function pointer
- make code readable in copyToClipBoard function
* formatting
* small fix
* change copy to clipboard position
- created a custom button eith icon and text
- usd button theme color
* button styling
* divider color
* use predefined btn element
* Add e2e test for copy info button
* feat: refactor the styles for thin lines
- fix: change touchable opacity to view
- add margin top to footer text
* change icon size to 15
* remove unnecessary view
* add config to dependency of callback
* suggeste changes on onClick func
* modified en.json file after running i18-extract
* Improve translations
* Address feedback
* Fix non updated default messages
---------
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* added MENU_ITEM_HEIGHT to constant/view
* fix user presence and your profile
* added MENU_ITEM_HEIGHT to constant/view
* fix user presence and your profile
* UI Polish - Custom Status
* UI Polish - Settings
* UI Polish - logout
* refactored styles
* removed 'throws DataOperatorException' from './database/`
* fix for copy link option
* fix autoresponder
1. user should be allowed to enter paragraph
2. the OOO was not immediately being updated on the notification main screen. The fix is to cal fetchStatusInBatch after the updateMe operation
* About Screen - code clean up
* removed MenuItem component from common_post_options
* removed MenuItem from Settings
* refactored show_more and recent_item
* removed menu_item component
* Update setting_container.tsx
* PR review correction
* Update setting_container.tsx
* Update recent_item.tsx