Added minimize to tray.
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
const path = require("path");
|
||||
const { app, BrowserWindow, ipcMain } = require("electron");
|
||||
const { app, BrowserWindow, Tray, Menu, ipcMain } = require("electron");
|
||||
const isDev = require("electron-is-dev");
|
||||
const settings = require("electron-settings");
|
||||
const ipcTypes = require("../src/ipc.types");
|
||||
const { StartWatcher } = require("./file-watcher/file-watcher");
|
||||
const { default: ipcTypes } = require("../src/ipc.types");
|
||||
|
||||
require("./ipc-main-handler");
|
||||
|
||||
@@ -23,13 +22,16 @@ if (require("electron-squirrel-startup")) {
|
||||
console.log(`${__dirname}/preload.js`);
|
||||
|
||||
let mainWindow;
|
||||
let tray = null;
|
||||
function createWindow() {
|
||||
makeSingleInstance();
|
||||
// Create the browser window.
|
||||
|
||||
mainWindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
title: "ImEX RPS",
|
||||
icon: path.join(__dirname, "../src/assets/logo192.png"),
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
enableRemoteModule: false,
|
||||
@@ -46,6 +48,23 @@ function createWindow() {
|
||||
: `file://${path.join(__dirname, "../build/index.html")}`
|
||||
);
|
||||
|
||||
// mainWindow.on("close", function (event) {
|
||||
// event.preventDefault();
|
||||
// mainWindow.hide();
|
||||
// tray = createTray();
|
||||
// });
|
||||
|
||||
mainWindow.on("minimize", function (event) {
|
||||
event.preventDefault();
|
||||
mainWindow.hide();
|
||||
tray = createTray();
|
||||
});
|
||||
|
||||
ipcMain.on(ipcTypes.quit, (event, arg) => {
|
||||
app.isQuiting = true;
|
||||
app.quit();
|
||||
});
|
||||
|
||||
// Open the DevTools.
|
||||
if (isDev) {
|
||||
mainWindow.webContents.openDevTools({
|
||||
@@ -67,7 +86,7 @@ app.whenReady().then(() => {
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((error) => console.log(`An error occurred: , ${error}`));
|
||||
}
|
||||
StartWatcher();
|
||||
|
||||
// ipcMain.on(ipcTypes.default.webcontent, (event, ...obj) => {
|
||||
// console.log("event", event);
|
||||
// mainWindow.webContents.send(event, obj);
|
||||
@@ -106,3 +125,29 @@ function makeSingleInstance() {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function createTray() {
|
||||
let appIcon = new Tray(path.join(__dirname, "../src/assets/logo192.png"));
|
||||
const contextMenu = Menu.buildFromTemplate([
|
||||
{
|
||||
label: "Show",
|
||||
click: function () {
|
||||
mainWindow.show();
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Exit",
|
||||
click: function () {
|
||||
app.isQuiting = true;
|
||||
app.quit();
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
appIcon.on("double-click", function (event) {
|
||||
mainWindow.show();
|
||||
});
|
||||
appIcon.setToolTip("ImEX RPS");
|
||||
appIcon.setContextMenu(contextMenu);
|
||||
return appIcon;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
import { PieChartOutlined, SettingFilled } from "@ant-design/icons";
|
||||
import {
|
||||
PieChartOutlined,
|
||||
SettingFilled,
|
||||
CloseOutlined,
|
||||
} from "@ant-design/icons";
|
||||
import { Menu } from "antd";
|
||||
import React from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import ipcTypes from "../../../ipc.types";
|
||||
import SiderSignOut from "../../molecules/sider-sign-out/sider-sign-out.molecule";
|
||||
const { ipcRenderer } = window;
|
||||
|
||||
export default function SiderMenuOrganism() {
|
||||
return (
|
||||
@@ -14,6 +20,16 @@ export default function SiderMenuOrganism() {
|
||||
<Link to="/settings">Settings</Link>
|
||||
</Menu.Item>
|
||||
<SiderSignOut />
|
||||
<Menu.Divider />
|
||||
<Menu.Item
|
||||
key="3"
|
||||
icon={<CloseOutlined />}
|
||||
onClick={() => {
|
||||
ipcRenderer.send(ipcTypes.default.quit);
|
||||
}}
|
||||
>
|
||||
Quit
|
||||
</Menu.Item>
|
||||
</Menu>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
exports.default = {
|
||||
webcontent: "webcontent-send",
|
||||
quit: "quit-app",
|
||||
test: {
|
||||
start: "test-start",
|
||||
},
|
||||
|
||||
@@ -7,9 +7,11 @@ import {
|
||||
import { QUERY_BODYSHOP } from "../../graphql/bodyshop.queries";
|
||||
import client from "../../graphql/GraphQLClient";
|
||||
import { UPSERT_USER } from "../../graphql/user.queries";
|
||||
import ipcTypes from "../../ipc.types";
|
||||
import {
|
||||
sendPasswordResetFailure,
|
||||
sendPasswordResetSuccess,
|
||||
setBodyshop,
|
||||
signInFailure,
|
||||
signInSuccess,
|
||||
signOutFailure,
|
||||
@@ -18,11 +20,11 @@ import {
|
||||
updateUserDetailsSuccess,
|
||||
validatePasswordResetFailure,
|
||||
validatePasswordResetSuccess,
|
||||
setBodyshop
|
||||
} from "./user.actions";
|
||||
|
||||
import UserActionTypes from "./user.types";
|
||||
|
||||
const { ipcRenderer } = window;
|
||||
|
||||
export function* onEmailSignInStart() {
|
||||
yield takeLatest(UserActionTypes.EMAIL_SIGN_IN_START, signInWithEmail);
|
||||
}
|
||||
@@ -110,6 +112,8 @@ export function* signInSuccessSaga({ payload }) {
|
||||
const shop = yield client.query({ query: QUERY_BODYSHOP });
|
||||
|
||||
yield put(setBodyshop(shop.data.bodyshops[0]));
|
||||
|
||||
ipcRenderer.send(ipcTypes.default.fileWatcher.toMain.start);
|
||||
// LogRocket.identify(payload.email);
|
||||
// if (!payload.email.includes("@imex.")) yield put(setInstanceId(payload.uid));
|
||||
// yield logImEXEvent("redux_sign_in_success");
|
||||
|
||||
Reference in New Issue
Block a user