34 lines
902 B
TypeScript
34 lines
902 B
TypeScript
import { type BrowserWindow } from 'electron'
|
|
|
|
export default function (
|
|
app: Electron.App,
|
|
win: BrowserWindow | null,
|
|
ipcMain: Electron.IpcMain,
|
|
shell: Electron.Shell
|
|
) {
|
|
ipcMain.on('deeplink', (_event, url) => {
|
|
// open browser
|
|
shell.openExternal(url)
|
|
})
|
|
|
|
app.on('open-url', (_event, url) => {
|
|
const paramsString = url.split('://')[1]
|
|
|
|
const kind = paramsString.split('?')[0]
|
|
|
|
const params = new URLSearchParams(paramsString)
|
|
|
|
if (kind === '/login') {
|
|
win?.webContents.send('loginSuccess', {
|
|
id: params.get('id'),
|
|
name: params.get('name'),
|
|
email: params.get('email'),
|
|
picture: params.get('picture'),
|
|
permissions: params.get('permissions'),
|
|
access_token: params.get('access_token'),
|
|
max_age: params.get('access_token_max_age'),
|
|
refresh_token: params.get('refresh_token')
|
|
})
|
|
}
|
|
})
|
|
}
|