import React, { ChangeEvent, FormEvent, useState } from 'react'; import { Flex, FormField, Input, Modal, ModalBody, ModalHeader, PrimaryButton, useMeetingManager, } from 'amazon-chime-sdk-component-library-react'; import { createGetAttendeeCallback, fetchMeeting } from '../utils/api'; import { MeetingSessionConfiguration } from 'amazon-chime-sdk-js'; const MeetingForm: React.FC = () => { const meetingManager = useMeetingManager(); const [meetingId, setMeetingId] = useState(''); const [name, setName] = useState(''); const [errorMessage, updateErrorMessage] = useState(''); const joinMeeting = async (event: FormEvent) => { event.preventDefault(); meetingManager.getAttendee = createGetAttendeeCallback(meetingId); try { const { JoinInfo } = await fetchMeeting(meetingId, name, 'us-east-1'); await meetingManager.join( new MeetingSessionConfiguration(JoinInfo.Meeting, JoinInfo.Attendee), ); } catch (error: any) { updateErrorMessage(error.message); } await meetingManager.start(); }; const closeError = (): void => { updateErrorMessage(''); setMeetingId(''); setName(''); }; return (
) => { setMeetingId(e.target.value); }} /> ) => { setName(e.target.value); }} /> {errorMessage && (

{errorMessage}

)} ); }; export default MeetingForm;