Skip to content

Commit

Permalink
improve(electron): compatible paste assets for multiple platform
Browse files Browse the repository at this point in the history
  • Loading branch information
xyhp915 committed Jan 28, 2021
1 parent 32c2d4f commit c151c9c
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 122 deletions.
33 changes: 20 additions & 13 deletions resources/js/preload.js
Expand Up @@ -5,6 +5,19 @@ const { ipcRenderer, contextBridge, shell, clipboard, BrowserWindow } = require(
const IS_MAC = process.platform === 'darwin'
const IS_WIN32 = process.platform === 'win32'

function getFilePathFromClipboard () {
if (IS_WIN32) {
const rawFilePath = clipboard.read('FileNameW')
return rawFilePath.replace(new RegExp(String.fromCharCode(0), 'g'), '')
}

return clipboard.read('public.file-url').replace('file://', '')
}

function isClipboardHasImage () {
return !clipboard.readImage().isEmpty()
}

contextBridge.exposeInMainWorld('apis', {
doAction: async (arg) => {
return await ipcRenderer.invoke('main', arg)
Expand Down Expand Up @@ -65,11 +78,12 @@ contextBridge.exposeInMainWorld('apis', {

await fs.promises.mkdir(assetsRoot, { recursive: true })

from = from || getFilePathFromClipboard()
from = decodeURIComponent(from || getFilePathFromClipboard())

if (from) {
// console.debug('copy file: ', from, dest)
return await fs.promises.copyFile(from, dest)
await fs.promises.copyFile(from, dest)
return path.basename(from)
}

// support image
Expand All @@ -83,16 +97,6 @@ contextBridge.exposeInMainWorld('apis', {
nImg.toPNG()
)
}

// fns
function getFilePathFromClipboard () {
if (IS_WIN32) {
const rawFilePath = clipboard.read('FileNameW')
return rawFilePath.replace(new RegExp(String.fromCharCode(0), 'g'), '')
}

return clipboard.read('public.file-url').replace('file://', '')
}
},

toggleMaxOrMinActiveWindow (isToggleMin = false) {
Expand All @@ -107,5 +111,8 @@ contextBridge.exposeInMainWorld('apis', {
*/
async _callApplication (type, ...args) {
return await ipcRenderer.invoke('call-application', type, ...args)
}
},

getFilePathFromClipboard,
isClipboardHasImage
})

0 comments on commit c151c9c

Please sign in to comment.