24 lines
535 B
TypeScript
24 lines
535 B
TypeScript
![]() |
import { useEffect } from 'react'
|
||
|
import type { WebContentSendPayload } from '../menu/channels'
|
||
|
import { isDesktop } from 'lib/isDesktop'
|
||
|
export function useMenuListener(
|
||
|
callback: (data: WebContentSendPayload) => void
|
||
|
) {
|
||
|
useEffect(() => {
|
||
|
const onDesktop = isDesktop()
|
||
|
if (!onDesktop) {
|
||
|
// NO OP for web
|
||
|
return
|
||
|
}
|
||
|
|
||
|
const removeListener = window.electron.menuOn(callback)
|
||
|
return () => {
|
||
|
if (!onDesktop) {
|
||
|
// NO OP for web
|
||
|
return
|
||
|
}
|
||
|
removeListener()
|
||
|
}
|
||
|
}, [])
|
||
|
}
|