// preload.js — expose IPC to renderer const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('electronAPI', { selectFolder: () => ipcRenderer.invoke('select-folder'), selectFile: () => ipcRenderer.invoke('select-file'), saveCredentials: (data) => ipcRenderer.invoke('save-credentials', data), loadCredentials: () => ipcRenderer.invoke('load-credentials'), createRepo: (data) => ipcRenderer.invoke('create-repo', data), pushProject: (data) => ipcRenderer.invoke('push-project', data), getBranches: (data) => ipcRenderer.invoke('getBranches', data), getCommitLogs: (data) => ipcRenderer.invoke('getCommitLogs', data), getFileTree: (data) => ipcRenderer.invoke('getFileTree', data), readFile: (data) => ipcRenderer.invoke('readFile', data), deleteFile: (data) => ipcRenderer.invoke('deleteFile', data), listGiteaRepos: (data) => ipcRenderer.invoke('list-gitea-repos', data), getGiteaRepoContents: (data) => ipcRenderer.invoke('get-gitea-repo-contents', data), getGiteaFileContent: (data) => ipcRenderer.invoke('get-gitea-file-content', data), uploadGiteaFile: (data) => ipcRenderer.invoke('upload-gitea-file', data), uploadLocalFolderToGitea: (data) => ipcRenderer.invoke('upload-local-folder-to-gitea', data), downloadGiteaFolder: (data) => ipcRenderer.invoke('download-gitea-folder', data), downloadGiteaFile: (data) => ipcRenderer.invoke('download-gitea-file', data), prepareDownloadDrag: (data) => ipcRenderer.invoke('prepare-download-drag', data), startNativeDrag: (filePath) => ipcRenderer.send('ondragstart', filePath), uploadAndPush: (data) => ipcRenderer.invoke('upload-and-push', data), deleteGiteaRepo: (data) => ipcRenderer.invoke('delete-gitea-repo', data), // progress subscriptions onPushProgress: (cb) => { ipcRenderer.on('push-progress', (event, percent) => { try { cb(percent); } catch (_) {} }); }, onFolderUploadProgress: (cb) => { ipcRenderer.on('folder-upload-progress', (event, payload) => { try { cb(payload); } catch (_) {} }); }, onFolderDownloadProgress: (cb) => { ipcRenderer.on('folder-download-progress', (event, payload) => { try { cb(payload); } catch (_) {} }); } });