From 8827de86efb2966d69cab9ae26babe9d36655c3a Mon Sep 17 00:00:00 2001 From: KorbsStudio Date: Mon, 13 Feb 2023 13:57:11 -0500 Subject: [PATCH] Prefer dotenv and pull data from it --- .env | 24 ++++++++++++++++++++ astro/config.ts | 57 +++++++++++------------------------------------ electron/index.js | 57 ++++++++++++++++++++++++++++++++--------------- 3 files changed, 76 insertions(+), 62 deletions(-) diff --git a/.env b/.env index 9c0cbc5..89761d5 100644 --- a/.env +++ b/.env @@ -1 +1,25 @@ +####################### +# Metadata # +####################### +# Branding +Name="App Name" +Description="The description of the application." +AppId="net.company.appname" +Company="Company Name" + +# Sources +Website="https://mycompany.net/" +Support="https://mycompany.net/help/" +SourceCode="https://github.com/company/app-name" + +####################### +# App Configuration # +####################### +# Theming +## Splash +LoadingIndicator="Spinner" # "Spinner" "ProgressBar" "JumpingBalls" "GlowingBars" +Background="#232323" + +# Notifications +## Pushy PushyAppId="YourAppIdHere" \ No newline at end of file diff --git a/astro/config.ts b/astro/config.ts index d1025d5..df025d2 100644 --- a/astro/config.ts +++ b/astro/config.ts @@ -1,15 +1,21 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/// PLEASE DO NOT TOUCH THIS FILE /// +/// This file is pulling data the ".env" file at the root of the project, please edit that file instead. /// +/// If your code editor shows the error "Property 'env' does not exist on type 'ImportMeta'.", please ignore. /// +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const APP = [{ - name: "App Name", - website: "https://mycompany.net/", - support: "https://mycompany.net/help/", - sourcecode: "https://github.com/company/app-name" + name: import.meta.env.Name, + company: import.meta.env.Company, + website: import.meta.env.Website, + support: import.meta.env.Support, + sourcecode: import.meta.env.SourceCode }] // Splash export const SPLASH = [ { - loading: "Spinner", // "Spinner" "ProgressBar" "JumpingBalls" "GlowingBars" - background: "#232323" + loading: import.meta.env.LoadingIndicator, + background: import.meta.env.Background } ] @@ -17,41 +23,4 @@ export const SPLASH = [ /// Theming export const SIDEBARTHEMING = [{ // Edit the "Configuration for Theming" section in the `styles/index.scss`. -}] - -/// Top tabs of your sidbears -export const SIDEBARTOP = [ - { - text: "Dashboard", - icon: "fa-solid fa-wand-magic-sparkles", - option: "active", - default: true - }, - { - text: "Files", - icon: "fa-solid fa-folder-tree" - }, - { - text: "Webview Demo", - icon: "fa-solid fa-globe" - }, - { - text: "Webview Demo", - icon: "fa-solid fa-globe", - option: "has-navigation", - navigation: true - }, - { - text: "iFrame Demo", - icon: "fa-solid fa-eye", - }, -] - -/// Bottoms tabs of your sidebar -export const SIDEBARBOTTOM = [ - { - text: "Settings", - page: "Settings", - icon: "fa-solid fa-sliders", - } -] \ No newline at end of file +}] \ No newline at end of file diff --git a/electron/index.js b/electron/index.js index 3e8814a..ab90388 100644 --- a/electron/index.js +++ b/electron/index.js @@ -1,23 +1,34 @@ +// ElectronJS const {app, BrowserWindow, Menu} = require('electron') -const TitlebarRespect = require('electron-titlebar-respect') -const Pushy = require('pushy-electron') + +// Dependenies by Korbs Studio const glasstron = require('glasstron-clarity') +const TitlebarRespect = require('electron-titlebar-respect') + +// Other dependenies const isDev = require('electron-is-dev') +const log = require('electron-log') +const Pushy = require('pushy-electron') + +// Needed for other stuff const path = require('path') let mainWindow +// Grab .env options require('dotenv').config() -console.log(process.env.PushyAppId); + +// Override the console.log function with Electron Log +log.transports.console.format = '\x1b[34m[electron]:\x1b[37m' +console.log = log.log // Use the correct icon depending on the operating system if /* If macOS */ (process.platform == 'darwin') {global.AppIcon = 'public/images/icons/app/macOS.icns' } else if /* If Windows */ (process.platform == 'win32') {global.AppIcon = 'public/images/icons/app/Windows.png' } else /* If Linux */ {global.AppIcon = 'public/images/icons/app/Linux.png' } - function createWindow () { mainWindow = new glasstron.BrowserWindow({ - title: 'App Name', + title: process.env.Name, minWidth: 400, minHeight: 400, width: 1200, @@ -53,7 +64,7 @@ function createWindow () { document.querySelector("body > div > div.sidebar > div.sidebar-bottom").insertAdjacentHTML("afterBegin",'
  • ${data.title}

    ${data.message}

  • ') `) }) - }, 10000); + }, 10000) if (Pushy.isRegistered()) {Pushy.subscribe('AppName').then(() => {}).catch((error) => {console.error(error)})} @@ -72,8 +83,6 @@ function createWindow () { submenu: [ { role: 'about' }, { type: 'separator' }, - { role: 'services' }, - { type: 'separator' }, { role: 'hide' }, { role: 'hideOthers' }, { role: 'unhide' }, @@ -124,9 +133,7 @@ function createWindow () { { label: 'Open WebView Developer Tools', accelerator: 'CmdOrCtrl+Shift+W', - click: async () => { - mainWindow.webContents.executeJavaScript(`document.querySelector('.active webview').openDevTools()`) - } + click: async () => {if (isDev) {mainWindow.webContents.executeJavaScript(`document.querySelector('.active webview').openDevTools()`)}else {console.log('Not available in production mode.')}} }, { type: 'separator' }, { role: 'resetZoom' }, @@ -154,13 +161,27 @@ function createWindow () { { role: 'help', submenu: [ - { - label: 'Learn More', - click: async () => { - const { shell } = require('electron') - await shell.openExternal('https://code.korbsstudio.com/KorbsStudio/nexus-polestar') - } + { + label: 'Website', + click: async () => { + const { shell } = require('electron') + await shell.openExternal(process.env.Website) } + }, + { + label: 'Support', + click: async () => { + const { shell } = require('electron') + await shell.openExternal(process.env.Support) + } + }, + { + label: 'Source Code', + click: async () => { + const { shell } = require('electron') + await shell.openExternal(process.env.SourceCode) + } + } ] } ] @@ -173,7 +194,7 @@ function createWindow () { app.whenReady().then(() => { createWindow() // DNS - // Doc: https://www.electronjs.org/docs/latest/api/app#appconfigurehostresolveroptions + // Docs: https://www.electronjs.org/docs/latest/api/app#appconfigurehostresolveroptions app.configureHostResolver({ secureDnsMode: 'secure', secureDnsServers: [