diff --git a/examples/react-client/fishjam-chat/src/components/JoinRoomCard.tsx b/examples/react-client/fishjam-chat/src/components/JoinRoomCard.tsx index c5c3dde2..34994a9c 100644 --- a/examples/react-client/fishjam-chat/src/components/JoinRoomCard.tsx +++ b/examples/react-client/fishjam-chat/src/components/JoinRoomCard.tsx @@ -64,30 +64,38 @@ export const JoinRoomCard: FC = (props) => { roomName, peerName, }: RoomForm) => { - const { url, peerToken } = await getRoomCredentials( - roomManagerUrl, - roomName, - peerName, - ); - persistFormValues({ roomManagerUrl, roomName, peerName }); - await joinRoom({ - url, - peerToken, - peerMetadata: { displayName: peerName }, - }); - - await Promise.all([ - camera.startStreaming({ simulcast: false }), - mic.startStreaming({ simulcast: false }), - ]); + try { + const { url, peerToken } = await getRoomCredentials( + roomManagerUrl, + roomName, + peerName, + ); + persistFormValues({ roomManagerUrl, roomName, peerName }); + await joinRoom({ + url, + peerToken, + peerMetadata: { displayName: peerName }, + }); + + await Promise.all([ + camera.startStreaming({ simulcast: false }), + mic.startStreaming({ simulcast: false }), + ]); + form.clearErrors(); + } catch (e) { + form.setError("root", { message: (e as { message?: string })?.message }); + } }; + const error = form.formState.errors.root?.message; + return (
Fishjam Chat Fill out the form to join the call. + {error && {error}} diff --git a/examples/react-client/fishjam-chat/src/lib/roomManager.ts b/examples/react-client/fishjam-chat/src/lib/roomManager.ts index 88ec82ee..a83ceabd 100644 --- a/examples/react-client/fishjam-chat/src/lib/roomManager.ts +++ b/examples/react-client/fishjam-chat/src/lib/roomManager.ts @@ -13,9 +13,12 @@ export const getRoomCredentials = async ( roomName: string, peerName: string, ) => { - const res = await axios.get(roomManagerUrl, { - params: { peerName, roomName }, - }); + // remove duplicate get params (in case user will just copy params from UI) + const url = new URL(roomManagerUrl)!; + url.searchParams.set("roomName", roomName); + url.searchParams.set("peerName", peerName); + + const res = await axios.get(url.toString()); return res.data; };