import React, { useEffect, useState } from 'react'; import Button from '@custom/shared/components/Button'; import { Card, CardBody, CardFooter, CardHeader, } from '@custom/shared/components/Card'; import Field from '@custom/shared/components/Field'; import { TextInput, BooleanInput } from '@custom/shared/components/Input'; import Well from '@custom/shared/components/Well'; import PropTypes from 'prop-types'; /** * Intro * --- * Specify which room we would like to join */ export const Intro = ({ room, error, domain, onJoin, title, fetching = false, forceFetchToken = false, forceOwner = false, }) => { const [roomName, setRoomName] = useState(); const [fetchToken, setFetchToken] = useState(forceFetchToken); const [owner, setOwner] = useState(forceOwner); useEffect(() => { setRoomName(room); }, [room]); return (
{ e.preventDefault(); onJoin(roomName, owner, fetchToken); }}> {title} {error && ( Failed to obtain token

{error}

)} setRoomName(e.target.value)} required /> {!forceFetchToken && ( setFetchToken(e.target.checked)} /> )} {fetchToken && !forceOwner && ( setOwner(e.target.checked)} /> )}
); }; Intro.propTypes = { room: PropTypes.string, title: PropTypes.string, error: PropTypes.string, domain: PropTypes.string.isRequired, onJoin: PropTypes.func.isRequired, fetching: PropTypes.bool, forceFetchToken: PropTypes.bool, forceOwner: PropTypes.bool, }; export default Intro;