forked from Ivasoft/mattermost-mobile
* [MM-16593] [MM-17175] [MM-17164] [MM-17189] [MM-17181] Android - Upgrade to RN 0.60 (#3145) * Upgrade to react-native 0.60 * Use @sentry/react-native * Manually link @sentry/react-native * Address review comments * Jetify after install * Call jetify from node_modules * [MM-17785] iOS - Upgrade to RN 0.60 (#3153) * Upgrade to react-native 0.60 * Use @sentry/react-native * Manually link @sentry/react-native * Address review comments * Jetify after install * Call jetify from node_modules * Get app building for iOS * Revert react-native-image-picker upgrade * Minor version upgrade of react-native-image-picker * [MM-17142] Convert all string refs to callbacks (#3217) * Replace string refs * Fix tests * Don't use inline functions * Fix mattermost-redux reversion from master merge * [MM-18336] Upload Sentry debug symbols only when SENTRY_ENABLED is true (#3227) * Upgrade @sentry/react-native * Run Sentry gradle tasks only when enabled * Upgrade @sentry/react-native and remove extra Sentry build phase * [MM-17144] Use Hermes (#3226) * Replace string refs * Fix tests * Don't use inline functions * Fix mattermost-redux reversion from master merge * Use Hermes * bundleCommand ram-bundle no longer needed * Require harmony-reflect only for Android * Fix failing test * Path react-native's splitLayoutProps (#3337) * [MM-18867] [MM-17186] [MM-18866] [MM-19447] [MM-18967] Upgrade to RN 0.61.2 (#3423) * Upgrade to RN 0.61.2 * Update rn-fetch-blob commit hash * Update react-native-keyboard-tracking-view commit hash * Use react-native-youtube with AVPlayer fix * Fix jest mocks * Use updated document picker API * Remove unnecessary linking * Revert "MM-17759 Add code highlighting (#3072)" This reverts commit26b999e885. * Fix share extension * Revert "Revert "MM-17759 Add code highlighting (#3072)"" This reverts commit52aca776b1. * Address PR reviews * Rename patch to match version * Update react-native-youtube patch * Update dependencies * Fix RNDocViewer reference * Update tests and revert to redux-persist 4.10.2 * Revert "Revert "Revert "MM-17759 Add code highlighting (#3072)""" This reverts commit5ef383be26. * Android fixes after dep upgrades * Use fresco 2.0.0 * Use mattermost forks * Use React-Core in Mattermost.scheme instead of react * Remove packager (#3452) * Remove Pods from source control * Fix unit tests * Add new line before entering the keystore in gradle.properties * set ios as working directory for cocoapods * Cache cocoapods on circleCI builds * set ios as working dir * fix cocoapods cache key * Unify fastlane and npm dependencies command * Use package-lock.json checksum for npm cache * Fix package.json and use the checksum as the cache key * Fix package.json and use the checksum as the cache key * changes to circleci.yaml fastlane and removing pods from git * Fix Mattermost.xcodeproj * Update coocoapods to 1.7.5 and fix xcode header search paths * Update package-lock.json * Remove unused tooltip component * Fix incorrect ref * Disable Hermes (#3460) * Revert "Remove packager (#3452)" This reverts commitb2a79e184b. * Disable Hermes :'( * Update preloaded modules * Fix packages moduleNames and modulePaths, update snapshots and update mm-redux (ts version) * remove document picker from modulePaths * Fix package-lock.json * Add eslint disable rules
98 lines
3.2 KiB
JavaScript
98 lines
3.2 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import 'react-native/Libraries/Core/InitializeCore';
|
|
import {AppRegistry, DeviceEventEmitter, Platform, Text, YellowBox} from 'react-native';
|
|
import 'react-native-gesture-handler';
|
|
|
|
import LocalConfig from 'assets/config';
|
|
|
|
import telemetry from 'app/telemetry';
|
|
|
|
import 'app/mattermost';
|
|
|
|
if (Platform.OS === 'android') {
|
|
require('harmony-reflect');
|
|
}
|
|
|
|
if (__DEV__) {
|
|
YellowBox.ignoreWarnings([
|
|
'Warning: componentWillReceiveProps',
|
|
|
|
// Hide warnings caused by React Native (https://github.com/facebook/react-native/issues/20841)
|
|
'Require cycle: node_modules/react-native/Libraries/Network/fetch.js',
|
|
]);
|
|
}
|
|
|
|
const setFontFamily = () => {
|
|
// Set a global font for Android
|
|
const defaultFontFamily = {
|
|
style: {
|
|
fontFamily: 'Roboto',
|
|
},
|
|
};
|
|
const TextRender = Text.render;
|
|
const initialDefaultProps = Text.defaultProps;
|
|
Text.defaultProps = {
|
|
...initialDefaultProps,
|
|
...defaultFontFamily,
|
|
};
|
|
Text.render = function render(props, ...args) {
|
|
const oldProps = props;
|
|
let newProps = {...props, style: [defaultFontFamily.style, props.style]};
|
|
try {
|
|
return Reflect.apply(TextRender, this, [newProps, ...args]);
|
|
} finally {
|
|
newProps = oldProps;
|
|
}
|
|
};
|
|
};
|
|
|
|
if (Platform.OS === 'android') {
|
|
const ShareExtension = require('share_extension/android').default;
|
|
AppRegistry.registerComponent('MattermostShare', () => ShareExtension);
|
|
setFontFamily();
|
|
|
|
if (LocalConfig.TelemetryEnabled) {
|
|
const metricsSubscription = DeviceEventEmitter.addListener('nativeMetrics', (metrics) => {
|
|
telemetry.setAppStartTime(metrics.appReload);
|
|
telemetry.include([
|
|
{name: 'start:process_packages', startTime: metrics.processPackagesStart, endTime: metrics.processPackagesEnd},
|
|
{name: 'start:content_appeared', startTime: metrics.appReload, endTime: metrics.appContentAppeared},
|
|
]);
|
|
telemetry.start(['start:overall'], metrics.appReload);
|
|
|
|
DeviceEventEmitter.removeSubscription(metricsSubscription);
|
|
});
|
|
}
|
|
}
|
|
|
|
// Uncomment the snippet below if you want to update the modules
|
|
// defined in packager/modulePaths.js so they are included in the main bundle.
|
|
|
|
/*
|
|
/!* eslint-disable no-console *!/
|
|
if (__DEV__) {
|
|
const modules = require.getModules();
|
|
const moduleIds = Object.keys(modules);
|
|
const loadedModuleNames = moduleIds.
|
|
filter((moduleId) => modules[moduleId].isInitialized).
|
|
map((moduleId) => modules[moduleId].verboseName);
|
|
|
|
const waitingModuleNames = moduleIds.
|
|
filter((moduleId) => !modules[moduleId].isInitialized).
|
|
map((moduleId) => modules[moduleId].verboseName);
|
|
|
|
// make sure that the modules you expect to be waiting are actually waiting
|
|
console.log(
|
|
'loaded:',
|
|
loadedModuleNames,
|
|
'waiting:',
|
|
waitingModuleNames
|
|
);
|
|
|
|
// grab this text blob, and put it in a file named packager/moduleNames.js
|
|
console.log(`module.exports = ${JSON.stringify(loadedModuleNames.sort())};`);
|
|
}
|
|
*/
|