// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import TurboLogger from '@mattermost/react-native-turbo-log'; import {LogBox, Platform} from 'react-native'; import {RUNNING_E2E} from 'react-native-dotenv'; import 'react-native-gesture-handler'; import {Navigation} from 'react-native-navigation'; import ViewReactNativeStyleAttributes from 'react-native/Libraries/Components/View/ReactNativeStyleAttributes'; import {initialize, start} from './app/init/app'; import setFontFamily from './app/utils/font_family'; import {logInfo} from './app/utils/log'; declare const global: { HermesInternal: null | {} }; // Add scaleY back to work around its removal in React Native 0.70. ViewReactNativeStyleAttributes.scaleY = true; TurboLogger.configure({ dailyRolling: false, logToFile: !__DEV__, maximumFileSize: 1024 * 1024, maximumNumberOfFiles: 2, }); if (__DEV__) { LogBox.ignoreLogs([ '`-[RCTRootView cancelTouches]`', 'scaleY', "[react-native-gesture-handler] Seems like you're using an old API with gesture components, check out new Gestures system!", 'new NativeEventEmitter', ]); // Ignore all notifications if running e2e const isRunningE2e = RUNNING_E2E === 'true'; logInfo(`RUNNING_E2E: ${RUNNING_E2E}, isRunningE2e: ${isRunningE2e}`); if (isRunningE2e) { LogBox.ignoreAllLogs(true); } } setFontFamily(); if (global.HermesInternal) { // Polyfills required to use Intl with Hermes engine require('@formatjs/intl-getcanonicallocales/polyfill'); require('@formatjs/intl-locale/polyfill'); require('@formatjs/intl-pluralrules/polyfill'); require('@formatjs/intl-numberformat/polyfill'); require('@formatjs/intl-datetimeformat/polyfill'); require('@formatjs/intl-datetimeformat/add-golden-tz'); } if (Platform.OS === 'android') { const ShareExtension = require('share_extension/index.tsx').default; const AppRegistry = require('react-native/Libraries/ReactNative/AppRegistry'); AppRegistry.registerComponent('MattermostShare', () => ShareExtension); } Navigation.events().registerAppLaunchedListener(async () => { await initialize(); await start(); });