diff --git a/src/frontend/src/features/rooms/components/Conference.tsx b/src/frontend/src/features/rooms/components/Conference.tsx index a404ce3d..1e6d1f25 100644 --- a/src/frontend/src/features/rooms/components/Conference.tsx +++ b/src/frontend/src/features/rooms/components/Conference.tsx @@ -170,7 +170,6 @@ export const Conference = ({ prepareConnection() }, [room, apiConfig, isConnectionWarmedUp]) - const [showInviteDialog, setShowInviteDialog] = useState(mode === 'create') const [mediaDeviceError, setMediaDeviceError] = useState<{ error: MediaDeviceFailure | null kind: MediaDeviceKind | null @@ -303,13 +302,7 @@ export const Conference = ({ }} > - {showInviteDialog && !isMobile && ( - setShowInviteDialog(false)} - /> - )} + {!isMobile && } setMediaDeviceError({ error: null, kind: null })} diff --git a/src/frontend/src/features/rooms/components/InviteDialog.tsx b/src/frontend/src/features/rooms/components/InviteDialog.tsx index e1ff2ab8..06273ee7 100644 --- a/src/frontend/src/features/rooms/components/InviteDialog.tsx +++ b/src/frontend/src/features/rooms/components/InviteDialog.tsx @@ -1,6 +1,6 @@ import { useTranslation } from 'react-i18next' import { getRouteUrl } from '@/navigation/getRouteUrl' -import { Div, Button, type DialogProps, P, Bold } from '@/primitives' +import { Div, Button, P, Bold } from '@/primitives' import { HStack, styled, VStack } from '@/styled-system/jsx' import { Heading, Dialog } from 'react-aria-components' import { Text, text } from '@/primitives/Text' @@ -10,7 +10,7 @@ import { RiFileCopyLine, RiSpam2Fill, } from '@remixicon/react' -import { useMemo } from 'react' +import { useMemo, useState } from 'react' import { css } from '@/styled-system/css' import { useRoomData } from '@/features/rooms/livekit/hooks/useRoomData' import { ApiAccessLevel } from '@/features/rooms/api/ApiRoom' @@ -39,7 +39,9 @@ const StyledRACDialog = styled(Dialog, { }, }) -export const InviteDialog = (props: Omit) => { +export const InviteDialog = ({ mode }: { mode: 'join' | 'create' }) => { + const [showInviteDialog, setShowInviteDialog] = useState(mode === 'create') + const { t } = useTranslation('rooms', { keyPrefix: 'shareDialog' }) const roomData = useRoomData() @@ -58,163 +60,161 @@ export const InviteDialog = (props: Omit) => { copyRoomUrlToClipboard, } = useCopyRoomToClipboard(roomData) + if (!showInviteDialog) return null return ( - - {({ close }) => ( - - - {t('heading')} - -
- -
-

{t('description')}

- {isTelephonyReadyForUse ? ( + + + + {t('heading')} + +
+ +
+

{t('description')}

+ {isTelephonyReadyForUse ? ( +
-
- - {roomUrl?.replace(/^https?:\/\//, '')} - - {isTelephonyReadyForUse && roomUrl && ( - - )} -
-
- - {t('phone.call')} ({telephony?.country}){' '} - {telephony?.internationalPhoneNumber} - - - {t('phone.pinCode')}{' '} - {formatPinCode(roomData?.pin_code)} - -
- - + + {roomUrl?.replace(/^https?:\/\//, '')} + + {isTelephonyReadyForUse && roomUrl && ( + + )}
- ) : ( +
+ + {t('phone.call')} ({telephony?.country}){' '} + {telephony?.internationalPhoneNumber} + + + {t('phone.pinCode')}{' '} + {formatPinCode(roomData?.pin_code)} + +
+ - )} - {roomData?.access_level === ApiAccessLevel.PUBLIC && ( - -
+ ) : ( + + )} + {roomData?.access_level === ApiAccessLevel.PUBLIC && ( + +
+ - -
- - {t('permissions')} - -
- )} - - )} + /> +
+ + {t('permissions')} + +
+ )} + ) }