darwinShare TM

This commit is contained in:
child_duckling 2022-02-03 21:27:49 -08:00
parent 7395086bea
commit 6363375361
3 changed files with 31 additions and 5 deletions

View file

@ -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
* **********************************************************************************************/

View file

@ -987,8 +987,12 @@ const app = new Vue({
})
},
copyToClipboard(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)
},
}
})

View file

@ -87,7 +87,7 @@
<button class="md-btn md-btn-block meta-btn" @click="openUrl(selected.attributes.websiteUrl)">{{$root.getLz('podcast.website')}}</button>
</div>
<div class="col">
<button class="md-btn md-btn-block meta-btn">{{$root.getLz('action.share')}}</button>
<button class="md-btn md-btn-block meta-btn" @click="$root.share(selected.attributes.websiteUrl)">{{$root.getLz('action.share')}}</button>
</div>
</div>
</div>