chore(services): update components based on recent changes
Changes: services/frontend/src/App.tsx | 22 ++++++++++++++++++++++ services/frontend/src/features/live/components/VoiceConnectionCard.tsx | 5 ++++- 2 files changed, 26 insertions(+), 1 deletion(-)
This commit is contained in:
@@ -192,6 +192,28 @@ export default function App() {
|
|||||||
return () => clearInterval(interval);
|
return () => clearInterval(interval);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
// Push-to-Talk — hold Space to transmit
|
||||||
|
useEffect(() => {
|
||||||
|
const handleKeyDown = (e: KeyboardEvent) => {
|
||||||
|
if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) return;
|
||||||
|
if (e.code === "Space" && !transmit.isStreaming && e.repeat === false) {
|
||||||
|
e.preventDefault();
|
||||||
|
transmit.startTransmit().catch(() => undefined);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const handleKeyUp = (e: KeyboardEvent) => {
|
||||||
|
if (e.code === "Space" && transmit.isStreaming) {
|
||||||
|
transmit.stopTransmit();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
window.addEventListener("keydown", handleKeyDown);
|
||||||
|
window.addEventListener("keyup", handleKeyUp);
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener("keydown", handleKeyDown);
|
||||||
|
window.removeEventListener("keyup", handleKeyUp);
|
||||||
|
};
|
||||||
|
}, [transmit]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DashboardLayout
|
<DashboardLayout
|
||||||
activeTab={activeTab}
|
activeTab={activeTab}
|
||||||
|
|||||||
@@ -104,7 +104,10 @@ export function VoiceConnectionCard({
|
|||||||
{isStreaming ? "Stop Transmit" : "Transmit"}
|
{isStreaming ? "Stop Transmit" : "Transmit"}
|
||||||
</Button>
|
</Button>
|
||||||
{isStreaming && (
|
{isStreaming && (
|
||||||
<div className="flex items-center pl-1">
|
<div className="flex items-center gap-2 pl-1">
|
||||||
|
<span className="animate-pulse rounded-full bg-emerald-500 px-2 py-0.5 text-xs font-medium text-white">
|
||||||
|
Hold Space
|
||||||
|
</span>
|
||||||
<MicLevelMeter level={micLevel} />
|
<MicLevelMeter level={micLevel} />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user