[FIX] Omnichannel chat is broken the first time is taken (#4037)

* [FIX] Omnichannel chat is broken the first time is taken

* refactor how to get a room from db
This commit is contained in:
Reinaldo Neto 2022-04-18 16:35:50 -03:00 committed by GitHub
parent 0a67cb8096
commit 3c53d48a3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 27 additions and 9 deletions

View File

@ -16,7 +16,15 @@ import RoomTypeIcon from '../../containers/RoomTypeIcon';
import SafeAreaView from '../../containers/SafeAreaView'; import SafeAreaView from '../../containers/SafeAreaView';
import Status from '../../containers/Status'; import Status from '../../containers/Status';
import StatusBar from '../../containers/StatusBar'; import StatusBar from '../../containers/StatusBar';
import { IApplicationState, IBaseScreen, IRoom, ISubscription, IUser, TSubscriptionModel } from '../../definitions'; import {
IApplicationState,
IBaseScreen,
IRoom,
ISubscription,
IUser,
SubscriptionType,
TSubscriptionModel
} from '../../definitions';
import { withDimensions } from '../../dimensions'; import { withDimensions } from '../../dimensions';
import I18n from '../../i18n'; import I18n from '../../i18n';
import database from '../../lib/database'; import database from '../../lib/database';
@ -33,6 +41,7 @@ import styles from './styles';
import { ERoomType } from '../../definitions/ERoomType'; import { ERoomType } from '../../definitions/ERoomType';
import { E2E_ROOM_TYPES, SWITCH_TRACK_COLOR, themes } from '../../lib/constants'; import { E2E_ROOM_TYPES, SWITCH_TRACK_COLOR, themes } from '../../lib/constants';
import { compareServerVersion } from '../../lib/methods/helpers/compareServerVersion'; import { compareServerVersion } from '../../lib/methods/helpers/compareServerVersion';
import { getSubscriptionByRoomId } from '../../lib/database/services/Subscription';
interface IRoomActionsViewProps extends IBaseScreen<ChatsStackParamList, 'RoomActionsView'> { interface IRoomActionsViewProps extends IBaseScreen<ChatsStackParamList, 'RoomActionsView'> {
userId: string; userId: string;
@ -139,7 +148,15 @@ class RoomActionsView extends React.Component<IRoomActionsViewProps, IRoomAction
this.mounted = true; this.mounted = true;
const { room, member } = this.state; const { room, member } = this.state;
if (room.rid) { if (room.rid) {
if (!room.id && !this.isOmnichannelPreview) { if (!room.id) {
if (room.t === SubscriptionType.OMNICHANNEL) {
if (!this.isOmnichannelPreview) {
const result = await getSubscriptionByRoomId(room.rid);
if (result) {
this.setState({ room: result });
}
}
} else {
try { try {
const result = await RocketChat.getChannelInfo(room.rid); const result = await RocketChat.getChannelInfo(room.rid);
if (result.success) { if (result.success) {
@ -150,6 +167,7 @@ class RoomActionsView extends React.Component<IRoomActionsViewProps, IRoomAction
log(e); log(e);
} }
} }
}
if (room && room.t !== 'd' && this.canViewMembers()) { if (room && room.t !== 'd' && this.canViewMembers()) {
try { try {