glass/src/bridge/featureBridge.js

53 lines
1.9 KiB
JavaScript

// src/bridge/featureBridge.js
const { ipcMain } = require('electron');
const settingsService = require('../features/settings/settingsService');
const askService = require('../features/ask/askService');
const listenService = require('../features/listen/listenService');
module.exports = {
// Renderer로부터의 요청을 수신
initialize() {
ipcMain.handle('settings:getPresets', async () => {
console.log('[FeatureBridge] settings:getPresets 호출됨');
return await settingsService.getPresets();
});
ipcMain.handle('settings:get-auto-update', async () => {
console.log('[FeatureBridge] settings:get-auto-update 호출됨');
return await settingsService.getAutoUpdateSetting();
});
ipcMain.handle('settings:set-auto-update', async (event, isEnabled) => {
console.log('[FeatureBridge] settings:set-auto-update 호출됨', isEnabled);
return await settingsService.setAutoUpdateSetting(isEnabled);
});
// New IPC handler for loadInitialData
ipcMain.handle('settings:loadInitialData', async () => {
console.log('[FeatureBridge] settings:loadInitialData called');
return await settingsService.loadInitialData();
});
console.log('[FeatureBridge] Initialized with settings handlers.');
ipcMain.handle('listen:changeSession', async (event, listenButtonText) => {
console.log('[FeatureBridge] listen:changeSession from mainheader', listenButtonText);
try {
await listenService.handleListenRequest(listenButtonText);
return { success: true };
} catch (error) {
console.error('[FeatureBridge] listen:changeSession failed', error.message);
return { success: false, error: error.message };
}
});
},
// Renderer로 상태를 전송
sendAskProgress(win, progress) {
win.webContents.send('feature:ask:progress', progress);
},
};