production-taskbar-client / src / main / utils / createBrowserWindowTemplate.js
createBrowserWindowTemplate.js
Raw
import { MenuItem } from "electron";
import openDevToolsWindow from "./openDevToolsWindow";

const isDev = process.env.NODE_ENV === "development";

export default function createBrowserWindowTemplate(win, name = "") {
  const template = [
    new MenuItem({
      label: "๐Ÿ”™",
      click: () => win.webContents.goBack(),
    }),
    new MenuItem({
      label: "๐Ÿ”„",
      click: () => win.webContents.reload(),
    }),
    new MenuItem({
      label: "โžก๏ธ",
      click: () => win.webContents.goForward(),
    }),
    { type: "separator" },
    new MenuItem({
      label: "โž•",
      click: () => {
        const currentZoomF = win.webContents.getZoomFactor();
        win.webContents.setZoomLevel(currentZoomF + 0.1);
      },
    }),
    new MenuItem({
      label: "โœ–๏ธ",
      click: () => win.webContents.setZoomFactor(1),
    }),
    new MenuItem({
      label: "โž–",
      click: () => {
        const currentZoomF = win.webContents.getZoomFactor();
        const newZoomF = currentZoomF - 0.1 >= 0.3 ? currentZoomF - 0.1 : 0.3;
        win.webContents.setZoomFactor(newZoomF);
      },
    }),
  ];

  if (isDev)
    template.push(
      { type: "separator" },
      new MenuItem({
        label: "DevTools",
        click: () => {
          openDevToolsWindow({ window: win, title: win.webContents.getURL() });
        },
      })
    );

  if (name)
    template.push(
      { type: "separator" },
      new MenuItem({
        label: name,
        click: () => {},
      })
    );

  return template;
}