fix: app won't open archived channels (#5135)
* getSubscriptionByRoomId, then if null do the request * add getRoomByTypeAndName * minor tweak --------- Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
This commit is contained in:
parent
9ee26916b5
commit
5c5ff2d51f
|
@ -7,7 +7,9 @@ import {
|
|||
SubscriptionType,
|
||||
IUser,
|
||||
IAvatarSuggestion,
|
||||
IProfileParams
|
||||
IProfileParams,
|
||||
RoomType,
|
||||
IServerRoom
|
||||
} from '../../definitions';
|
||||
import { ISpotlight } from '../../definitions/ISpotlight';
|
||||
import { TEAM_TYPE } from '../../definitions/ITeam';
|
||||
|
@ -334,6 +336,9 @@ export const getRoomInfo = (roomId: string) =>
|
|||
// RC 0.72.0
|
||||
sdk.get('rooms.info', { roomId });
|
||||
|
||||
export const getRoomByTypeAndName = (roomType: RoomType, roomName: string): Promise<IServerRoom> =>
|
||||
sdk.methodCallWrapper('getRoomByTypeAndName', roomType, roomName);
|
||||
|
||||
export const getVisitorInfo = (visitorId: string) =>
|
||||
// RC 2.3.0
|
||||
sdk.get('livechat/visitors.info', { visitorId });
|
||||
|
|
|
@ -27,6 +27,7 @@ import { IApplicationState, IServerRoom, IUser, SubscriptionType } from '../../d
|
|||
import styles from './styles';
|
||||
import Options from './Options';
|
||||
import { Services } from '../../lib/services';
|
||||
import { getSubscriptionByRoomId } from '../../lib/database/services/Subscription';
|
||||
|
||||
interface IDirectoryViewProps {
|
||||
navigation: CompositeNavigationProp<
|
||||
|
@ -163,13 +164,20 @@ class DirectoryView extends React.Component<IDirectoryViewProps, IDirectoryViewS
|
|||
if (result.success) {
|
||||
this.goRoom({ rid: result.room._id, name: item.username, t: SubscriptionType.DIRECT });
|
||||
}
|
||||
} else if (['p', 'c'].includes(item.t) && !item.teamMain) {
|
||||
const result = await Services.getRoomInfo(item._id);
|
||||
if (result.success) {
|
||||
return;
|
||||
}
|
||||
const subscription = await getSubscriptionByRoomId(item._id);
|
||||
if (subscription) {
|
||||
this.goRoom(subscription);
|
||||
return;
|
||||
}
|
||||
if (['p', 'c'].includes(item.t) && !item.teamMain) {
|
||||
const result = await Services.getRoomByTypeAndName(item.t, item.name || item.fname);
|
||||
if (result) {
|
||||
this.goRoom({
|
||||
rid: item._id,
|
||||
name: item.name,
|
||||
joinCodeRequired: result.room.joinCodeRequired,
|
||||
joinCodeRequired: result.joinCodeRequired,
|
||||
t: item.t as SubscriptionType,
|
||||
search: true
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue