20 lines
599 B
TypeScript
20 lines
599 B
TypeScript
|
|
import { useMemo } from 'react';
|
||
|
|
import { useMatrixClient } from './useMatrixClient';
|
||
|
|
|
||
|
|
import { getCanonicalAliasRoomId, isRoomAlias } from '../utils/matrix';
|
||
|
|
|
||
|
|
export const useJoinedRoomId = (allRooms: string[], roomIdOrAlias: string): string | undefined => {
|
||
|
|
const mx = useMatrixClient();
|
||
|
|
|
||
|
|
const joinedRoomId = useMemo(() => {
|
||
|
|
const roomId = isRoomAlias(roomIdOrAlias)
|
||
|
|
? getCanonicalAliasRoomId(mx, roomIdOrAlias)
|
||
|
|
: roomIdOrAlias;
|
||
|
|
|
||
|
|
if (roomId && allRooms.includes(roomId)) return roomId;
|
||
|
|
return undefined;
|
||
|
|
}, [mx, allRooms, roomIdOrAlias]);
|
||
|
|
|
||
|
|
return joinedRoomId;
|
||
|
|
};
|