]> Repos - mime-chat/commitdiff
add window state management to store
authorEnrique H. Oliva <hernandeze2@xavier.edu>
Wed, 28 Jul 2021 13:48:27 +0000 (08:48 -0500)
committerEnrique H. Oliva <hernandeze2@xavier.edu>
Wed, 28 Jul 2021 13:49:44 +0000 (08:49 -0500)
src/init.ts
src/session.ts
src/store.ts

index 9a0fdf64e9bdff2b8d0da6b7ff1df06b8b6ba058..637db63fbc9db3d106833a239dd3464ae899fe9d 100644 (file)
@@ -9,6 +9,7 @@ import { app, protocol } from "electron";
 import createWindow from "./window";
 import main from "./main";
 import { backgroundMitt } from '@/composables/useEmitter';
+import {setWindow, getWindow } from './store';
 
 console.log('Starting Crimata electron app.');
 
@@ -19,11 +20,9 @@ protocol.registerSchemesAsPrivileged([
 
 const isDev = require('electron-is-dev');
 
-let win: boolean;
-
 // Listen for window creation.
 backgroundMitt.on('window-active', (state: boolean) => {
-    win = state;
+    setWindow(state)
 });
 
 /* Start main process on ready */
@@ -41,7 +40,7 @@ app.on("window-all-closed", () => {
 
 // When user clicks app icon (re-open)
 app.on("activate", () => {
-    if (!win) createWindow();
+    if (!getWindow()) createWindow();
 });
 
 // Exit cleanly on request from parent process in development mode.
index 0bcd4e41330d854df5533e4b3a22845f2c135472..be6fdd31fa0ec8eaa1a556aea11b5246350a977c 100644 (file)
@@ -5,13 +5,7 @@ import { config } from "@/config";
 import useWebsockets from "./composables/useWebsockets";
 import { backgroundMitt, ipcEmit } from "@/composables/useEmitter";
 import { Notification } from 'electron';
-
-let win: boolean;
-
-// Listen for window creation.
-backgroundMitt.on('window-active', (state: boolean) => {
-    win = state;
-});
+import { getWindow } from './store';
 
 function showNotification (options: {
     title: string;
@@ -47,7 +41,7 @@ const onMessageCallback = (payload: string) => {
         uiState.update(body);
 
         // show notification if window is not active
-        if (!win) {
+        if (!getWindow()) {
             if (body.name === "add") {
                 const data = body.data as Message;
                 showNotification({
index 020068143b0a2a51f953739847ad6e7838a6df1e..8ac280ef9282e1b523f2c2f5addebc7020bac9b4 100644 (file)
@@ -3,7 +3,10 @@ const Store = require('electron-store');
 const schema = {
        token: {
                type: 'string',
-       }
+       },
+    window: {
+        type: 'boolean'
+    }
 };
 
 const store = new Store({
@@ -11,9 +14,12 @@ const store = new Store({
     encryptionKey: "super user test"
 });
 
+/*
+ * Token state management
+* */
 export const setToken = (token: string): void => {
     store.set("token", token);
-} 
+}
 
 export const getToken = (): string | undefined => {
     return store.get("token");
@@ -21,4 +27,19 @@ export const getToken = (): string | undefined => {
 
 export const clearToken = (): void => {
     store.delete("token");
-}
\ No newline at end of file
+}
+
+/*
+ * Window state management
+* */
+export const setWindow = (state: boolean): void => {
+    store.set("window", state);
+}
+
+export const getWindow = (): boolean | undefined => {
+    return store.get("window");
+}
+
+export const clearWindow = (): void => {
+    store.delete("window");
+}