From 6363375361fa63d5a945f0d5bd757c475450bd04 Mon Sep 17 00:00:00 2001 From: child_duckling <19170969+quacksire@users.noreply.github.com> Date: Thu, 3 Feb 2022 21:27:49 -0800 Subject: [PATCH] darwinShare TM --- src/main/base/browserwindow.ts | 21 ++++++++++++++++++++- src/renderer/index.js | 13 ++++++++++--- src/renderer/views/pages/podcasts.ejs | 2 +- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 1e4011bd..2a504b86 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1,5 +1,5 @@ import {join} from "path"; -import {app, BrowserWindow as bw, ipcMain, shell} from "electron"; +import {app, BrowserWindow as bw, ipcMain, shell, ShareMenu} from "electron"; import * as windowStateKeeper from "electron-window-state"; import * as express from "express"; import * as getPort from "get-port"; @@ -534,6 +534,25 @@ export class BrowserWindow { await linux_autoUpdater.checkForUpdatesAndNotify() }) + ipcMain.on('share-menu', async (_event, url) => { + if ( process.platform != 'darwin') return; + //https://www.electronjs.org/docs/latest/api/share-menu + console.log('[Share Sheet - App.ts]', url) + const options = { + title: 'Share', + urls: [url] + }; + // @ts-ignore + const shareMenu = new ShareMenu(options); + shareMenu.popup(); + }) + + + + + + + /* ********************************************************************************************* * Window Events * **********************************************************************************************/ diff --git a/src/renderer/index.js b/src/renderer/index.js index 0a940a7f..c2fc265e 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -987,8 +987,12 @@ const app = new Vue({ }) }, copyToClipboard(str) { - notyf.success(app.getLz('term.share.success')) - navigator.clipboard.writeText(str) + if (process.platform === 'darwin') { + this.darwinShare(str) + } else { + notyf.success(app.getLz('term.share.success')) + navigator.clipboard.writeText(str) + } }, newPlaylist(name = app.getLz('term.newPlaylist'), tracks = []) { let self = this @@ -3580,7 +3584,10 @@ const app = new Vue({ }, checkForUpdate(){ ipcRenderer.send('check-for-update') - } + }, + darwinShare(url){ + ipcRenderer.send('share-menu', url) + }, } }) diff --git a/src/renderer/views/pages/podcasts.ejs b/src/renderer/views/pages/podcasts.ejs index a54876d4..54923b37 100644 --- a/src/renderer/views/pages/podcasts.ejs +++ b/src/renderer/views/pages/podcasts.ejs @@ -87,7 +87,7 @@