iOS: Use icon in header to create new channel (#80)
This commit is contained in:
parent
4e769920a1
commit
114c9727ce
|
@ -3,7 +3,7 @@ import { ListView } from 'realm/react-native';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import Icon from 'react-native-vector-icons/Ionicons';
|
import Icon from 'react-native-vector-icons/Ionicons';
|
||||||
import { View, StyleSheet, TextInput, SafeAreaView } from 'react-native';
|
import { Platform, View, StyleSheet, TextInput, SafeAreaView } from 'react-native';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import * as actions from '../actions';
|
import * as actions from '../actions';
|
||||||
import * as server from '../actions/connect';
|
import * as server from '../actions/connect';
|
||||||
|
@ -78,6 +78,25 @@ export default class RoomsListView extends React.Component {
|
||||||
server: PropTypes.string
|
server: PropTypes.string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static navigationOptions = ({ navigation }) => {
|
||||||
|
if (Platform.OS !== 'ios') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { params = {} } = navigation.state;
|
||||||
|
const headerRight = (
|
||||||
|
<Icon.Button
|
||||||
|
name='ios-create-outline'
|
||||||
|
color='blue'
|
||||||
|
size={26}
|
||||||
|
backgroundColor='transparent'
|
||||||
|
onPress={params.createChannel}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
return { headerRight };
|
||||||
|
};
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
|
@ -94,6 +113,10 @@ export default class RoomsListView extends React.Component {
|
||||||
componentWillMount() {
|
componentWillMount() {
|
||||||
this.data.addListener(this.updateState);
|
this.data.addListener(this.updateState);
|
||||||
|
|
||||||
|
this.props.navigation.setParams({
|
||||||
|
createChannel: () => this._createChannel()
|
||||||
|
});
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
...this.state,
|
...this.state,
|
||||||
dataSource: ds.cloneWithRows(this.data)
|
dataSource: ds.cloneWithRows(this.data)
|
||||||
|
@ -258,7 +281,7 @@ export default class RoomsListView extends React.Component {
|
||||||
style={styles.list}
|
style={styles.list}
|
||||||
renderRow={this.renderItem}
|
renderRow={this.renderItem}
|
||||||
renderHeader={this.renderSearchBar}
|
renderHeader={this.renderSearchBar}
|
||||||
contentOffset={{ x: 0, y: 20 }}
|
contentOffset={{ x: 0, y: 38 }}
|
||||||
enableEmptySections
|
enableEmptySections
|
||||||
keyboardShouldPersistTaps='always'
|
keyboardShouldPersistTaps='always'
|
||||||
/>
|
/>
|
||||||
|
@ -277,7 +300,7 @@ export default class RoomsListView extends React.Component {
|
||||||
<Banner />
|
<Banner />
|
||||||
<SafeAreaView style={styles.safeAreaView}>
|
<SafeAreaView style={styles.safeAreaView}>
|
||||||
{this.renderList()}
|
{this.renderList()}
|
||||||
{this.renderCreateButtons()}
|
{Platform.OS === 'android' && this.renderCreateButtons()}
|
||||||
</SafeAreaView>
|
</SafeAreaView>
|
||||||
</View>)
|
</View>)
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,7 +248,7 @@ export default class RoomsListView extends React.Component {
|
||||||
style={styles.list}
|
style={styles.list}
|
||||||
renderRow={this.renderItem}
|
renderRow={this.renderItem}
|
||||||
renderHeader={this.renderHeader}
|
renderHeader={this.renderHeader}
|
||||||
contentOffset={{ x: 0, y: this.props.users.length > 0 ? 40 : 20 }}
|
contentOffset={{ x: 0, y: this.props.users.length > 0 ? 38 : 0 }}
|
||||||
enableEmptySections
|
enableEmptySections
|
||||||
keyboardShouldPersistTaps='always'
|
keyboardShouldPersistTaps='always'
|
||||||
/>
|
/>
|
||||||
|
|
Loading…
Reference in New Issue