[NEW] Admin (#800)

* added admin panel

* reverting some changes

* fixed problem with authToken

* changed tab to space

* done requested changes

* fixed lint

* added react-native-webview

* Install webview pod
This commit is contained in:
pranavpandey1998official 2019-05-19 01:01:33 +05:30 committed by Diego Mello
parent d969b04d3a
commit 31cf0e5f2f
32 changed files with 2588 additions and 2156 deletions

View File

@ -200,6 +200,7 @@ configurations.all {
} }
dependencies { dependencies {
implementation project(':react-native-webview')
implementation project(':react-native-orientation-locker') implementation project(':react-native-orientation-locker')
implementation project(':react-native-splash-screen') implementation project(':react-native-splash-screen')
implementation project(':react-native-screens') implementation project(':react-native-screens')

View File

@ -3,6 +3,7 @@ package chat.rocket.reactnative;
import android.app.Application; import android.app.Application;
import com.facebook.react.ReactApplication; import com.facebook.react.ReactApplication;
import com.reactnativecommunity.webview.RNCWebViewPackage;
import org.wonday.orientation.OrientationPackage; import org.wonday.orientation.OrientationPackage;
import org.devio.rn.splashscreen.SplashScreenReactPackage; import org.devio.rn.splashscreen.SplashScreenReactPackage;
import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactNativeHost;
@ -51,6 +52,7 @@ public class MainApplication extends Application implements ReactApplication, IN
protected List<ReactPackage> getPackages() { protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList( return Arrays.<ReactPackage>asList(
new MainReactPackage(), new MainReactPackage(),
new RNCWebViewPackage(),
new OrientationPackage(), new OrientationPackage(),
new SplashScreenReactPackage(), new SplashScreenReactPackage(),
new RNGestureHandlerPackage(), new RNGestureHandlerPackage(),

View File

@ -1,4 +1,6 @@
rootProject.name = 'RocketChatRN' rootProject.name = 'RocketChatRN'
include ':react-native-webview'
project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')
include ':react-native-orientation-locker' include ':react-native-orientation-locker'
project(':react-native-orientation-locker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-orientation-locker/android') project(':react-native-orientation-locker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-orientation-locker/android')
include ':react-native-splash-screen' include ':react-native-splash-screen'

View File

@ -81,6 +81,7 @@ export default {
Add_Reaction: 'Add Reaction', Add_Reaction: 'Add Reaction',
Add_Server: 'Add Server', Add_Server: 'Add Server',
Add_user: 'Add user', Add_user: 'Add user',
Admin_Panel: 'Admin Panel',
Alert: 'Alert', Alert: 'Alert',
alert: 'alert', alert: 'alert',
alerts: 'alerts', alerts: 'alerts',

View File

@ -20,6 +20,7 @@ import Navigation from './lib/Navigation';
import Sidebar from './views/SidebarView'; import Sidebar from './views/SidebarView';
import ProfileView from './views/ProfileView'; import ProfileView from './views/ProfileView';
import SettingsView from './views/SettingsView'; import SettingsView from './views/SettingsView';
import AdminPanelView from './views/AdminPanelView';
import RoomActionsView from './views/RoomActionsView'; import RoomActionsView from './views/RoomActionsView';
import RoomInfoView from './views/RoomInfoView'; import RoomInfoView from './views/RoomInfoView';
import RoomInfoEditView from './views/RoomInfoEditView'; import RoomInfoEditView from './views/RoomInfoEditView';
@ -145,6 +146,12 @@ const SettingsStack = createStackNavigator({
defaultNavigationOptions: defaultHeader defaultNavigationOptions: defaultHeader
}); });
const AdminPanelStack = createStackNavigator({
AdminPanelView
}, {
defaultNavigationOptions: defaultHeader
});
SettingsStack.navigationOptions = ({ navigation }) => { SettingsStack.navigationOptions = ({ navigation }) => {
let drawerLockMode = 'unlocked'; let drawerLockMode = 'unlocked';
if (navigation.state.index > 0) { if (navigation.state.index > 0) {
@ -158,7 +165,8 @@ SettingsStack.navigationOptions = ({ navigation }) => {
const ChatsDrawer = createDrawerNavigator({ const ChatsDrawer = createDrawerNavigator({
ChatsStack, ChatsStack,
ProfileStack, ProfileStack,
SettingsStack SettingsStack,
AdminPanelStack
}, { }, {
contentComponent: Sidebar contentComponent: Sidebar
}); });

View File

@ -0,0 +1,48 @@
import React from 'react';
import PropTypes from 'prop-types';
import { WebView } from 'react-native-webview';
import { SafeAreaView } from 'react-navigation';
import { connect } from 'react-redux';
import I18n from '../../i18n';
import LoggedView from '../View';
import StatusBar from '../../containers/StatusBar';
import { DrawerButton } from '../../containers/HeaderButton';
import styles from '../Styles';
@connect(state => ({
baseUrl: state.settings.Site_Url || state.server ? state.server.server : '',
authToken: state.login.user && state.login.user.token
}))
/** @extends React.Component */
export default class AdminPanelView extends LoggedView {
static navigationOptions = ({ navigation }) => ({
headerLeft: <DrawerButton navigation={navigation} />,
title: I18n.t('Admin_Panel')
})
static propTypes = {
baseUrl: PropTypes.string,
authToken: PropTypes.string
}
constructor(props) {
super('AdminPanelView', props);
}
render() {
const { baseUrl, authToken } = this.props;
if (!baseUrl) {
return null;
}
return (
<SafeAreaView style={styles.container} testID='terms-view'>
<StatusBar />
<WebView
source={{ uri: `${ baseUrl }/admin/info?layout=embedded` }}
injectedJavaScript={`Meteor.loginWithToken('${ authToken }', function() { })`}
/>
</SafeAreaView>
);
}
}

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { WebView } from 'react-native'; import { WebView } from 'react-native-webview';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import RocketChat from '../lib/rocketchat'; import RocketChat from '../lib/rocketchat';

View File

@ -20,11 +20,19 @@ import { CustomIcon } from '../../lib/Icons';
import styles from './styles'; import styles from './styles';
import SidebarItem from './SidebarItem'; import SidebarItem from './SidebarItem';
import { COLOR_TEXT } from '../../constants/colors'; import { COLOR_TEXT } from '../../constants/colors';
import database from '../../lib/realm';
const keyExtractor = item => item.id; const keyExtractor = item => item.id;
const Separator = React.memo(() => <View style={styles.separator} />); const Separator = React.memo(() => <View style={styles.separator} />);
const permissions = [
'view-statistics',
'view-room-administration',
'view-user-administration',
'view-privileged-setting'
];
@connect(state => ({ @connect(state => ({
Site_Name: state.settings.Site_Name, Site_Name: state.settings.Site_Name,
user: { user: {
@ -32,7 +40,8 @@ const Separator = React.memo(() => <View style={styles.separator} />);
language: state.login.user && state.login.user.language, language: state.login.user && state.login.user.language,
status: state.login.user && state.login.user.status, status: state.login.user && state.login.user.status,
username: state.login.user && state.login.user.username, username: state.login.user && state.login.user.username,
token: state.login.user && state.login.user.token token: state.login.user && state.login.user.token,
roles: state.login.user && state.login.user.roles
}, },
baseUrl: state.settings.Site_Url || state.server ? state.server.server : '' baseUrl: state.settings.Site_Url || state.server ? state.server.server : ''
}), dispatch => ({ }), dispatch => ({
@ -137,6 +146,19 @@ export default class Sidebar extends Component {
logout(); logout();
} }
canSeeAdminPanel() {
const { user } = this.props;
const { roles } = user;
if (roles) {
const permissionsFiltered = database.objects('permissions')
.filter(permission => permissions.includes(permission._id));
return permissionsFiltered.reduce((result, permission) => (
result || permission.roles.some(r => roles.includes(r))),
false);
}
return false;
}
renderStatusItem = ({ item }) => { renderStatusItem = ({ item }) => {
const { user } = this.props; const { user } = this.props;
return ( return (
@ -183,6 +205,15 @@ export default class Sidebar extends Component {
testID='sidebar-settings' testID='sidebar-settings'
current={activeItemKey === 'SettingsStack'} current={activeItemKey === 'SettingsStack'}
/> />
{this.canSeeAdminPanel() ? (
<SidebarItem
text={I18n.t('Admin_Panel')}
left={<CustomIcon name='shield-alt' size={20} color={COLOR_TEXT} />}
onPress={() => this.sidebarNavigate('AdminPanelView')}
testID='sidebar-settings'
current={activeItemKey === 'AdminPanelStack'}
/>
) : null}
<Separator key='separator-logout' /> <Separator key='separator-logout' />
<SidebarItem <SidebarItem
text={I18n.t('Logout')} text={I18n.t('Logout')}

View File

@ -32,6 +32,8 @@ target 'RocketChatRN' do
pod 'react-native-orientation-locker', :path => '../node_modules/react-native-orientation-locker' pod 'react-native-orientation-locker', :path => '../node_modules/react-native-orientation-locker'
pod 'react-native-webview', :path => '../node_modules/react-native-webview'
end end
post_install do |installer| post_install do |installer|

View File

@ -6,6 +6,8 @@ PODS:
- React - React
- react-native-splash-screen (3.2.0): - react-native-splash-screen (3.2.0):
- React - React
- react-native-webview (5.8.1):
- React
- React/Core (0.58.6): - React/Core (0.58.6):
- yoga (= 0.58.6.React) - yoga (= 0.58.6.React)
- React/fishhook (0.58.6) - React/fishhook (0.58.6)
@ -46,6 +48,7 @@ PODS:
DEPENDENCIES: DEPENDENCIES:
- react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`) - react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`)
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`) - react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
- react-native-webview (from `../node_modules/react-native-webview`)
- React/Core (from `../node_modules/react-native`) - React/Core (from `../node_modules/react-native`)
- React/RCTActionSheet (from `../node_modules/react-native`) - React/RCTActionSheet (from `../node_modules/react-native`)
- React/RCTAnimation (from `../node_modules/react-native`) - React/RCTAnimation (from `../node_modules/react-native`)
@ -73,6 +76,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-orientation-locker" :path: "../node_modules/react-native-orientation-locker"
react-native-splash-screen: react-native-splash-screen:
:path: "../node_modules/react-native-splash-screen" :path: "../node_modules/react-native-splash-screen"
react-native-webview:
:path: "../node_modules/react-native-webview"
RNDeviceInfo: RNDeviceInfo:
:path: "../node_modules/react-native-device-info" :path: "../node_modules/react-native-device-info"
RNImageCropPicker: RNImageCropPicker:
@ -87,12 +92,13 @@ SPEC CHECKSUMS:
React: 130b87b2d5e2baac646954282cab87be986d98fc React: 130b87b2d5e2baac646954282cab87be986d98fc
react-native-orientation-locker: 132a63bab4dddd2a5709f6f7935ad9676b0af7c5 react-native-orientation-locker: 132a63bab4dddd2a5709f6f7935ad9676b0af7c5
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865 react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
react-native-webview: f3e28b48461c78db833f727feec08b13285e7b61
RNDeviceInfo: 958a1ed6f94e04557b865b8ef848cfc83db0ebba RNDeviceInfo: 958a1ed6f94e04557b865b8ef848cfc83db0ebba
RNImageCropPicker: e608efe182652dc8690268cb99cb5a201f2b5ea3 RNImageCropPicker: e608efe182652dc8690268cb99cb5a201f2b5ea3
RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed
RSKImageCropper: 98296ad26b41753f796b6898d015509598f13d97 RSKImageCropper: 98296ad26b41753f796b6898d015509598f13d97
yoga: 32d7ef1081951e9a35a4c72a7be797598b138a48 yoga: 32d7ef1081951e9a35a4c72a7be797598b138a48
PODFILE CHECKSUM: cef0a3df130baa205d9d4dcbf8ecc923f8f744cb PODFILE CHECKSUM: cfaf85fae8fddbd9a7ea26e0a72d0a2d3852af66
COCOAPODS: 1.6.0 COCOAPODS: 1.6.2

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCUIWebView.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCUIWebViewManager.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCWKProcessPoolManager.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCWKWebView.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCWKWebViewManager.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCUIWebView.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCUIWebViewManager.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCWKProcessPoolManager.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCWKWebView.h

View File

@ -0,0 +1 @@
../../../../../node_modules/react-native-webview/ios/RNCWKWebViewManager.h

View File

@ -0,0 +1,20 @@
{
"name": "react-native-webview",
"version": "5.8.1",
"summary": "React Native WebView component for iOS, Android, and Windows 10 (coming soon)",
"license": "MIT",
"authors": "Jamon Holmgren <jamon@infinite.red>",
"homepage": "https://github.com/react-native-community/react-native-webview#readme",
"platforms": {
"ios": "9.0"
},
"source": {
"git": "https://github.com/react-native-community/react-native-webview.git"
},
"source_files": "ios/**/*.{h,m}",
"dependencies": {
"React": [
]
}
}

10
ios/Pods/Manifest.lock generated
View File

@ -6,6 +6,8 @@ PODS:
- React - React
- react-native-splash-screen (3.2.0): - react-native-splash-screen (3.2.0):
- React - React
- react-native-webview (5.8.1):
- React
- React/Core (0.58.6): - React/Core (0.58.6):
- yoga (= 0.58.6.React) - yoga (= 0.58.6.React)
- React/fishhook (0.58.6) - React/fishhook (0.58.6)
@ -46,6 +48,7 @@ PODS:
DEPENDENCIES: DEPENDENCIES:
- react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`) - react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`)
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`) - react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
- react-native-webview (from `../node_modules/react-native-webview`)
- React/Core (from `../node_modules/react-native`) - React/Core (from `../node_modules/react-native`)
- React/RCTActionSheet (from `../node_modules/react-native`) - React/RCTActionSheet (from `../node_modules/react-native`)
- React/RCTAnimation (from `../node_modules/react-native`) - React/RCTAnimation (from `../node_modules/react-native`)
@ -73,6 +76,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-orientation-locker" :path: "../node_modules/react-native-orientation-locker"
react-native-splash-screen: react-native-splash-screen:
:path: "../node_modules/react-native-splash-screen" :path: "../node_modules/react-native-splash-screen"
react-native-webview:
:path: "../node_modules/react-native-webview"
RNDeviceInfo: RNDeviceInfo:
:path: "../node_modules/react-native-device-info" :path: "../node_modules/react-native-device-info"
RNImageCropPicker: RNImageCropPicker:
@ -87,12 +92,13 @@ SPEC CHECKSUMS:
React: 130b87b2d5e2baac646954282cab87be986d98fc React: 130b87b2d5e2baac646954282cab87be986d98fc
react-native-orientation-locker: 132a63bab4dddd2a5709f6f7935ad9676b0af7c5 react-native-orientation-locker: 132a63bab4dddd2a5709f6f7935ad9676b0af7c5
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865 react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
react-native-webview: f3e28b48461c78db833f727feec08b13285e7b61
RNDeviceInfo: 958a1ed6f94e04557b865b8ef848cfc83db0ebba RNDeviceInfo: 958a1ed6f94e04557b865b8ef848cfc83db0ebba
RNImageCropPicker: e608efe182652dc8690268cb99cb5a201f2b5ea3 RNImageCropPicker: e608efe182652dc8690268cb99cb5a201f2b5ea3
RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed RNScreens: 720a9e6968beb73e8196239801e887d8401f86ed
RSKImageCropper: 98296ad26b41753f796b6898d015509598f13d97 RSKImageCropper: 98296ad26b41753f796b6898d015509598f13d97
yoga: 32d7ef1081951e9a35a4c72a7be797598b138a48 yoga: 32d7ef1081951e9a35a4c72a7be797598b138a48
PODFILE CHECKSUM: cef0a3df130baa205d9d4dcbf8ecc923f8f744cb PODFILE CHECKSUM: cfaf85fae8fddbd9a7ea26e0a72d0a2d3852af66
COCOAPODS: 1.6.0 COCOAPODS: 1.6.2

File diff suppressed because it is too large Load Diff

View File

@ -184,4 +184,29 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
## react-native-webview
MIT License
Copyright (c) 2015-present, Facebook, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Generated by CocoaPods - https://cocoapods.org Generated by CocoaPods - https://cocoapods.org

View File

@ -244,6 +244,37 @@ SOFTWARE.
<key>Type</key> <key>Type</key>
<string>PSGroupSpecifier</string> <string>PSGroupSpecifier</string>
</dict> </dict>
<dict>
<key>FooterText</key>
<string>MIT License
Copyright (c) 2015-present, Facebook, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>react-native-webview</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict> <dict>
<key>FooterText</key> <key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string> <string>Generated by CocoaPods - https://cocoapods.org</string>

View File

@ -1,7 +1,7 @@
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-splash-screen" "${PODS_ROOT}/Headers/Public/yoga" HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-splash-screen" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/yoga"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-splash-screen" "${PODS_CONFIGURATION_BUILD_DIR}/yoga" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-splash-screen" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/yoga"
OTHER_LDFLAGS = $(inherited) -ObjC -l"QBImagePickerController" -l"RNDeviceInfo" -l"RNImageCropPicker" -l"RNScreens" -l"RSKImageCropper" -l"React" -l"react-native-orientation-locker" -l"react-native-splash-screen" -l"stdc++" -l"yoga" -framework "JavaScriptCore" -framework "Photos" -framework "QuartzCore" -framework "UIKit" OTHER_LDFLAGS = $(inherited) -ObjC -l"QBImagePickerController" -l"RNDeviceInfo" -l"RNImageCropPicker" -l"RNScreens" -l"RSKImageCropper" -l"React" -l"react-native-orientation-locker" -l"react-native-splash-screen" -l"react-native-webview" -l"stdc++" -l"yoga" -framework "JavaScriptCore" -framework "Photos" -framework "QuartzCore" -framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR} PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

View File

@ -1,7 +1,7 @@
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-splash-screen" "${PODS_ROOT}/Headers/Public/yoga" HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-splash-screen" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/yoga"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-splash-screen" "${PODS_CONFIGURATION_BUILD_DIR}/yoga" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-splash-screen" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/yoga"
OTHER_LDFLAGS = $(inherited) -ObjC -l"QBImagePickerController" -l"RNDeviceInfo" -l"RNImageCropPicker" -l"RNScreens" -l"RSKImageCropper" -l"React" -l"react-native-orientation-locker" -l"react-native-splash-screen" -l"stdc++" -l"yoga" -framework "JavaScriptCore" -framework "Photos" -framework "QuartzCore" -framework "UIKit" OTHER_LDFLAGS = $(inherited) -ObjC -l"QBImagePickerController" -l"RNDeviceInfo" -l"RNImageCropPicker" -l"RNScreens" -l"RSKImageCropper" -l"React" -l"react-native-orientation-locker" -l"react-native-splash-screen" -l"react-native-webview" -l"stdc++" -l"yoga" -framework "JavaScriptCore" -framework "Photos" -framework "QuartzCore" -framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR} PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

View File

@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_react_native_webview : NSObject
@end
@implementation PodsDummy_react_native_webview
@end

View File

@ -0,0 +1,12 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif

View File

@ -0,0 +1,9 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/react-native-webview" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/React" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/yoga"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/react-native-webview
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES

View File

@ -65,6 +65,7 @@
"react-native-video-controls": "^2.2.3", "react-native-video-controls": "^2.2.3",
"react-navigation": "^3.9.1", "react-navigation": "^3.9.1",
"react-navigation-header-buttons": "^2.3.1", "react-navigation-header-buttons": "^2.3.1",
"react-native-webview": "5.8.1",
"react-redux": "^6.0.0", "react-redux": "^6.0.0",
"reactotron-react-native": "2.2", "reactotron-react-native": "2.2",
"realm": "2.26.1", "realm": "2.26.1",

View File

@ -6685,7 +6685,7 @@ interpret@^1.0.0, interpret@^1.1.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
invariant@^2.1.0, invariant@^2.2.2, invariant@^2.2.4: invariant@2.2.4, invariant@^2.1.0, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4" version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@ -10575,6 +10575,14 @@ react-native-video@^4.4.1:
prop-types "^15.5.10" prop-types "^15.5.10"
shaka-player "^2.4.4" shaka-player "^2.4.4"
react-native-webview@5.8.1:
version "5.8.1"
resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-5.8.1.tgz#6f5a83dec55bbc02700155b1a16a668870f14de0"
integrity sha512-b6pSvmjoiWtcz6YspggW02X+BRXJWuquHwkh37BRx1NMW1iwMZA31SnFQvTpPzWYYIb9WF/mRsy2nGtt9C6NIg==
dependencies:
escape-string-regexp "1.0.5"
invariant "2.2.4"
react-native@0.58.6: react-native@0.58.6:
version "0.58.6" version "0.58.6"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.58.6.tgz#a6d273cd2f51b0e3b141dad5f19622e0000497b3" resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.58.6.tgz#a6d273cd2f51b0e3b141dad5f19622e0000497b3"