// Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import classNames from 'classnames/bind'; import React, { useContext, useEffect, useState } from 'react'; import Dropdown, { Option } from 'react-dropdown'; import { FormattedMessage, useIntl } from 'react-intl'; import { Link, useHistory } from 'react-router-dom'; import ChimeSdkWrapper from '../chime/ChimeSdkWrapper'; import routes from '../constants/routes.json'; import getChimeContext from '../context/getChimeContext'; import getUIStateContext from '../context/getUIStateContext'; import ClassMode from '../enums/ClassMode'; import RegionType from '../types/RegionType'; import styles from './CreateOrJoin.css'; import OptionalFeature from '../enums/OptionalFeature'; const cx = classNames.bind(styles); const optionalFeatures = [ { label: 'None', value: OptionalFeature.None }, { label: 'Enable Simulcast For Chrome', value: OptionalFeature.Simulcast } ]; export default function CreateOrJoin() { const chime = useContext(getChimeContext()) as ChimeSdkWrapper; const [state] = useContext(getUIStateContext()); const [title, setTitle] = useState(''); const [name, setName] = useState(''); const [region, setRegion] = useState(undefined); const [optionalFeature, setOptionalFeature] = useState(''); const history = useHistory(); const intl = useIntl(); useEffect(() => { setOptionalFeature(optionalFeatures[0].value); (async () => { setRegion(await chime?.lookupClosestChimeRegion()); })(); }, []); return (

{state.classMode === ClassMode.Teacher ? ( ) : ( )}

{ event.preventDefault(); if (title && name && region) { history.push( `/classroom?title=${encodeURIComponent( title )}&name=${encodeURIComponent(name)}®ion=${ region.value }&optionalFeature=${optionalFeature}` ); } }} > { setTitle(event.target.value); }} placeholder={intl.formatMessage({ id: 'CreateOrJoin.titlePlaceholder' })} /> { setName(event.target.value); }} placeholder={intl.formatMessage({ id: 'CreateOrJoin.namePlaceholder' })} /> {state.classMode === ClassMode.Teacher && (
{ setRegion(selectedRegion); }} placeholder="" />
)}
{ setOptionalFeature(selectedFeature.value); }} placeholder={optionalFeatures[0].label} />
{state.classMode === ClassMode.Teacher ? ( ) : ( )}
); }