mirror of
https://github.com/Molunerfinn/PicGo.git
synced 2024-04-21 10:31:33 +00:00
30 lines
829 B
TypeScript
30 lines
829 B
TypeScript
import { ipcRenderer } from 'electron'
|
|
import { onUnmounted } from 'vue'
|
|
import { IRPCActionType } from '~/universal/types/enum'
|
|
|
|
export const useIPCOn = (channel: string, listener: IpcRendererListener) => {
|
|
ipcRenderer.on(channel, listener)
|
|
|
|
onUnmounted(() => {
|
|
ipcRenderer.removeListener(channel, listener)
|
|
})
|
|
}
|
|
|
|
export const useIPCOnce = (channel: string, listener: IpcRendererListener) => {
|
|
ipcRenderer.once(channel, listener)
|
|
|
|
onUnmounted(() => {
|
|
ipcRenderer.removeListener(channel, listener)
|
|
})
|
|
}
|
|
|
|
/**
|
|
* will auto removeListener when component unmounted
|
|
*/
|
|
export const useIPC = () => {
|
|
return {
|
|
on: (channel: IRPCActionType, listener: IpcRendererListener) => useIPCOn(channel, listener),
|
|
once: (channel: IRPCActionType, listener: IpcRendererListener) => useIPCOnce(channel, listener)
|
|
}
|
|
}
|