diff --git a/share_extension/ios/extension_channels.js b/share_extension/ios/extension_channels.js
index cecaa9308..73c3252e3 100644
--- a/share_extension/ios/extension_channels.js
+++ b/share_extension/ios/extension_channels.js
@@ -95,12 +95,15 @@ export default class ExtensionChannels extends PureComponent {
this.setState({sections});
};
+ cancelSearch = () => {
+ this.setState({term: ''});
+ this.buildSections();
+ };
+
goBack = () => {
this.props.navigator.pop();
};
- keyExtractor = (item) => item.id;
-
loadChannels = async () => {
try {
const {entities, teamId} = this.props;
@@ -191,9 +194,9 @@ export default class ExtensionChannels extends PureComponent {
headerTextColor={changeOpacity(theme.centerChannelColor, 0.6)}
style={styles.flex}
>
-
+
{this.renderSearchBar(styles)}
-
+
{this.renderSections()}
);
@@ -217,6 +220,7 @@ export default class ExtensionChannels extends PureComponent {
tintColorDelete={changeOpacity(theme.centerChannelColor, 0.3)}
titleCancelColor={theme.linkColor}
onChangeText={this.handleSearch}
+ onCancelButtonPress={this.cancelSearch}
value={this.state.term}
/>
@@ -314,7 +318,8 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => {
},
searchContainer: {
backgroundColor: changeOpacity(theme.centerChannelColor, 0.2),
- paddingBottom: 2
+ paddingBottom: 2,
+ paddingHorizontal: 5
},
searchBarInput: {
backgroundColor: '#fff',
diff --git a/share_extension/ios/extension_post.js b/share_extension/ios/extension_post.js
index f4664a7f0..0e20ed75b 100644
--- a/share_extension/ios/extension_post.js
+++ b/share_extension/ios/extension_post.js
@@ -513,7 +513,7 @@ export default class ExtensionPost extends PureComponent {
};
selectTeam = (team, channel) => {
- this.setState({channel, team});
+ this.setState({channel, team, error: null});
// Update the channels for the team
Client4.getMyChannels(team.id).then((channels) => {
@@ -523,7 +523,18 @@ export default class ExtensionPost extends PureComponent {
this.setState({channel: defaultChannel});
}
}).catch((error) => {
- this.setState({error});
+ const {entities} = this.props;
+ if (entities.channels.channelsInTeam[team.id]) {
+ const townSquare = Object.values(entities.channels.channels).find((c) => {
+ return c.name === General.DEFAULT_CHANNEL && c.team_id === team.id;
+ });
+
+ if (!channel) {
+ this.setState({channel: townSquare});
+ }
+ } else {
+ this.setState({error});
+ }
});
};
diff --git a/share_extension/ios/extension_team_item.js b/share_extension/ios/extension_team_item.js
index c09d5e4bf..744f5eaa3 100644
--- a/share_extension/ios/extension_team_item.js
+++ b/share_extension/ios/extension_team_item.js
@@ -8,7 +8,6 @@ import {
TouchableHighlight,
View
} from 'react-native';
-import IonIcon from 'react-native-vector-icons/Ionicons';
import {wrapWithPreventDoubleTap} from 'app/utils/tap';
import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
@@ -34,18 +33,6 @@ export default class TeamsListItem extends React.PureComponent {
} = this.props;
const styles = getStyleSheet(theme);
- let current;
- if (team.id === currentTeamId) {
- current = (
-
-
-
- );
- }
-
const icon = (
@@ -54,10 +41,18 @@ export default class TeamsListItem extends React.PureComponent {
);
+ const wrapperStyle = [styles.wrapper];
+ if (team.id === currentTeamId) {
+ wrapperStyle.push({
+ width: '90%'
+ });
+ }
+
return (
@@ -69,7 +64,6 @@ export default class TeamsListItem extends React.PureComponent {
>
{team.display_name}
- {current}
@@ -79,6 +73,10 @@ export default class TeamsListItem extends React.PureComponent {
const getStyleSheet = makeStyleSheetFromTheme((theme) => {
return {
+ wrapper: {
+ height: 45,
+ width: '100%'
+ },
container: {
flex: 1,
flexDirection: 'row',
diff --git a/share_extension/ios/extension_teams.js b/share_extension/ios/extension_teams.js
index 485b46740..8455df644 100644
--- a/share_extension/ios/extension_teams.js
+++ b/share_extension/ios/extension_teams.js
@@ -3,9 +3,10 @@
import React, {PureComponent} from 'react';
import PropTypes from 'prop-types';
-import {ActivityIndicator, FlatList, Text, View} from 'react-native';
+import {ActivityIndicator, Text, View} from 'react-native';
import DeviceInfo from 'react-native-device-info';
import {intlShape} from 'react-intl';
+import TableView from 'react-native-tableview';
import {General} from 'mattermost-redux/constants';
import {getChannelsInTeam} from 'mattermost-redux/selectors/entities/channels';
@@ -49,8 +50,6 @@ export default class ExtensionTeams extends PureComponent {
this.goBack();
};
- keyExtractor = (item) => item.id;
-
loadTeams = async () => {
try {
const defaultChannels = {};
@@ -85,6 +84,7 @@ export default class ExtensionTeams extends PureComponent {
};
renderBody = (styles) => {
+ const {theme} = this.props;
const {error, myTeams} = this.state;
if (error) {
@@ -106,43 +106,44 @@ export default class ExtensionTeams extends PureComponent {
}
return (
-
+
+
+ {this.renderItems(myTeams)}
+
+
);
};
- renderItem = ({item}) => {
+ renderItems = (myTeams) => {
const {currentTeamId, theme} = this.props;
- return (
-
- );
- };
-
- renderItemSeparator = () => {
- const {theme} = this.props;
- const styles = getStyleSheet(theme);
-
- return (
-
-
-
- );
+ return myTeams.map((team) => {
+ return (
+
+
+
+
+
+ );
+ });
};
sortDisplayName = (a, b) => {