diff --git a/src/frontend/src/features/rooms/utils/isRoomValid.ts b/src/frontend/src/features/rooms/utils/isRoomValid.ts index 2cadf034..14ac6acb 100644 --- a/src/frontend/src/features/rooms/utils/isRoomValid.ts +++ b/src/frontend/src/features/rooms/utils/isRoomValid.ts @@ -4,8 +4,10 @@ export const roomIdPattern = '[a-z]{3}-[a-z]{4}-[a-z]{3}' export const flexibleRoomIdPattern = '(?:[a-zA-Z0-9]{3}-?[a-zA-Z0-9]{4}-?[a-zA-Z0-9]{3})' +const roomRegex = new RegExp(`^${roomIdPattern}$`) + export const isRoomValid = (roomIdOrUrl: string) => - new RegExp(`^${roomIdPattern}$`).test(roomIdOrUrl) || + roomRegex.test(roomIdOrUrl) || new RegExp(`^${window.location.origin}/${roomIdPattern}$`).test(roomIdOrUrl) export const normalizeRoomId = (roomId: string) => { diff --git a/src/frontend/src/routes.ts b/src/frontend/src/routes.ts index ed2ff1ac..5274b526 100644 --- a/src/frontend/src/routes.ts +++ b/src/frontend/src/routes.ts @@ -11,6 +11,8 @@ import { CreatePopup } from '@/features/sdk/routes/CreatePopup' import { CreateMeetingButton } from '@/features/sdk/routes/CreateMeetingButton' import { RecordingDownloadRoute } from '@/features/recording' +const roomIdRegex = new RegExp(`^[/](?${flexibleRoomIdPattern})$`) + export const routes: Record< | 'home' | 'room' @@ -37,7 +39,7 @@ export const routes: Record< room: { name: 'room', to: (roomId: string) => `/${roomId.trim()}`, - path: new RegExp(`^[/](?${flexibleRoomIdPattern})$`), + path: roomIdRegex, Component: RoomRoute, }, feedback: {