Add rating hotkeys (#208)

This commit is contained in:
jeffvli 2023-09-23 03:20:04 -07:00
parent f0e518d3c8
commit 571ea3c653
3 changed files with 25 additions and 1 deletions

View file

@ -69,7 +69,7 @@ export const RightControls = () => {
}); });
}; };
const handleClearRating = (_e: MouseEvent<HTMLDivElement>, rating?: number) => { const handleClearRating = (_e: MouseEvent<HTMLDivElement> | null, rating?: number) => {
if (!currentSong || !rating) return; if (!currentSong || !rating) return;
updateRatingMutation.mutate({ updateRatingMutation.mutate({
@ -115,6 +115,12 @@ export const RightControls = () => {
[bindings.volumeUp.isGlobal ? '' : bindings.volumeUp.hotkey, handleVolumeUp], [bindings.volumeUp.isGlobal ? '' : bindings.volumeUp.hotkey, handleVolumeUp],
[bindings.volumeMute.isGlobal ? '' : bindings.volumeMute.hotkey, handleMute], [bindings.volumeMute.isGlobal ? '' : bindings.volumeMute.hotkey, handleMute],
[bindings.toggleQueue.isGlobal ? '' : bindings.toggleQueue.hotkey, handleToggleQueue], [bindings.toggleQueue.isGlobal ? '' : bindings.toggleQueue.hotkey, handleToggleQueue],
[bindings.rate0.isGlobal ? '' : bindings.rate0.hotkey, () => handleClearRating(null, 0)],
[bindings.rate1.isGlobal ? '' : bindings.rate1.hotkey, () => handleUpdateRating(1)],
[bindings.rate2.isGlobal ? '' : bindings.rate2.hotkey, () => handleUpdateRating(2)],
[bindings.rate3.isGlobal ? '' : bindings.rate3.hotkey, () => handleUpdateRating(3)],
[bindings.rate4.isGlobal ? '' : bindings.rate4.hotkey, () => handleUpdateRating(4)],
[bindings.rate5.isGlobal ? '' : bindings.rate5.hotkey, () => handleUpdateRating(5)],
]); ]);
useEffect(() => { useEffect(() => {

View file

@ -20,6 +20,12 @@ const BINDINGS_MAP: Record<BindingActions, string> = {
play: 'Play', play: 'Play',
playPause: 'Play / Pause', playPause: 'Play / Pause',
previous: 'Previous track', previous: 'Previous track',
rate0: 'Rating clear',
rate1: 'Rating 1 star',
rate2: 'Rating 2 star',
rate3: 'Rating 3 star',
rate4: 'Rating 4 star',
rate5: 'Rating 5 star',
skipBackward: 'Skip backward', skipBackward: 'Skip backward',
skipForward: 'Skip forward', skipForward: 'Skip forward',
stop: 'Stop', stop: 'Stop',

View file

@ -91,6 +91,12 @@ export enum BindingActions {
PLAY = 'play', PLAY = 'play',
PLAY_PAUSE = 'playPause', PLAY_PAUSE = 'playPause',
PREVIOUS = 'previous', PREVIOUS = 'previous',
RATE_0 = 'rate0',
RATE_1 = 'rate1',
RATE_2 = 'rate2',
RATE_3 = 'rate3',
RATE_4 = 'rate4',
RATE_5 = 'rate5',
SHUFFLE = 'toggleShuffle', SHUFFLE = 'toggleShuffle',
SKIP_BACKWARD = 'skipBackward', SKIP_BACKWARD = 'skipBackward',
SKIP_FORWARD = 'skipForward', SKIP_FORWARD = 'skipForward',
@ -234,6 +240,12 @@ const initialState: SettingsState = {
play: { allowGlobal: true, hotkey: '', isGlobal: false }, play: { allowGlobal: true, hotkey: '', isGlobal: false },
playPause: { allowGlobal: true, hotkey: '', isGlobal: false }, playPause: { allowGlobal: true, hotkey: '', isGlobal: false },
previous: { allowGlobal: true, hotkey: '', isGlobal: false }, previous: { allowGlobal: true, hotkey: '', isGlobal: false },
rate0: { allowGlobal: true, hotkey: '', isGlobal: false },
rate1: { allowGlobal: true, hotkey: '', isGlobal: false },
rate2: { allowGlobal: true, hotkey: '', isGlobal: false },
rate3: { allowGlobal: true, hotkey: '', isGlobal: false },
rate4: { allowGlobal: true, hotkey: '', isGlobal: false },
rate5: { allowGlobal: true, hotkey: '', isGlobal: false },
skipBackward: { allowGlobal: true, hotkey: '', isGlobal: false }, skipBackward: { allowGlobal: true, hotkey: '', isGlobal: false },
skipForward: { allowGlobal: true, hotkey: '', isGlobal: false }, skipForward: { allowGlobal: true, hotkey: '', isGlobal: false },
stop: { allowGlobal: true, hotkey: '', isGlobal: false }, stop: { allowGlobal: true, hotkey: '', isGlobal: false },