feat(stage-tamagotchi): added getMediaAccessStatus and askForMediaAccess for electron eventa

This commit is contained in:
Neko Ayaka
2025-10-30 14:41:41 +08:00
parent 0f614c4077
commit 7d43275867
3 changed files with 25 additions and 0 deletions
@@ -0,0 +1,12 @@
import type { createContext } from '@unbird/eventa/adapters/electron/main'
import type { BrowserWindow } from 'electron'
import { defineInvokeHandler } from '@unbird/eventa'
import { systemPreferences } from 'electron'
import { electron } from '../../../shared/eventa'
export function createSystemPreferencesService(params: { context: ReturnType<typeof createContext>['context'], window: BrowserWindow }) {
defineInvokeHandler(params.context, electron.systemPreferences.getMediaAccessStatus, type => systemPreferences.getMediaAccessStatus(type))
defineInvokeHandler(params.context, electron.systemPreferences.askForMediaAccess, type => systemPreferences.askForMediaAccess(type))
}
@@ -1,7 +1,9 @@
import { screen } from './screen'
import { systemPreferences } from './system-preferences'
import { window } from './window'
export const electron = {
screen,
window,
systemPreferences,
}
@@ -0,0 +1,11 @@
import type { systemPreferences as electronSystemPreferences } from 'electron'
import { defineInvokeEventa } from '@unbird/eventa'
const getMediaAccessStatus = defineInvokeEventa<ReturnType<typeof electronSystemPreferences.getMediaAccessStatus>, Parameters<typeof electronSystemPreferences.getMediaAccessStatus>[0]>('eventa:invoke:electron:system-preferences:get-media-access-status')
const askForMediaAccess = defineInvokeEventa<ReturnType<typeof electronSystemPreferences.askForMediaAccess>, Parameters<typeof electronSystemPreferences.askForMediaAccess>[0]>('eventa:invoke:electron:system-preferences:ask-for-media-access')
export const systemPreferences = {
getMediaAccessStatus,
askForMediaAccess,
}