feat: implement folder watching functionality with IPC integration

This commit is contained in:
Anish Sarkar 2026-04-02 11:17:49 +05:30
parent 775dea7894
commit 28f556224a
5 changed files with 280 additions and 0 deletions

View file

@ -6,4 +6,14 @@ export const IPC_CHANNELS = {
SET_QUICK_ASK_MODE: 'set-quick-ask-mode',
GET_QUICK_ASK_MODE: 'get-quick-ask-mode',
REPLACE_TEXT: 'replace-text',
// Folder sync channels
FOLDER_SYNC_SELECT_FOLDER: 'folder-sync:select-folder',
FOLDER_SYNC_ADD_FOLDER: 'folder-sync:add-folder',
FOLDER_SYNC_REMOVE_FOLDER: 'folder-sync:remove-folder',
FOLDER_SYNC_GET_FOLDERS: 'folder-sync:get-folders',
FOLDER_SYNC_GET_STATUS: 'folder-sync:get-status',
FOLDER_SYNC_FILE_CHANGED: 'folder-sync:file-changed',
FOLDER_SYNC_WATCHER_READY: 'folder-sync:watcher-ready',
FOLDER_SYNC_PAUSE: 'folder-sync:pause',
FOLDER_SYNC_RESUME: 'folder-sync:resume',
} as const;

View file

@ -1,5 +1,14 @@
import { app, ipcMain, shell } from 'electron';
import { IPC_CHANNELS } from './channels';
import {
selectFolder,
addWatchedFolder,
removeWatchedFolder,
getWatchedFolders,
getWatcherStatus,
pauseWatcher,
resumeWatcher,
} from '../modules/folder-watcher';
export function registerIpcHandlers(): void {
ipcMain.on(IPC_CHANNELS.OPEN_EXTERNAL, (_event, url: string) => {
@ -16,4 +25,23 @@ export function registerIpcHandlers(): void {
ipcMain.handle(IPC_CHANNELS.GET_APP_VERSION, () => {
return app.getVersion();
});
// Folder sync handlers
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_SELECT_FOLDER, () => selectFolder());
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_ADD_FOLDER, (_event, config) =>
addWatchedFolder(config)
);
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_REMOVE_FOLDER, (_event, folderPath: string) =>
removeWatchedFolder(folderPath)
);
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_GET_FOLDERS, () => getWatchedFolders());
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_GET_STATUS, () => getWatcherStatus());
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_PAUSE, () => pauseWatcher());
ipcMain.handle(IPC_CHANNELS.FOLDER_SYNC_RESUME, () => resumeWatcher());
}