From 5970d29ee74d38821344451c201a74a9aaa0b7f9 Mon Sep 17 00:00:00 2001 From: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com> Date: Wed, 11 May 2022 13:33:27 -0300 Subject: [PATCH] Chore: Evaluate AdminPanelView - TypeScript (#4162) --- app/stacks/InsideStack.tsx | 2 +- app/stacks/MasterDetailStack/index.tsx | 6 +-- app/views/AdminPanelView/index.tsx | 72 +++++++++++--------------- 3 files changed, 33 insertions(+), 47 deletions(-) diff --git a/app/stacks/InsideStack.tsx b/app/stacks/InsideStack.tsx index 112ee4ae1..756fd5f2b 100644 --- a/app/stacks/InsideStack.tsx +++ b/app/stacks/InsideStack.tsx @@ -198,7 +198,7 @@ const AdminPanelStackNavigator = () => { return ( - + ); }; diff --git a/app/stacks/MasterDetailStack/index.tsx b/app/stacks/MasterDetailStack/index.tsx index 2fa7cd4ea..3b85d9e39 100644 --- a/app/stacks/MasterDetailStack/index.tsx +++ b/app/stacks/MasterDetailStack/index.tsx @@ -196,11 +196,7 @@ const ModalStackNavigator = React.memo(({ navigation }: INavigation) => { options={props => ProfileView.navigationOptions!({ ...props, isMasterDetail: true })} /> - AdminPanelView.navigationOptions!({ ...props, isMasterDetail: true })} - /> + diff --git a/app/views/AdminPanelView/index.tsx b/app/views/AdminPanelView/index.tsx index 5a3dde90e..d51f019e4 100644 --- a/app/views/AdminPanelView/index.tsx +++ b/app/views/AdminPanelView/index.tsx @@ -1,55 +1,45 @@ -import React from 'react'; +import React, { useEffect } from 'react'; +import { useNavigation } from '@react-navigation/native'; import { WebView } from 'react-native-webview'; -import { connect } from 'react-redux'; -import { DrawerScreenProps } from '@react-navigation/drawer'; -import { StackNavigationOptions } from '@react-navigation/stack'; +import { useSelector } from 'react-redux'; +import { StackNavigationProp } from '@react-navigation/stack'; import I18n from '../../i18n'; import StatusBar from '../../containers/StatusBar'; import * as HeaderButton from '../../containers/HeaderButton'; -import { withTheme } from '../../theme'; import { getUserSelector } from '../../selectors/login'; import SafeAreaView from '../../containers/SafeAreaView'; import { AdminPanelStackParamList } from '../../stacks/types'; +import { IApplicationState } from '../../definitions'; -interface IAdminPanelViewProps { - baseUrl: string; - token: string; -} +const AdminPanelView = () => { + const navigation = useNavigation>(); + const baseUrl = useSelector((state: IApplicationState) => state.server.server); + const token = useSelector((state: IApplicationState) => getUserSelector(state).token); + const isMasterDetail = useSelector((state: IApplicationState) => state.app.isMasterDetail); -interface INavigationOptions { - navigation: DrawerScreenProps; - isMasterDetail: boolean; -} + useEffect(() => { + navigation.setOptions({ + headerLeft: isMasterDetail ? undefined : () => , + title: I18n.t('Admin_Panel') + }); + }, [isMasterDetail, navigation]); -class AdminPanelView extends React.Component { - static navigationOptions = ({ navigation, isMasterDetail }: INavigationOptions): StackNavigationOptions => ({ - headerLeft: isMasterDetail ? undefined : () => , - title: I18n.t('Admin_Panel') - }); - - render() { - const { baseUrl, token } = this.props; - if (!baseUrl) { - return null; - } - return ( - - - {}} - source={{ uri: `${baseUrl}/admin/info?layout=embedded` }} - injectedJavaScript={`Meteor.loginWithToken('${token}', function() { })`} - /> - - ); + if (!baseUrl) { + return null; } -} -const mapStateToProps = (state: any) => ({ - baseUrl: state.server.server, - token: getUserSelector(state).token -}); + return ( + + + {}} + source={{ uri: `${baseUrl}/admin/info?layout=embedded` }} + injectedJavaScript={`Meteor.loginWithToken('${token}', function() { })`} + /> + + ); +}; -export default connect(mapStateToProps)(withTheme(AdminPanelView)); +export default AdminPanelView;