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 @@ + + + + + + Microphone Permission + + + + + Status: {{ status }} + + + Request Access + + + + {{ error }} + + + 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 }) @@ -44,13 +50,16 @@ const startDraggingWindow = !isLinux ? defineInvoke(context, electronStartDraggi - + + + + diff --git a/apps/stage-tamagotchi/src/renderer/pages/index.vue b/apps/stage-tamagotchi/src/renderer/pages/index.vue index 1d738584d..335abbd35 100644 --- a/apps/stage-tamagotchi/src/renderer/pages/index.vue +++ b/apps/stage-tamagotchi/src/renderer/pages/index.vue @@ -1,10 +1,21 @@ diff --git a/apps/stage-tamagotchi/src/shared/electron/system-preferences.ts b/apps/stage-tamagotchi/src/shared/electron/system-preferences.ts index c65b2bb0e..3631104a0 100644 --- a/apps/stage-tamagotchi/src/shared/electron/system-preferences.ts +++ b/apps/stage-tamagotchi/src/shared/electron/system-preferences.ts @@ -2,8 +2,8 @@ import type { systemPreferences as electronSystemPreferences } from 'electron' import { defineInvokeEventa } from '@unbird/eventa' -const getMediaAccessStatus = defineInvokeEventa, Parameters[0]>('eventa:invoke:electron:system-preferences:get-media-access-status') -const askForMediaAccess = defineInvokeEventa, Parameters[0]>('eventa:invoke:electron:system-preferences:ask-for-media-access') +const getMediaAccessStatus = defineInvokeEventa, [Parameters[0]]>('eventa:invoke:electron:system-preferences:get-media-access-status') +const askForMediaAccess = defineInvokeEventa, [Parameters[0]]>('eventa:invoke:electron:system-preferences:ask-for-media-access') export const systemPreferences = { getMediaAccessStatus, diff --git a/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config-dialog.vue b/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config-dialog.vue index f46ead40f..f7c11c9b6 100644 --- a/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config-dialog.vue +++ b/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config-dialog.vue @@ -37,6 +37,7 @@ onMounted(() => screenSafeArea.update()) Hearing Input + @@ -49,6 +50,7 @@ onMounted(() => screenSafeArea.update()) + diff --git a/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config.vue b/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config.vue index 9039119f2..afda3e7e0 100644 --- a/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config.vue +++ b/packages/stage-ui/src/components/scenarios/dialogs/audio-input/hearing-config.vue @@ -1,22 +1,46 @@ - - + + toggleAudioDevice()"> {{ enabled ? 'Disable Microphone' : 'Enable Microphone' }} + + Request Microphone Access + + +