// 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 { useIntl } from 'react-intl'; import ChimeSdkWrapper from '../chime/ChimeSdkWrapper'; import getChimeContext from '../context/getChimeContext'; import getUIStateContext from '../context/getUIStateContext'; import ClassMode from '../enums/ClassMode'; import useFocusMode from '../hooks/useFocusMode'; import styles from './ChatInput.css'; import MessageTopic from '../enums/MessageTopic'; const cx = classNames.bind(styles); let timeoutId: number; export default React.memo(function ChatInput() { const chime: ChimeSdkWrapper | null = useContext(getChimeContext()); const [state] = useContext(getUIStateContext()); const [inputText, setInputText] = useState(''); const [raised, setRaised] = useState(false); const focusMode = useFocusMode(); const intl = useIntl(); useEffect(() => { const attendeeId = chime?.configuration?.credentials?.attendeeId; if (!attendeeId) { return; } chime?.sendMessage( raised ? MessageTopic.RaiseHand : MessageTopic.DismissHand, attendeeId ); if (raised) { timeoutId = window.setTimeout(() => { chime?.sendMessage(MessageTopic.DismissHand, attendeeId); setRaised(false); }, 10000); } else { clearTimeout(timeoutId); } }, [raised, chime?.configuration]); return (