* [#MM-12410] Custom Terms of Service Modal.
- Create a new screen for terms of service
- Register it in app navigation
- Open it as a modal when login succeeds or app is opened when already logged in.
- Get terms of service and render it as markdown
* Refactor service terms to terms of service
* Show terms modal when launching channel instead of componentDidMount
* Remove footer text
* Close modal before logging out
* Use dismissAllModals instead od this.close
* Update header styles
* Update the back icon
* Add left icon conditinally based on os
* Update en.json
* - Integrate Accept/Reject API
- Refactor show navigator to util
- Remove title
- Code refactoring
* Handle Accept/Reject API errors
* Update package-lock
* - Show Alert to handle API error
- Handle API error for GetTerms error, Accept/Reject error and Reject success
- Changes in en.json
- Remove error banner
- Open terms modal in sso and experimental certificate
* Enable navigator buttons after getting terms
* Rename Ok to OK in Alert
* Add retry for API error
* Fix check-style
* Fix FailedNetworkAction Error Message
* - Use Close button instead of back button
- Update en.json
* Remove unused import
* Disable hashtags and atmentions in terms modal
* Enable close button when terms text fails to load
* Minor changes
* Fix show terms on sso login
* Handle restartApp event
* Add test cases
* Revert change to app/components/formatted_markdown_text.js
* Show the terms modal on the channel page
* Remove remaining references to showTermsOfService
* Disable Hashtags, AtMentions and ChannelLinks
* Update the props to markdown component
* Pass the text as literal to renderText
* Return the generated renderTexts
* Fix lint
* Render ~, #, @ with Channel link, Hashtags and At Mentions
* Fix failing tests
Revert unwanted changes
* Hide the channel page content before the terms are accepted
* Fix lint and failing tests
* Revert changes to hide channel while terms are not accepted
* Open modal in componentDidMount instead of constructor
Code refactoring
Disable back button on android
* Remove unused import
* No need to await for showModal
* No need to await for accept and reject
* Update flag for updateTermsOfServiceStatus to updateMyTermsOfServiceStatus
- as phase 2 redux PR was mered.
* Fix check-style
* Change opacity in terms of service text
- Fix tests
* Revert package-lock.json changes
* Add automatic and manual timezone support
Update users timezone and scrollTo selected timezone in SelectTimezone coponent
Clean styles for SelectTimezone screen
Add auto-timezone update when login or enter app
Hide timezone feature behind config
Fix requested changes
Parse SupportedTimezone from config
Add localTime and localized post stamps
Add trailing commas
Include all timezone util methods from redux
Remove EnableTimezoneSelection flag
WIP get timezones from server
Pull supportedTimezones from api
Minor fixes
Remove wrapWithPreventDoubleTap
Revert back to react-intl formatDate
Include timeZone prop in FormattedTime
Refactor Timezone row into component
Minor cosmetic changes
Add minimum server support for the timezone feature
Move getSupportedTimezones to componentWillMount
Move autoUpdateTimezone function to handleSuccessfulLogin
Specify user timezone in profile_header
Remove format props from FormattedTime
Add ExperimentalTimezone flag
Replace Client().getServerVersion() with entities.general.serverVersion
Add isTimezoneEnabled helper function
Move isMinimumServerVersion to utils/timezone.js
* Fix style errors
* Remove date-time-format-timezone polyfill
* Feedback changes
* Use timezone selector from redux
* Explicitly pass hour12 props to intl.formatDate
* Update package-lock
* Revert iOS project file changes
* Fix license header
* Include timezone related paths in modulePaths
* Fix license header
* Fix minor issue with rebasing
* Fix issue with getconfig in GeneralSettings
* Update package-lock
* MM-10717: Update longpress buttons when add reaction, edit post, or delete post permissions change.
* MM-10717: Makes tooltip actions prop required.
* MM-10717: Switches all direct access of 'config' and 'license' to use selectors.
* update eslint's `comma-dangle` rule to `always-multiline`
* add check and fix scripts to package.json
* Invoke `yarn fix` to adopt the updated eslint rules. No other changes are included.