Hello, im trying to send data from main to renderer but im receiving the data twice everytime any idea why?
MAIN:
function createWindow() {
const mainWindow = new BrowserWindow({
width: 954,
height: 700,
resizable: false,
frame: false,
icon: path.join(__dirname, 'electron-assets/Logo.ico'),
webPreferences: {
preload: path.join(__dirname, 'lib/preload.js')
},
});
if (isDev) {
mainWindow.loadURL('http://localhost:5173');
} else {
mainWindow.loadFile(path.join(__dirname, './dist/index.html'));
}
let count = 0;
const d = {
id: 5,
title: "this is the new one",
msg:
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type.",
time: "25 April, 2024 15:30",
}
setInterval(() => {
mainWindow.webContents.send("newMessage", d)
count++;
console.log(`emitted: ${count}`)
console.log(d)
}, 5000);
}
and the preload.js :
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electron', {
exit: (exit) => ipcRenderer.send("exit", exit),
minimize: (minimize) => ipcRenderer.send("minimize", minimize),
maximize: (maximize) => ipcRenderer.send("maximize", maximize),
onMessage: (callback) => ipcRenderer.on("newMessage", (event, args)=> {
console.log(args)
callback(args)
})
});
the main logs emitted once everytime but on the renderer the data is received twice