mirror of
				https://github.com/cinnyapp/cinny.git
				synced 2025-11-04 06:20:28 +03:00 
			
		
		
		
	Stop parsing servername from roomId (#2391)
This commit is contained in:
		
							parent
							
								
									fbd7e0a14b
								
							
						
					
					
						commit
						c30c142653
					
				
					 5 changed files with 9 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -9,7 +9,7 @@ import { getDirectRoomAvatarUrl } from '../../../utils/room';
 | 
			
		|||
import { useMatrixClient } from '../../../hooks/useMatrixClient';
 | 
			
		||||
import { AutocompleteQuery } from './autocompleteQuery';
 | 
			
		||||
import { AutocompleteMenu } from './AutocompleteMenu';
 | 
			
		||||
import { getMxIdServer, validMxId } from '../../../utils/matrix';
 | 
			
		||||
import { getMxIdServer, isRoomAlias } from '../../../utils/matrix';
 | 
			
		||||
import { UseAsyncSearchOptions, useAsyncSearch } from '../../../hooks/useAsyncSearch';
 | 
			
		||||
import { onTabPress } from '../../../utils/keyboard';
 | 
			
		||||
import { useKeyDown } from '../../../hooks/useKeyDown';
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +22,7 @@ import { getViaServers } from '../../../plugins/via-servers';
 | 
			
		|||
type MentionAutoCompleteHandler = (roomAliasOrId: string, name: string) => void;
 | 
			
		||||
 | 
			
		||||
const roomAliasFromQueryText = (mx: MatrixClient, text: string) =>
 | 
			
		||||
  validMxId(`#${text}`)
 | 
			
		||||
  isRoomAlias(`#${text}`)
 | 
			
		||||
    ? `#${text}`
 | 
			
		||||
    : `#${text}${text.endsWith(':') ? '' : ':'}${getMxIdServer(mx.getUserId() ?? '')}`;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ import {
 | 
			
		|||
import { onTabPress } from '../../../utils/keyboard';
 | 
			
		||||
import { createMentionElement, moveCursor, replaceWithElement } from '../utils';
 | 
			
		||||
import { useKeyDown } from '../../../hooks/useKeyDown';
 | 
			
		||||
import { getMxIdLocalPart, getMxIdServer, validMxId } from '../../../utils/matrix';
 | 
			
		||||
import { getMxIdLocalPart, getMxIdServer, isUserId } from '../../../utils/matrix';
 | 
			
		||||
import { getMemberDisplayName, getMemberSearchStr } from '../../../utils/room';
 | 
			
		||||
import { UserAvatar } from '../../user-avatar';
 | 
			
		||||
import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ import { Membership } from '../../../../types/matrix/room';
 | 
			
		|||
type MentionAutoCompleteHandler = (userId: string, name: string) => void;
 | 
			
		||||
 | 
			
		||||
const userIdFromQueryText = (mx: MatrixClient, text: string) =>
 | 
			
		||||
  validMxId(`@${text}`)
 | 
			
		||||
  isUserId(`@${text}`)
 | 
			
		||||
    ? `@${text}`
 | 
			
		||||
    : `@${text}${text.endsWith(':') ? '' : ':'}${getMxIdServer(mx.getUserId() ?? '')}`;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ import './SpaceAddExisting.scss';
 | 
			
		|||
 | 
			
		||||
import cons from '../../../client/state/cons';
 | 
			
		||||
import navigation from '../../../client/state/navigation';
 | 
			
		||||
import { joinRuleToIconSrc, getIdServer } from '../../../util/matrixUtil';
 | 
			
		||||
import { joinRuleToIconSrc } from '../../../util/matrixUtil';
 | 
			
		||||
import { Debounce } from '../../../util/common';
 | 
			
		||||
 | 
			
		||||
import Text from '../../atoms/text/Text';
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +21,6 @@ import Dialog from '../dialog/Dialog';
 | 
			
		|||
import CrossIC from '../../../../public/res/ic/outlined/cross.svg';
 | 
			
		||||
import SearchIC from '../../../../public/res/ic/outlined/search.svg';
 | 
			
		||||
 | 
			
		||||
import { useStore } from '../../hooks/useStore';
 | 
			
		||||
import { roomToParentsAtom } from '../../state/room/roomToParents';
 | 
			
		||||
import { useDirects, useRooms, useSpaces } from '../../state/hooks/roomList';
 | 
			
		||||
import { allRoomsAtom } from '../../state/room-list/roomList';
 | 
			
		||||
| 
						 | 
				
			
			@ -73,9 +72,6 @@ function SpaceAddExistingContent({ roomId, spaces: onlySpaces }) {
 | 
			
		|||
    await rateLimitedActions(selected, async (rId) => {
 | 
			
		||||
      const room = mx.getRoom(rId);
 | 
			
		||||
      const via = getViaServers(room);
 | 
			
		||||
      if (via.length === 0) {
 | 
			
		||||
        via.push(getIdServer(rId));
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      await mx.sendStateEvent(
 | 
			
		||||
        roomId,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,9 +23,9 @@ const DOMAIN_REGEX = /\b(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b/;
 | 
			
		|||
 | 
			
		||||
export const isServerName = (serverName: string): boolean => DOMAIN_REGEX.test(serverName);
 | 
			
		||||
 | 
			
		||||
export const matchMxId = (id: string): RegExpMatchArray | null => id.match(/^([@!$+#])(.+):(\S+)$/);
 | 
			
		||||
const matchMxId = (id: string): RegExpMatchArray | null => id.match(/^([@$+#])(.+):(\S+)$/);
 | 
			
		||||
 | 
			
		||||
export const validMxId = (id: string): boolean => !!matchMxId(id);
 | 
			
		||||
const validMxId = (id: string): boolean => !!matchMxId(id);
 | 
			
		||||
 | 
			
		||||
export const getMxIdServer = (userId: string): string | undefined => matchMxId(userId)?.[3];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +33,7 @@ export const getMxIdLocalPart = (userId: string): string | undefined => matchMxI
 | 
			
		|||
 | 
			
		||||
export const isUserId = (id: string): boolean => validMxId(id) && id.startsWith('@');
 | 
			
		||||
 | 
			
		||||
export const isRoomId = (id: string): boolean => validMxId(id) && id.startsWith('!');
 | 
			
		||||
export const isRoomId = (id: string): boolean => id.startsWith('!');
 | 
			
		||||
 | 
			
		||||
export const isRoomAlias = (id: string): boolean => validMxId(id) && id.startsWith('#');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,11 +93,8 @@ function convertToRoom(mx, roomId) {
 | 
			
		|||
 * @param {string[]} via
 | 
			
		||||
 */
 | 
			
		||||
async function join(mx, roomIdOrAlias, isDM = false, via = undefined) {
 | 
			
		||||
  const roomIdParts = roomIdOrAlias.split(':');
 | 
			
		||||
  const viaServers = via || [roomIdParts[1]];
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    const resultRoom = await mx.joinRoom(roomIdOrAlias, { viaServers });
 | 
			
		||||
    const resultRoom = await mx.joinRoom(roomIdOrAlias, { viaServers: via });
 | 
			
		||||
 | 
			
		||||
    if (isDM) {
 | 
			
		||||
      const targetUserId = guessDMRoomTargetId(mx.getRoom(resultRoom.roomId), mx.getUserId());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue