From 96403114443c761a58daa01c06743d3d3ff0a83c Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Wed, 24 Nov 2021 19:51:43 -0300 Subject: [PATCH 1/3] Chore: Migrate SelectServerView to Typescript --- ...lectServerView.js => SelectServerView.tsx} | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) rename app/views/{SelectServerView.js => SelectServerView.tsx} (58%) diff --git a/app/views/SelectServerView.js b/app/views/SelectServerView.tsx similarity index 58% rename from app/views/SelectServerView.js rename to app/views/SelectServerView.tsx index 0b43747af06..d3a6d191fbc 100644 --- a/app/views/SelectServerView.js +++ b/app/views/SelectServerView.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { FlatList } from 'react-native'; -import PropTypes from 'prop-types'; +import { StackNavigationOptions, StackNavigationProp } from '@react-navigation/stack'; import { connect } from 'react-redux'; -import { Q } from '@nozbe/watermelondb'; +import { Q, Model } from '@nozbe/watermelondb'; import I18n from '../i18n'; import StatusBar from '../containers/StatusBar'; @@ -12,29 +12,39 @@ import database from '../lib/database'; import SafeAreaView from '../containers/SafeAreaView'; import * as List from '../containers/List'; -const getItemLayout = (data, index) => ({ length: ROW_HEIGHT, offset: ROW_HEIGHT * index, index }); -const keyExtractor = item => item.id; +const getItemLayout = (data: any, index: number) => ({ length: ROW_HEIGHT, offset: ROW_HEIGHT * index, index }); +const keyExtractor = (item: IServer) => item.id; -class SelectServerView extends React.Component { - static navigationOptions = () => ({ +interface IServer extends Model { + id: string; + iconURL: string; + name: string; +} + +interface ISelectServerViewState { + servers: IServer[]; +} + +interface ISelectServerViewProps { + navigation: StackNavigationProp; + server: string; +} + +class SelectServerView extends React.Component { + static navigationOptions = (): StackNavigationOptions => ({ title: I18n.t('Select_Server') }); - static propTypes = { - server: PropTypes.string, - navigation: PropTypes.object - }; - - state = { servers: [] }; + state = { servers: [] as IServer[] }; async componentDidMount() { const serversDB = database.servers; const serversCollection = serversDB.get('servers'); - const servers = await serversCollection.query(Q.where('rooms_updated_at', Q.notEq(null))).fetch(); + const servers = (await serversCollection.query(Q.where('rooms_updated_at', Q.notEq(null))).fetch()) as IServer[]; this.setState({ servers }); } - select = async server => { + select = async (server: string) => { const { server: currentServer, navigation } = this.props; navigation.navigate('ShareListView'); @@ -43,13 +53,14 @@ class SelectServerView extends React.Component { } }; - renderItem = ({ item }) => { + renderItem = ({ item }: { item: IServer }) => { const { server } = this.props; return this.select(item.id)} item={item} hasCheck={item.id === server} />; }; render() { const { servers } = this.state; + console.log('🚀 ~ file: SelectServerView.tsx ~ line 53 ~ SelectServerView ~ render ~ this.state', this.state, this.props); return ( @@ -62,7 +73,6 @@ class SelectServerView extends React.Component { ItemSeparatorComponent={List.Separator} ListHeaderComponent={List.Separator} ListFooterComponent={List.Separator} - enableEmptySections removeClippedSubviews keyboardShouldPersistTaps='always' /> @@ -71,7 +81,7 @@ class SelectServerView extends React.Component { } } -const mapStateToProps = ({ share }) => ({ +const mapStateToProps = ({ share }: any) => ({ server: share.server.server }); From 3a77e53bba6990a65f2b1da4af6e0e00c80c48fe Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Wed, 24 Nov 2021 19:52:07 -0300 Subject: [PATCH 2/3] minor tweak --- app/views/SelectServerView.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/app/views/SelectServerView.tsx b/app/views/SelectServerView.tsx index d3a6d191fbc..0413f27ada8 100644 --- a/app/views/SelectServerView.tsx +++ b/app/views/SelectServerView.tsx @@ -60,7 +60,6 @@ class SelectServerView extends React.Component From 270c59ea6bd8b4aaaa6863c1a6f69aa4c84610d9 Mon Sep 17 00:00:00 2001 From: AlexAlexandre Date: Mon, 29 Nov 2021 15:48:31 -0300 Subject: [PATCH 3/3] refactor: minor tweak --- app/views/SelectServerView.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/SelectServerView.tsx b/app/views/SelectServerView.tsx index 0413f27ada8..e26645d9b08 100644 --- a/app/views/SelectServerView.tsx +++ b/app/views/SelectServerView.tsx @@ -17,8 +17,8 @@ const keyExtractor = (item: IServer) => item.id; interface IServer extends Model { id: string; - iconURL: string; - name: string; + iconURL?: string; + name?: string; } interface ISelectServerViewState { @@ -40,7 +40,7 @@ class SelectServerView extends React.Component