Skip to content

Commit 3cc83bb

Browse files
Shanon LeeShanon Lee
authored andcommitted
Add quasar-dotenv files for Slack OAuth & configure env in quasar config file; Add contextBridge for shell, used in SlackLoginWindow
1 parent b8ef939 commit 3cc83bb

File tree

9 files changed

+120
-30
lines changed

9 files changed

+120
-30
lines changed

.env

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SLACK_CLIENT_SECRET = "6a6206cc93da2e49243ee9683f958438"
2+
SLACK_CLIENT_ID = "2696943977700.2696948669268"
3+
SLACK_REDIRECT_URI = "overvue://slack"

.env.development

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SLACK_CLIENT_SECRET = "6a6206cc93da2e49243ee9683f958438"
2+
SLACK_CLIENT_ID = "2696943977700.2696948669268"
3+
SLACK_REDIRECT_URI = "overvuedev://test"

.env.example

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#DO NOT DELETE THIS FILE, and follow instructions:
2+
# Required for Slack Oauth features
3+
# Create TWO files, one named ".env" and the second named ".env.development" in this directory, and give them the following variables
4+
# Any environment variables you create MUST also be created here in .env.example
5+
6+
SLACK_CLIENT_SECRET = "ENTER_CLIENT_SECRET_HERE"
7+
SLACK_CLIENT_ID = "ENTER_CLIENT_ID_HERE"
8+
SLACK_REDIRECT_URI = "REDIRECT URL HERE"
9+
10+
# https://www.npmjs.com/package/dotenv
11+
# https://www.npmjs.com/package/quasar-dotenv
12+
# https://v1.quasar.dev/quasar-cli/handling-process-env
13+
# https://v1.quasar.dev/quasar-cli/quasar-conf-js#using-dotenv

