Browse Source

init matrix-chat-electron

master
adb 11 months ago
commit
9c36b73df6
  1. 6
      .gitignore
  2. 86
      index.js
  3. 20
      package.json
  4. BIN
      splash_assets/splash.png

6
.gitignore

@ -0,0 +1,6 @@
# NPM renames .gitignore to .npmignore
# In order to prevent that, we remove the initial "."
# And the CLI then renames it
app/
node_modules/

86
index.js

@ -0,0 +1,86 @@
const { app, BrowserWindow, Menu } = require('electron');
const isDevMode = require('electron-is-dev');
const { CapacitorSplashScreen, configCapacitor } = require('@capacitor/electron');
const path = require('path');
// Place holders for our windows so they don't get garbage collected.
let mainWindow = null;
// Placeholder for SplashScreen ref
let splashScreen = null;
//Change this if you do not wish to have a splash screen
let useSplashScreen = true;
// Create simple menu for easy devtools access, and for demo
const menuTemplateDev = [
{
label: 'Options',
submenu: [
{
label: 'Open Dev Tools',
click() {
mainWindow.openDevTools();
},
},
],
},
];
async function createWindow () {
// Define our main window size
mainWindow = new BrowserWindow({
height: 800,
width: 1200,
show: false,
webPreferences: {
nodeIntegration: true,
preload: path.join(__dirname, 'node_modules', '@capacitor', 'electron', 'dist', 'electron-bridge.js')
}
});
configCapacitor(mainWindow);
if (isDevMode) {
// Set our above template to the Menu Object if we are in development mode, dont want users having the devtools.
Menu.setApplicationMenu(Menu.buildFromTemplate(menuTemplateDev));
// If we are developers we might as well open the devtools by default.
mainWindow.webContents.openDevTools();
}
if(useSplashScreen) {
splashScreen = new CapacitorSplashScreen(mainWindow);
splashScreen.init();
} else {
mainWindow.loadURL(`file://${__dirname}/app/index.html`);
mainWindow.webContents.on('dom-ready', () => {
mainWindow.show();
});
}
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some Electron APIs can only be used after this event occurs.
app.on('ready', createWindow);
// Quit when all windows are closed.
app.on('window-all-closed', function () {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', function () {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
createWindow();
}
});
// Define any IPC or other custom functionality below here

20
package.json

@ -0,0 +1,20 @@
{
"name": "matrix-chat",
"version": "0.1.0",
"description": "a simple matrix webapp for mobile and desktop",
"main": "index.js",
"scripts": {
"electron:start": "electron ./"
},
"dependencies": {
"@capacitor/electron": "^2.4.7",
"electron-is-dev": "^1.1.0"
},
"devDependencies": {
"electron": "^8.0.0"
},
"keywords": [
"capacitor",
"electron"
]
}

BIN
splash_assets/splash.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Loading…
Cancel
Save