diff --git a/app/containers/MessageBox/index.tsx b/app/containers/MessageBox/index.tsx index 0366bc1b3..047c128bd 100644 --- a/app/containers/MessageBox/index.tsx +++ b/app/containers/MessageBox/index.tsx @@ -274,7 +274,7 @@ class MessageBox extends Component { } if (isMasterDetail && usedCannedResponse) { - this.onChangeText(''); + this.onChangeText(usedCannedResponse); } this.unsubscribeFocus = navigation.addListener('focus', () => { diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index 04e1239e7..9234f43d8 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -1040,7 +1040,7 @@ const RocketChat = { } return this.post('subscriptions.read', { rid: roomId }); }, - getRoomMembers({ rid, allUsers, roomType, type, filter, skip = 0, limit = 10 }) { + async getRoomMembers({ rid, allUsers, roomType, type, filter, skip = 0, limit = 10 }) { const serverVersion = reduxStore.getState().server.version; if (compareServerVersion(serverVersion, '3.16.0', methods.greaterThanOrEqualTo)) { const params = { @@ -1051,10 +1051,12 @@ const RocketChat = { ...(filter && { filter }) }; // RC 3.16.0 - return this.sdk.get(`${this.roomTypeToApiType(roomType)}.members`, params); + const result = await this.sdk.get(`${this.roomTypeToApiType(roomType)}.members`, params); + return result?.members; } // RC 0.42.0 - return this.methodCallWrapper('getUsersOfRoom', rid, allUsers, { skip, limit }); + const result = await this.methodCallWrapper('getUsersOfRoom', rid, allUsers, { skip, limit }); + return result?.records; }, methodCallWrapper(method, ...params) { const { API_Use_REST_For_DDP_Calls } = reduxStore.getState().settings; diff --git a/app/views/CannedResponsesListView/index.js b/app/views/CannedResponsesListView/index.js index a9d59b228..f9f515deb 100644 --- a/app/views/CannedResponsesListView/index.js +++ b/app/views/CannedResponsesListView/index.js @@ -1,6 +1,6 @@ import React, { useEffect, useState, useCallback } from 'react'; import PropTypes from 'prop-types'; -import { FlatList, RefreshControl } from 'react-native'; +import { FlatList } from 'react-native'; import { useSelector } from 'react-redux'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { HeaderBackButton } from '@react-navigation/stack'; @@ -50,7 +50,6 @@ const CannedResponsesListView = ({ navigation, route }) => { const [cannedResponses, setCannedResponses] = useState([]); const [cannedResponsesScopeName, setCannedResponsesScopeName] = useState([]); const [departments, setDepartments] = useState([]); - const [refreshing, setRefreshing] = useState(false); // states used by the filter in Header and Dropdown const [isSearching, setIsSearching] = useState(false); @@ -304,17 +303,6 @@ const CannedResponsesListView = ({ navigation, route }) => { ); }; - const onRefresh = () => { - setRefreshing(true); - onChangeText(''); - }; - - useEffect(() => { - if (refreshing) { - setRefreshing(false); - } - }, [cannedResponses]); - const renderContent = () => { if (!cannedResponsesScopeName.length && !loading) { return ( @@ -341,13 +329,12 @@ const CannedResponsesListView = ({ navigation, route }) => { /> )} keyExtractor={item => item._id || item.shortcut} - refreshControl={} ListHeaderComponent={renderFlatListHeader} stickyHeaderIndices={[0]} onEndReached={onEndReached} onEndReachedThreshold={0.5} ItemSeparatorComponent={List.Separator} - ListFooterComponent={loading && !refreshing ? : null} + ListFooterComponent={loading ? : null} /> ); }; diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 56073a0ad..c3bd105af 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -75,6 +75,7 @@ class RoomActionsView extends React.Component { const member = props.route.params?.member; this.rid = props.route.params?.rid; this.t = props.route.params?.t; + this.joined = props.route.params?.joined; this.state = { room: room || { rid: this.rid, t: this.t }, membersCount: 0, @@ -173,7 +174,7 @@ class RoomActionsView extends React.Component { get isOmnichannelPreview() { const { room } = this.state; - return room.t === 'l' && room.status === 'queued'; + return room.t === 'l' && room.status === 'queued' && !this.joined; } onPressTouchable = item => { diff --git a/app/views/RoomMembersView/index.js b/app/views/RoomMembersView/index.js index c4a5ca7ab..308946982 100644 --- a/app/views/RoomMembersView/index.js +++ b/app/views/RoomMembersView/index.js @@ -434,7 +434,6 @@ class RoomMembersView extends React.Component { fetchMembers = async () => { const { rid, members, isLoading, allUsers, end, room, filtering } = this.state; const { t } = room; - let newMembers; if (isLoading || end) { return; } @@ -449,11 +448,10 @@ class RoomMembersView extends React.Component { skip: members.length, limit: PAGE_SIZE }); - newMembers = membersResult.members; this.setState({ - members: members.concat(newMembers || []), + members: members.concat(membersResult || []), isLoading: false, - end: newMembers.length < PAGE_SIZE + end: membersResult?.length < PAGE_SIZE }); this.setHeader(); } catch (e) { diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index d7c9d1525..3aa389467 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -433,7 +433,7 @@ class RoomView extends React.Component { goRoomActionsView = screen => { logEvent(events.ROOM_GO_RA); - const { room, member } = this.state; + const { room, member, joined } = this.state; const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { navigation.navigate('ModalStackNavigator', { @@ -443,7 +443,8 @@ class RoomView extends React.Component { t: this.t, room, member, - showCloseModal: !!screen + showCloseModal: !!screen, + joined } }); } else { @@ -451,7 +452,8 @@ class RoomView extends React.Component { rid: this.rid, t: this.t, room, - member + member, + joined }); } };