Discutions
React from 'react';
import { Mic, MicOff, Phone, PhoneOff, AlertCircle, Info, Hexagon } from 'lucide-react';
import { useLiveAPI } from './hooks/use-live-api';
import AudioVisualizer from './components/AudioVisualizer';
import { ConnectionState } from './types';
const App: React.FC = () => {
const { connect, disconnect, connectionState, error, volume } = useLiveAPI();
const handleToggleConnection = () => {
if (connectionState === ConnectionState.CONNECTED || connectionState === ConnectionState.CONNECTING) {
disconnect();
} else {
connect();
}
};
const isConnected = connectionState === ConnectionState.CONNECTED;
const isConnecting = connectionState === ConnectionState.CONNECTING;
return (
{/* Background decoration */}
);
};
export default App;
{/* Header */}
Support Francophone
{/* Visualizer Area */}
Hexa16 Assistant
Votre assistant vocal intelligent
{/* Subtle grid background inside circle */}
{connectionState === ConnectionState.ERROR ? (
Erreur de connexion
) : (
)}
{/* Status Badge */}
{/* Error Message */}
{error && (
{isConnected ? 'En Ligne' : isConnecting ? 'Connexion...' : 'Prêt'}
{error}
)}
{/* Controls */}
Propulsé par Gemini Live