Drop the stage's own voice button now that the composer carries the mic
The empty-chat stage offered "Start talking" / "Set up voice" above the transcript, a second entry to the same voice conversation the composer's mic now opens. Keep the composer as the single way in. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XcoERsCTbvjqDzE8qC82Wo
This commit is contained in:
parent
f3e438444a
commit
c98eb6e843
@ -24,7 +24,6 @@ import {
|
||||
import { personaIdlePrompt, personaThinkingLines } from "../../lib/voice-persona-copy";
|
||||
import { VoiceAwarenessStrip } from "../voice/VoiceAwarenessStrip";
|
||||
import { StageHero } from "./StageHero";
|
||||
import { StageVoiceEntry } from "./StageVoiceEntry";
|
||||
import { TextStageCanvas } from "./TextStageCanvas";
|
||||
|
||||
export function OoStage({
|
||||
@ -37,8 +36,6 @@ export function OoStage({
|
||||
snapshot,
|
||||
running,
|
||||
hasMessages,
|
||||
voiceReady = false,
|
||||
onStartVoice,
|
||||
}: {
|
||||
botId: string;
|
||||
botName: string;
|
||||
@ -49,8 +46,6 @@ export function OoStage({
|
||||
snapshot: ThreadSnapshot | null;
|
||||
running: boolean;
|
||||
hasMessages: boolean;
|
||||
voiceReady?: boolean;
|
||||
onStartVoice?: () => void;
|
||||
}) {
|
||||
const { t } = useLingui();
|
||||
const [reducedMotion, setReducedMotion] = useState(false);
|
||||
@ -242,13 +237,6 @@ export function OoStage({
|
||||
>
|
||||
{subtitle}
|
||||
</p>
|
||||
{onStartVoice ? (
|
||||
<StageVoiceEntry
|
||||
voiceReady={voiceReady}
|
||||
botColor={botColor}
|
||||
onStartVoice={onStartVoice}
|
||||
/>
|
||||
) : null}
|
||||
</>
|
||||
) : (
|
||||
<p className="mt-1 max-w-xl truncate text-center text-ui-caption text-muted-foreground">
|
||||
@ -306,14 +294,10 @@ export function OoGroupStage({
|
||||
groupName,
|
||||
snapshot,
|
||||
enrichMember,
|
||||
voiceReady = false,
|
||||
onStartVoice,
|
||||
}: {
|
||||
groupName?: string;
|
||||
snapshot: ThreadSnapshot | null;
|
||||
enrichMember?: (botId: string) => Pick<GroupStageMember, "title" | "description"> | undefined;
|
||||
voiceReady?: boolean;
|
||||
onStartVoice?: () => void;
|
||||
}) {
|
||||
const { t } = useLingui();
|
||||
const [reducedMotion, setReducedMotion] = useState(false);
|
||||
@ -552,14 +536,6 @@ export function OoGroupStage({
|
||||
{subtitle}
|
||||
</p>
|
||||
)}
|
||||
|
||||
{onStartVoice && !hasMessages ? (
|
||||
<StageVoiceEntry
|
||||
voiceReady={voiceReady}
|
||||
botColor={speaker?.color}
|
||||
onStartVoice={onStartVoice}
|
||||
/>
|
||||
) : null}
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
import { Trans, useLingui } from "@lingui/react/macro";
|
||||
import { Button } from "@rakazo/ui-web";
|
||||
import { Mic } from "lucide-react";
|
||||
import { VoiceAuroraRim } from "../voice/VoiceAurora";
|
||||
|
||||
export function StageVoiceEntry({
|
||||
voiceReady,
|
||||
botColor,
|
||||
onStartVoice,
|
||||
}: {
|
||||
voiceReady: boolean;
|
||||
botColor?: string;
|
||||
onStartVoice: () => void;
|
||||
}) {
|
||||
const { t } = useLingui();
|
||||
|
||||
return (
|
||||
<div className="mt-5 flex w-full max-w-md flex-col items-center gap-2">
|
||||
<Button
|
||||
type="button"
|
||||
variant="outline"
|
||||
onClick={onStartVoice}
|
||||
data-testid="stage-voice-primary"
|
||||
aria-label={voiceReady ? t`Start talking` : t`Set up voice`}
|
||||
title={voiceReady ? t`Start talking` : t`Set up voice`}
|
||||
className={`tactile-press h-control-lg w-full max-w-sm gap-2.5 rounded-full px-6 text-ui-body font-semibold transition-all ${
|
||||
voiceReady
|
||||
? "relative overflow-hidden border-border bg-foreground/5 text-foreground hover:bg-foreground/10"
|
||||
: "border-border bg-foreground/5 text-foreground/80 hover:bg-foreground/10"
|
||||
}`}
|
||||
>
|
||||
{voiceReady ? (
|
||||
<VoiceAuroraRim botColor={botColor} className="inset-x-[12%] h-0.5 blur-[3px]" />
|
||||
) : null}
|
||||
<Mic strokeWidth={2} className="size-icon-lg shrink-0" aria-hidden="true" />
|
||||
{voiceReady ? <Trans>Start talking</Trans> : <Trans>Set up voice</Trans>}
|
||||
</Button>
|
||||
<p className="text-center text-ui-caption text-muted-foreground">
|
||||
<Trans>Voice first — transcript below</Trans>
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -4539,7 +4539,6 @@ msgstr "Servername"
|
||||
msgid "Server URL"
|
||||
msgstr "Server-URL"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr "Stimme einrichten"
|
||||
@ -4794,10 +4793,6 @@ msgstr "Chat starten"
|
||||
msgid "Start recording"
|
||||
msgstr "Aufnahme starten"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr "Sprechen starten"
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr "Starte die Unterhaltung — {activeName} steht oben auf der Bühne."
|
||||
@ -5318,10 +5313,6 @@ msgstr "Stimme"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr "Stimme „{0}“ nicht gefunden."
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr "Primär per Stimme — Transkript unten"
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr "Die Stimme ist noch nicht verfügbar. Du kannst sie später in den Einstellungen aktivieren."
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "Server name"
|
||||
msgid "Server URL"
|
||||
msgstr "Server URL"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr "Set up voice"
|
||||
@ -4794,10 +4793,6 @@ msgstr "Start chat"
|
||||
msgid "Start recording"
|
||||
msgstr "Start recording"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr "Start talking"
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr "Start the conversation — {activeName} is on stage above."
|
||||
@ -5318,10 +5313,6 @@ msgstr "Voice"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr "Voice \"{0}\" not found."
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr "Voice first — transcript below"
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr "Voice is not available yet. You can turn it on later in settings."
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "Nombre del servidor"
|
||||
msgid "Server URL"
|
||||
msgstr "URL del servidor"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "Iniciar grabación"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "Voz"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "सर्वर का नाम"
|
||||
msgid "Server URL"
|
||||
msgstr "सर्वर URL"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "रिकॉर्डिंग शुरू करें"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "आवाज़"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "서버 이름"
|
||||
msgid "Server URL"
|
||||
msgstr "서버 URL"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "작업 녹화 시작"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "음성"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "Nome do servidor"
|
||||
msgid "Server URL"
|
||||
msgstr "URL do servidor"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "Começar a gravar"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "Voz"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "Имя сервера"
|
||||
msgid "Server URL"
|
||||
msgstr "URL-адрес сервера"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "Начать запись"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "Голос"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "Sunucu adı"
|
||||
msgid "Server URL"
|
||||
msgstr "Sunucu URL'si"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "Kaydı başlat"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "Ses"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -4539,7 +4539,6 @@ msgstr "服务器名称"
|
||||
msgid "Server URL"
|
||||
msgstr "服务器 URL"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
#: src/pages/shell/composer.tsx
|
||||
msgid "Set up voice"
|
||||
msgstr ""
|
||||
@ -4794,10 +4793,6 @@ msgstr ""
|
||||
msgid "Start recording"
|
||||
msgstr "开始录制"
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Start talking"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/shell/transcript.tsx
|
||||
msgid "Start the conversation — {activeName} is on stage above."
|
||||
msgstr ""
|
||||
@ -5318,10 +5313,6 @@ msgstr "语音"
|
||||
msgid "Voice \"{0}\" not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/stage/StageVoiceEntry.tsx
|
||||
msgid "Voice first — transcript below"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/onboarding/OnboardingVoiceStep.tsx
|
||||
msgid "Voice is not available yet. You can turn it on later in settings."
|
||||
msgstr ""
|
||||
|
||||
@ -3323,8 +3323,6 @@ export function ShellPage() {
|
||||
snapshot={activeSnapshot}
|
||||
running={transcriptRunning}
|
||||
hasMessages={transcriptMessages.length > 0}
|
||||
voiceReady={Boolean(voiceStatus?.ready)}
|
||||
onStartVoice={startVoiceEncounter}
|
||||
/>
|
||||
) : null}
|
||||
{!callOpen && inGroup ? (
|
||||
@ -3332,8 +3330,6 @@ export function ShellPage() {
|
||||
groupName={activeGroup?.name ?? activeSnapshot?.groupName}
|
||||
snapshot={activeSnapshot}
|
||||
enrichMember={enrichStageMember}
|
||||
voiceReady={Boolean(voiceStatus?.ready)}
|
||||
onStartVoice={startVoiceEncounter}
|
||||
/>
|
||||
) : null}
|
||||
<Transcript
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user