Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Vapi from '@vapi-ai/web';
- import React, { useEffect, useState } from "react";
- export const VapiButtonTYG = () => {
- const vapi = new Vapi('')
- const [vapiState, setVapiState] = useState('stopped');
- const [vapiLoading, setVapiLoading] = useState(false);
- vapi.on('speech-start', () => {
- console.log('Speech has started');
- // setVapiLoading(false);
- });
- vapi.on('speech-end', () => {
- console.log('Speech has ended');
- });
- vapi.on('call-start', () => {
- console.log('Call has started');
- });
- vapi.on('call-end', () => {
- console.log('Call has stopped');
- // setVapiState('stopped');
- });
- vapi.on('volume-level', (volume) => {
- console.log(`Assistant volume level: ${volume}`);
- });
- // Function calls and transcripts will be sent via messages
- vapi.on('message', (message) => {
- console.log(message);
- });
- vapi.on('error', (e) => {
- console.error(e);
- });
- return (
- <>
- {vapiLoading && (
- <svg className="animate-spin -ml-1 mr-3 h-5 w-5 text-blue-500" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
- <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
- <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
- </svg>
- )}
- {/* {vapiState === 'stopped' && ( */}
- <button
- onClick={() => {
- // setVapiLoading(true);
- vapi.start('9a910528-2101-45b6-a6fe-314a5afcf9a2');
- // setVapiState('started');
- }}
- className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"
- >
- {vapiLoading ? 'Loading...' : 'VapiAi Start TYG'}
- </button>
- {/* )} */}
- {/* {vapiState === 'started' && ( */}
- <button
- onClick={() => {
- // console.log('Stopping VapiAi TYG')
- vapi.stop();
- // setVapiState('stopped');
- }}
- className="bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded"
- >
- {vapiLoading ? 'Loading...' : 'VapiAi Stop TYG'}
- </button>
- {/* )} */}
- </>
- );
- };
Advertisement
Add Comment
Please, Sign In to add comment