From 08b3e79581ddd777fc99800dec2c4691fa2bafc6 Mon Sep 17 00:00:00 2001 From: Kevin Szuchet Date: Wed, 9 Aug 2023 11:00:40 +0200 Subject: [PATCH] feat: Extend the connect to worl component to allow receiving the url form query params --- .../Pages/ConnectToWorld/ConnectToWorld.container.ts | 8 +++++--- src/components/Pages/ConnectToWorld/ConnectToWorld.tsx | 8 ++------ .../Pages/ConnectToWorld/ConnectToWorld.types.ts | 8 +++----- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/components/Pages/ConnectToWorld/ConnectToWorld.container.ts b/src/components/Pages/ConnectToWorld/ConnectToWorld.container.ts index d7c12ac..2f66c16 100644 --- a/src/components/Pages/ConnectToWorld/ConnectToWorld.container.ts +++ b/src/components/Pages/ConnectToWorld/ConnectToWorld.container.ts @@ -1,20 +1,22 @@ import { connect } from 'react-redux' import { getAddress, isConnecting } from 'decentraland-dapps/dist/modules/wallet/selectors' import { setServer, setToken } from '../../../modules/conference/action' +import { config } from '../../../modules/config' import { getCurrentIdentity, isLoggingIn } from '../../../modules/identity/selector' import { RootState } from '../../../modules/reducer' import withRouter from '../../../utils/WithRouter' import { getPreviouslyLoadedServers } from '../../../utils/worldServers' import MainPage from './ConnectToWorld' -import { MapDispatch, MapDispatchProps, MapStateProps } from './ConnectToWorld.types' +import { MapDispatch, MapDispatchProps, MapStateProps, OwnProps } from './ConnectToWorld.types' -const mapStateToProps = (state: RootState): MapStateProps => { +const mapStateToProps = (state: RootState, ownProps: OwnProps): MapStateProps => { const identity = getCurrentIdentity(state) - return { isLoading: isLoggingIn(state) || isConnecting(state), loggedInAddress: getAddress(state)?.toLowerCase(), previouslyLoadedServers: getPreviouslyLoadedServers(), + worldsContentServerUrl: + new URLSearchParams(ownProps.router.location.search).get('worlds-content-server-url') || config.get('WORLDS_CONTENT_SERVER_URL'), identity } } diff --git a/src/components/Pages/ConnectToWorld/ConnectToWorld.tsx b/src/components/Pages/ConnectToWorld/ConnectToWorld.tsx index 5b8f6ca..f2926f5 100644 --- a/src/components/Pages/ConnectToWorld/ConnectToWorld.tsx +++ b/src/components/Pages/ConnectToWorld/ConnectToWorld.tsx @@ -19,7 +19,7 @@ function ConnectToWorld(props: Props) { const [availableServers, setAvailableServers] = useState([]) const [isConnectingToServer] = useState(false) - const { isLoading, loggedInAddress, identity, previouslyLoadedServers, onSubmitConnectForm } = props + const { isLoading, loggedInAddress, identity, previouslyLoadedServers, worldsContentServerUrl, onSubmitConnectForm } = props const navigate = useNavigate() @@ -100,11 +100,7 @@ function ConnectToWorld(props: Props) { try { if (!identity) return - const response: { url: string; token: string } = await livekitConnect( - identity, - 'https://worlds-content-server.decentraland.zone', - selectedServer - ) + const response: { url: string; token: string } = await livekitConnect(identity, worldsContentServerUrl, selectedServer) onSubmitConnectForm(response.url, response.token) addServerToPreviouslyLoaded(selectedServer) navigate(`/meet/${encodeURIComponent(response.url)}?token=${encodeURIComponent(response.token)}`) diff --git a/src/components/Pages/ConnectToWorld/ConnectToWorld.types.ts b/src/components/Pages/ConnectToWorld/ConnectToWorld.types.ts index 2d8b0a5..b8e5a7e 100644 --- a/src/components/Pages/ConnectToWorld/ConnectToWorld.types.ts +++ b/src/components/Pages/ConnectToWorld/ConnectToWorld.types.ts @@ -7,17 +7,15 @@ export type Props = { isLoading: boolean previouslyLoadedServers: string[] | null identity: AuthIdentity | null + worldsContentServerUrl: string onSubmitConnectForm: (server: string, token: string) => void } -export type MapStateProps = Pick +export type MapStateProps = Pick export type MapDispatchProps = Pick export type MapDispatch = Dispatch -// TODO: world-content-server qs -type Params = { - profileAddress?: string -} +type Params = Record export type OwnProps = { router: RouterProps }