package-lock.json

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
{
22
"name": "overvue",
3-
"version": "0.0.1",
4-
"description": "A Quasar Framework app",
5-
"productName": "OverVue5.0",
6-
"author": "",
3+
"version": "5.0.0",
4+
"description": "Vue Prototype DevTool",
5+
"productName": "OverVue",
6+
"cordovaId": "org.cordova.quasar.app",
7+
"author": "Team OverVue, Team Vuetiful, Team Vuelociraptors, TeamVueTopia",
78
"private": true,
9+
"bugs": {
10+
"url": "https://github.com/TeamOverVue/OverVue/issues"
11+
},
12+
"homepage": "https://github.com/TeamOverVue/OverVue",
813
"scripts": {
914
"lint": "eslint --ext .js,.vue ./",
1015
"test": "echo \"No test specified\" && exit 0",
@@ -21,6 +26,7 @@
2126
"lodash.isequal": "^4.5.0",
2227
"lodash.throttle": "^4.1.1",
2328
"quasar": "^2.0.0",
29+
"quasar-dotenv": "^1.0.5",
2430
"vue-draggable-resizable": "^2.3.0",
2531
"vue-prism-editor": "^2.0.0-alpha.2",
2632
"vued3tree": "^5.1.0",

quasar.conf.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ const ESLintPlugin = require('eslint-webpack-plugin')
1111
const { configure } = require('quasar/wrappers');
1212

1313
module.exports = configure(function (ctx) {
14+
const env = ctx.dev
15+
? require("quasar-dotenv").config({ path: '.env.development' })
16+
: require("quasar-dotenv").config()
17+
1418
return {
1519
// https://quasar.dev/quasar-cli/supporting-ts
1620
supportTS: false,
@@ -46,6 +50,7 @@ module.exports = configure(function (ctx) {
4650
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
4751
build: {
4852
vueRouterMode: 'history', // available values: 'hash', 'history'
53+
env: env,
4954
// Potential fix for fs errors
5055
// extendWebpack(cfg) {
5156
// // cfg.target = ['electron-main', 'electron-renderer']
@@ -214,7 +219,8 @@ module.exports = configure(function (ctx) {
214219
// bundler: 'packager', // 'packager' or 'builder'
215220
bundler: 'builder',
216221
packager: {
217-
protocols: ["overvue"],
222+
// protocols: ["overvue"],
223+
protocol: "overvue",
218224
appBundleId: "overvue",
219225
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
220226

src-electron/electron-main.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ function createWindow () {
133133
useContentSize: true,
134134
webPreferences: {
135135
contextIsolation: true,
136+
nodeIntegration: true,
136137
// More info: /quasar-cli/developing-electron-apps/electron-preload-script
137138
preload: path.resolve(__dirname, process.env.QUASAR_ELECTRON_PRELOAD)
138139
}
@@ -156,7 +157,17 @@ function createWindow () {
156157
})
157158
}
158159

159-
app.whenReady().then(createWindow)
160+
// Default from quasar
161+
// app.whenReady().then(createWindow)
162+
// New
163+
app.whenReady()
164+
.then(() => {
165+
createWindow();
166+
setOauthListener();
167+
})
168+
.catch((err) => {
169+
console.log(err);
170+
})
160171

161172
app.on('window-all-closed', () => {
162173
if (platform !== 'darwin') {

src-electron/electron-preload.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,17 @@
1515
* doAThing: () => {}
1616
* })
1717
*/
18+
19+
20+
const {ipcRenderer, shell, contextBridge} = require('electron');
21+
// ipcRenderer contextBridge
22+
contextBridge.exposeInMainWorld("ipcRenderer",{
23+
on: (channel, func) => ipcRenderer.on(
24+
channel,
25+
(event, ...args) => func(args)
26+
)
27+
});
28+
29+
contextBridge.exposeInMainWorld("shell", {
30+
openExternal: (url, options) => shell.openExternal(url, options)
31+
})

src/components/slack_login/SlackLoginWindow.vue

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@
9292
// import { mapState, mapActions } from 'vuex'
9393
import localforage from "localforage";
9494
// import { shell, ipcRenderer } from "electron";
95+
const { ipcRenderer, shell } = window;
96+
9597
9698
export default {
9799
name: "SlackLoginWindow",
@@ -103,30 +105,30 @@ export default {
103105
};
104106
},
105107
created() {
106-
// ipcRenderer.on("tokenReceived", (event, data) => {
107-
// // console.log("data in SlackLoginWindow: ", data);
108-
// // localforage.setItem('slackWebhookURL', data.incoming_webhook.url)
109-
// // .then(data => this.closeLogin())
110-
// return this.saveToLocalForage(
111-
// "slackWebhookURL",
112-
// data.incoming_webhook.url
113-
// );
114-
// });
115-
// ipcRenderer.on("slackUser", (event, user) => {
116-
// // console.log("user received in SlackLoginWindow: ", user);
117-
// // localforage.setItem('slackUser', user)
118-
// // .then(data => this.closeLogin())
119-
// // .catch(err => {
120-
// // console.log('localforage caught an error when trying to set slackUser: ', err)
121-
// // this.errorMessage = err
122-
// // })
123-
// return this.saveToLocalForage("slackUser", user);
124-
// });
125-
// ipcRenderer.on("slackError", (event, err) => {
126-
// // console.log("err received in SlackLoginWindow: ", err);
127-
// this.printErrorMessage();
128-
// });
129-
// // console.log(`process.env: ${process.env}`);
108+
ipcRenderer.on("tokenReceived", (event, data) => {
109+
// console.log("data in SlackLoginWindow: ", data);
110+
// localforage.setItem('slackWebhookURL', data.incoming_webhook.url)
111+
// .then(data => this.closeLogin())
112+
return this.saveToLocalForage(
113+
"slackWebhookURL",
114+
data.incoming_webhook.url
115+
);
116+
});
117+
ipcRenderer.on("slackUser", (event, user) => {
118+
// console.log("user received in SlackLoginWindow: ", user);
119+
// localforage.setItem('slackUser', user)
120+
// .then(data => this.closeLogin())
121+
// .catch(err => {
122+
// console.log('localforage caught an error when trying to set slackUser: ', err)
123+
// this.errorMessage = err
124+
// })
125+
return this.saveToLocalForage("slackUser", user);
126+
});
127+
ipcRenderer.on("slackError", (event, err) => {
128+
// console.log("err received in SlackLoginWindow: ", err);
129+
this.printErrorMessage();
130+
});
131+
// console.log(`process.env: ${process.env}`);
130132
},
131133
methods: {
132134
slackOauth: function() {

0 commit comments

Comments
 (0)