mirror of
https://github.com/GiriNeko/YesPlayMusic.git
synced 2025-12-17 13:48:02 +00:00
feat: 实现托盘菜单 (#1538)
* 从 v1 添加托盘相关图标 * feat: ipcRenderer事件 * feat: 托盘菜单实现 * 修复合并后的错误 * fix: 托盘图标的like * 将 tray 相关的 ipc 放入ipcMain.ts * update * update * feat: 设置托盘Tooltip * fix * fix: tray play/pause fade * fix: 暂时将tray like与tooltip的设置移入Player组件中 useUserLikedTracksIDs 会在重新聚焦而不是切换track时触发,导致托盘无法实时更新数据 基于以上一点,在Player组件中有了一个用于设置tray数据的useEffect,故将tray tooltip的设置也放入其中,使tray的数据尽可能简单的和player数据保持一致 * 将部分ipcRenderer调用挪到单独的IpcRendererReact组件 * 移除SetTrayPlayState,复用已有channel * update
This commit is contained in:
parent
b1fd51233a
commit
ffdf66b57e
24 changed files with 392 additions and 19 deletions
35
src/renderer/ipcRenderer.ts
Normal file
35
src/renderer/ipcRenderer.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { player } from '@/renderer/store'
|
||||
import { IpcChannels, IpcChannelsReturns, IpcChannelsParams } from '@/shared/IpcChannels'
|
||||
|
||||
const on = <T extends keyof IpcChannelsParams>(
|
||||
channel: T,
|
||||
listener: (event: any, params: IpcChannelsReturns[T]) => void
|
||||
) => {
|
||||
window.ipcRenderer?.on(channel, listener)
|
||||
}
|
||||
|
||||
export function ipcRenderer() {
|
||||
on(IpcChannels.Play, () => {
|
||||
player.play(true)
|
||||
})
|
||||
|
||||
on(IpcChannels.Pause, () => {
|
||||
player.pause(true)
|
||||
})
|
||||
|
||||
on(IpcChannels.PlayOrPause, () => {
|
||||
player.playOrPause()
|
||||
})
|
||||
|
||||
on(IpcChannels.Next, () => {
|
||||
player.nextTrack()
|
||||
})
|
||||
|
||||
on(IpcChannels.Previous, () => {
|
||||
player.prevTrack()
|
||||
})
|
||||
|
||||
on(IpcChannels.Repeat, (e, mode) => {
|
||||
player.repeatMode = mode
|
||||
})
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue