working version with js electron set up sending data to channel and stuff through to the main process

This commit is contained in:
talksik
2022-03-12 18:09:21 -05:00
parent 3b9da153ab
commit 118ffccd64
24 changed files with 2856 additions and 24630 deletions
+85
View File
@@ -0,0 +1,85 @@
const ElectronGoogleOAuth2 =
require("@getstation/electron-google-oauth2").default;
const path = require("path");
const { app, BrowserWindow, session, ipcMain } = require("electron");
const isDev = require("electron-is-dev");
const { channels } = require("../src/shared/constants");
function createWindow() {
// Create the browser window.
const win = new BrowserWindow({
width: 800,
height: 800,
webPreferences: {
nodeIntegration: true,
preload: path.resolve(path.join(__dirname, "./preload.js")),
},
});
// and load the index.html of the app.
// win.loadFile("index.html");
win.loadURL(
isDev
? "http://localhost:3000"
: `file://${path.join(__dirname, "../build/index.html")}`
);
// Open the DevTools.
if (isDev) {
win.webContents.openDevTools({ mode: "detach" });
}
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(createWindow);
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
});
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
app.on("ready", () => {
console.log(process.env);
// const myApiOauth = new ElectronGoogleOAuth2(
// "423533244953-banligobgbof8hg89i6cr1l7u0p7c2pk.apps.googleusercontent.com",
// "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",
// [""],
// { successRedirectURL: "https://usenirvana.com" }
// );
// myApiOauth.openAuthWindowAndGetTokens().then((token) => {
// // use your token.access_token
// const cookie = {
// name: "access_token",
// value: token,
// };
// // session.defaultSession.cookies.set(cookie).then(
// // () => {
// // // success
// // console.log("stored auth token in cookies");
// // },
// // (error) => {
// // console.error(error);
// // }
// // );
// });
});
// End of the file
ipcMain.on(channels.ACTIVATE_LOG_IN, (event, arg) => {
console.log("activated log in channel");
});
+7
View File
@@ -0,0 +1,7 @@
import { API } from "./preload";
export {};
declare global {
interface Window {
API: typeof API;
}
}
+8
View File
@@ -0,0 +1,8 @@
const { contextBridge, ipcRenderer } = require("electron");
const { channels } = require("../src/shared/constants");
const API = {
activateLogin: () => ipcRenderer.send(channels.ACTIVATE_LOG_IN),
};
contextBridge.exposeInMainWorld("API", API);