import { FaArrowCircleDown, FaPlus } from "react-icons/fa"; import { UserStatus } from "../../models/user"; import Image from "next/image"; import { IoPulseOutline, IoRemoveOutline } from "react-icons/io5"; import { DemoStep, IVoiceDemoProps } from "./VoiceLineConceptDemo"; import { Popover, Tooltip } from "antd"; import { useCallback, useEffect, useState } from "react"; import { KeyCode } from "../../globals/keycode"; import toast from "react-hot-toast"; import { GlobalHotKeys, HotKeys, KeySequence, KeyMap } from "react-hotkeys"; let testFriends = [ { name: "Harold", role: "engineer", systemAvatar: "29", status: UserStatus.online, }, { name: "Emily", role: "engineer", systemAvatar: "02", status: UserStatus.online, }, { name: "Paul", role: "architect", systemAvatar: "43", status: UserStatus.online, }, { name: "Mark", role: "designer", systemAvatar: "04", status: UserStatus.busy, }, ]; function statusBubble(status: UserStatus) { switch (status) { case UserStatus.online: return ( ); case UserStatus.busy: return ( ); case UserStatus.offline: return ( ); default: return ( ); } } function renderPulse(status: UserStatus) { switch (status) { case UserStatus.online: return ( ); case UserStatus.busy: return ( ); case UserStatus.offline: return ( ); default: return ( ); } } function TeamVoiceLine(props: IVoiceDemoProps) { const isVoiceLineTurn = props.demoStep == DemoStep.playIncomingMessage || props.demoStep == DemoStep.hearReply || props.demoStep == DemoStep.sendReply || props.demoStep == DemoStep.doneDemo; useEffect(() => { if (props.demoStep == DemoStep.playIncomingMessage) { // play audio of paul talking var audio = new Audio( "https://firebasestorage.googleapis.com/v0/b/nirvana-for-business.appspot.com/o/messages%2F62ca7369-7c0c-4b3e-a382-12d4a237d1af.mp3?alt=media&token=b6d4acb0-afc9-4a9f-8c58-cf60a6079003" ); audio.play(); setTimeout(function () { props.handleChangeDemoStep(DemoStep.sendReply); }, 10000); } else if (props.demoStep == DemoStep.sendReply) { } else if (props.demoStep == DemoStep.hearReply) { var audio = new Audio( "https://firebasestorage.googleapis.com/v0/b/nirvana-for-business.appspot.com/o/deep%20fakes%2Fvocodes_728915c1-eb1f-4f16-8f70-c7b0c2235b3e.wav?alt=media&token=76afd74c-7499-4bd8-9c10-dd6ff4f81c48" ); audio.play(); setTimeout(function () { props.handleChangeDemoStep(DemoStep.playAnnouncement); }, 6000); } }, [props.demoStep]); const [isRecording, setIsRecording] = useState(false); function startRecord(event) { setIsRecording(true); } function endRecording(event) { toast.success("Paul heard it live!"); setIsRecording(false); setTimeout(function () { toast.success("Mark is talking..."); props.handleChangeDemoStep(DemoStep.hearReply); }, 3000); } const keyMap: KeyMap = { RECORD: "r", STOP_RECORDING: { name: "Stop recording", sequence: "r", action: "keyup", }, }; const handlers = { RECORD: startRecord, STOP_RECORDING: endRecording }; return (
{/* keyboard shortcut handler */} TEAM {/* list of team members */} {testFriends.map((friend, i) => { return ( {statusBubble(friend.status)} profile {friend.name}{" "} {(friend.name == "Paul" && props.demoStep == DemoStep.playIncomingMessage) || (friend.name == "Mark" && props.demoStep == DemoStep.hearReply) ? ( ) : ( <> )} {friend.name == "Paul" && props.demoStep == DemoStep.sendReply ? ( ) : ( )} {friend.role} {renderPulse(friend.status)} ); })}
); } export default TeamVoiceLine;