diff --git a/src/frontend/src/App.tsx b/src/frontend/src/App.tsx index 8e9b7ea4..45b14798 100644 --- a/src/frontend/src/App.tsx +++ b/src/frontend/src/App.tsx @@ -7,7 +7,7 @@ import { useTranslation } from 'react-i18next' import { useLang } from 'hoofd' import { Route, Switch } from 'wouter' import { HomeRoute } from '@/features/home' -import { RoomRoute, roomIdRegex } from '@/features/rooms' +import { RoomRoute, roomRouteRegex } from '@/features/rooms' import { NotFound } from './routes/NotFound' import './i18n/init' import { RenderIfUserFetched } from './features/auth' @@ -23,7 +23,7 @@ function App() { - + diff --git a/src/frontend/src/features/rooms/index.ts b/src/frontend/src/features/rooms/index.ts index 2fa2d5bf..92a3af13 100644 --- a/src/frontend/src/features/rooms/index.ts +++ b/src/frontend/src/features/rooms/index.ts @@ -1,3 +1,3 @@ export { navigateToNewRoom } from './navigation/navigateToNewRoom' export { Room as RoomRoute } from './routes/Room' -export { roomIdRegex } from './utils/generateRoomId' +export { roomRouteRegex, isRoomValid } from './utils/isRoomValid' diff --git a/src/frontend/src/features/rooms/utils/generateRoomId.ts b/src/frontend/src/features/rooms/utils/generateRoomId.ts index a075ad50..6f46734e 100644 --- a/src/frontend/src/features/rooms/utils/generateRoomId.ts +++ b/src/frontend/src/features/rooms/utils/generateRoomId.ts @@ -12,5 +12,3 @@ const generateSegment = (length: number): string => // Generates a unique room identifier following the Google Meet format export const generateRoomId = () => [generateSegment(3), generateSegment(4), generateSegment(3)].join('-') - -export const roomIdRegex = /^[/](?[a-z]{3}-[a-z]{4}-[a-z]{3})$/ diff --git a/src/frontend/src/features/rooms/utils/isRoomValid.ts b/src/frontend/src/features/rooms/utils/isRoomValid.ts new file mode 100644 index 00000000..45abb040 --- /dev/null +++ b/src/frontend/src/features/rooms/utils/isRoomValid.ts @@ -0,0 +1,5 @@ +const roomIdPattern = '[a-z]{3}-[a-z]{4}-[a-z]{3}' +export const roomRouteRegex = new RegExp(`^[/](?${roomIdPattern})$`) + +export const isRoomValid = (roomId: string) => + new RegExp(`^${roomIdPattern}$`).test(roomId)