mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-02 18:10:18 +05:30
GitOperations.getStatus returns { files: [...] } but the renderer's
ipc.file.gitStatus type declares Array<...> and calls result.data.map().
The mismatch made GitStatusPanel.tsx throw 'n.map is not a function'
on mount, which blanked the entire React tree.
Unwrap result.files in the IPC handler so it returns the array the
renderer expects. Add tests covering the success, empty, and non-git
branches so this regression cannot recur.
Refs: blank-screen-on-md-open
47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
// src/main/files/git.js
|
|
// Git IPC handlers — thin wrapper over GitOperations
|
|
const { ipcMain } = require('electron');
|
|
const GitOperations = require('../GitOperations');
|
|
|
|
function register(currentFileRef) {
|
|
ipcMain.handle('git-status', async (_event, rootPath) => {
|
|
const dir =
|
|
rootPath ||
|
|
(currentFileRef.current ? require('path').dirname(currentFileRef.current) : process.cwd());
|
|
const result = GitOperations.getStatus(dir);
|
|
return Array.isArray(result?.files) ? result.files : [];
|
|
});
|
|
|
|
ipcMain.handle('git-stage', async (_event, { rootPath, files }) => {
|
|
const dir =
|
|
rootPath ||
|
|
(currentFileRef.current ? require('path').dirname(currentFileRef.current) : process.cwd());
|
|
return GitOperations.stage(dir, files);
|
|
});
|
|
|
|
ipcMain.handle('git-commit', async (_event, { rootPath, message }) => {
|
|
const dir =
|
|
rootPath ||
|
|
(currentFileRef.current ? require('path').dirname(currentFileRef.current) : process.cwd());
|
|
return GitOperations.commit(dir, message);
|
|
});
|
|
|
|
ipcMain.handle('git-log', async (_event, rootPath) => {
|
|
const dir =
|
|
rootPath ||
|
|
(currentFileRef.current ? require('path').dirname(currentFileRef.current) : process.cwd());
|
|
return GitOperations.log(dir);
|
|
});
|
|
|
|
ipcMain.handle('git-diff', async (_event, filePath) => {
|
|
const dir = filePath
|
|
? require('path').dirname(filePath)
|
|
: currentFileRef.current
|
|
? require('path').dirname(currentFileRef.current)
|
|
: process.cwd();
|
|
return GitOperations.diff(dir, filePath);
|
|
});
|
|
}
|
|
|
|
module.exports = { register };
|