From 899131b0a1cc1647e701cf7ba6605d8b54daf21e Mon Sep 17 00:00:00 2001 From: RainbowBird Date: Tue, 28 Jul 2026 17:58:50 +0800 Subject: [PATCH] feat(stage): add persistent speech mute controls (#2128) --- .../renderer/components/Window/TitleBar.vue | 6 ++ .../src/renderer/pages/chat.vue | 26 +++++- packages/i18n/src/locales/en/stage.yaml | 3 + packages/i18n/src/locales/es/stage.yaml | 3 + packages/i18n/src/locales/fr/stage.yaml | 3 + packages/i18n/src/locales/ja/stage.yaml | 3 + packages/i18n/src/locales/ko/stage.yaml | 3 + packages/i18n/src/locales/ru/stage.yaml | 3 + packages/i18n/src/locales/vi/stage.yaml | 3 + packages/i18n/src/locales/zh-Hans/stage.yaml | 3 + packages/i18n/src/locales/zh-Hant/stage.yaml | 3 + .../Layouts/MobileInteractiveArea.vue | 19 ++++- .../components/Widgets/ChatActionButtons.vue | 21 +++++ .../src/components/Widgets/ChatArea.vue | 2 +- .../composables/useStopSpeakingButton.test.ts | 17 ++++ .../src/composables/useStopSpeakingButton.ts | 15 ++-- .../stage-ui/src/components/scenes/Stage.vue | 31 ++++++- .../src/stores/speech-output-control.test.ts | 83 ++++++++++++++++++- .../src/stores/speech-output-control.ts | 28 ++++++- 19 files changed, 257 insertions(+), 18 deletions(-) diff --git a/apps/stage-tamagotchi/src/renderer/components/Window/TitleBar.vue b/apps/stage-tamagotchi/src/renderer/components/Window/TitleBar.vue index 0de57df6b..76ce66b8f 100644 --- a/apps/stage-tamagotchi/src/renderer/components/Window/TitleBar.vue +++ b/apps/stage-tamagotchi/src/renderer/components/Window/TitleBar.vue @@ -34,6 +34,12 @@ const { platform } = useAppRuntime()
{{ title }}
+
+ +
+import { useStopSpeakingButton } from '@proj-airi/stage-layouts/composables/useStopSpeakingButton' import { ChatSessionsDrawer } from '@proj-airi/stage-ui/components' import { shallowRef } from 'vue' +import { useI18n } from 'vue-i18n' import InteractiveArea from '../components/InteractiveArea.vue' import WindowTitleBar from '../components/Window/TitleBar.vue' const sessionsDrawerOpen = shallowRef(false) +const { speechMuted, toggleSpeechMuted } = useStopSpeakingButton() +const { t } = useI18n()