diff --git a/src/server/api.ts b/src/server/api.ts index 3dc65e0..6d6a41b 100644 --- a/src/server/api.ts +++ b/src/server/api.ts @@ -8,6 +8,7 @@ import appRoutes from "./api/app"; import screenRoutes from "./api/screen"; import dialogRoutes from "./api/dialog"; import debugRoutes from "./api/debug"; +import broadcastingRoutes from "./api/broadcasting"; import systemRoutes from "./api/system"; import globalShortcutRoutes from "./api/globalShortcut"; import notificationRoutes from "./api/notification"; @@ -54,6 +55,7 @@ async function startAPIServer(randomSecret: string): Promise { httpServer.use("/api/menu-bar", menuBarRoutes); httpServer.use("/api/progress-bar", progressBarRoutes); httpServer.use("/api/power-monitor", powerMonitorRoutes); + httpServer.use("/api/broadcast", broadcastingRoutes); if (process.env.NODE_ENV === "development") { httpServer.use("/api/debug", debugRoutes); diff --git a/src/server/api/broadcasting.ts b/src/server/api/broadcasting.ts new file mode 100644 index 0000000..4013c07 --- /dev/null +++ b/src/server/api/broadcasting.ts @@ -0,0 +1,19 @@ +import express from 'express' +import state from "../state"; +const router = express.Router(); + +router.post('/', (req, res) => { + const {event, payload} = req.body; + + Object.values(state.windows).forEach(window => { + window.webContents.send('native-event', { event, payload }) + }) + + if (state.activeMenuBar?.window) { + state.activeMenuBar.window.webContents.send('native-event', { event, payload }) + } + + res.sendStatus(200) +}) + +export default router;