From 6071331033baac2224c731956a7106f311f45d09 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Thu, 30 Oct 2025 16:58:57 +0800 Subject: [PATCH] feat(stage-tamagotchi): speech recovered --- .../components/HearingPermissionStatus.vue | 78 +++++++++++++ .../Widgets/ControlsIsland/index.vue | 11 +- .../src/renderer/pages/index.vue | 110 +++++++++++++++++- .../src/shared/electron/system-preferences.ts | 4 +- .../audio-input/hearing-config-dialog.vue | 2 + .../dialogs/audio-input/hearing-config.vue | 30 ++++- 6 files changed, 227 insertions(+), 8 deletions(-) create mode 100644 apps/stage-tamagotchi/src/renderer/components/HearingPermissionStatus.vue diff --git a/apps/stage-tamagotchi/src/renderer/components/HearingPermissionStatus.vue b/apps/stage-tamagotchi/src/renderer/components/HearingPermissionStatus.vue new file mode 100644 index 000000000..3fe288635 --- /dev/null +++ b/apps/stage-tamagotchi/src/renderer/components/HearingPermissionStatus.vue @@ -0,0 +1,78 @@ + + + diff --git a/apps/stage-tamagotchi/src/renderer/components/Widgets/ControlsIsland/index.vue b/apps/stage-tamagotchi/src/renderer/components/Widgets/ControlsIsland/index.vue index c80e0de97..6836791f9 100644 --- a/apps/stage-tamagotchi/src/renderer/components/Widgets/ControlsIsland/index.vue +++ b/apps/stage-tamagotchi/src/renderer/components/Widgets/ControlsIsland/index.vue @@ -5,7 +5,9 @@ import { defineInvoke } from '@unbird/eventa' import { createContext } from '@unbird/eventa/adapters/electron/renderer' import { useDark, useToggle } from '@vueuse/core' import { storeToRefs } from 'pinia' +import { ref } from 'vue' +import HearingPermissionStatus from '../../../components/HearingPermissionStatus.vue' import ControlButton from './ControlButton.vue' import ControlButtonTooltip from './ControlButtonTooltip.vue' @@ -28,6 +30,10 @@ const openSettings = defineInvoke(context, electronOpenSettings) * See `apps/stage-tamagotchi/src/main/windows/main/index.ts` for handler definition */ const startDraggingWindow = !isLinux ? defineInvoke(context, electronStartDraggingWindow) : undefined + +// Expose whether hearing dialog is open so parent can disable click-through +const hearingDialogOpen = ref(false) +defineExpose({ hearingDialogOpen })