/ src / storage / playerSettings / types.ts
types.ts
 1  import type { HotkeyModifierKey } from '@/hotkey/constants';
 2  import type { Hotkey as HotkeyV2 } from '@/hotkey/types';
 3  
 4  // v1
 5  
 6  export interface HotkeyV1 {
 7  	mods: HotkeyModifierKey[];
 8  	key: string;
 9  }
10  
11  export interface PlayerSettingsV1 {
12  	isPreventPlaybackRateChange: boolean;
13  	toggleDislikeHotkey: HotkeyV1 | undefined;
14  	toggleBookmarkHotkey: HotkeyV1 | undefined;
15  	toggleFullscreenHotkey: HotkeyV1 | undefined;
16  }
17  
18  // v2
19  
20  export interface PlayerSettingsV2
21  	extends Omit<
22  		PlayerSettingsV1,
23  		'toggleDislikeHotkey' | 'toggleBookmarkHotkey' | 'toggleFullscreenHotkey'
24  	> {
25  	toggleDislikeHotkey: HotkeyV2 | undefined;
26  	toggleBookmarkHotkey: HotkeyV2 | undefined;
27  	toggleFullscreenHotkey: HotkeyV2 | undefined;
28  }
29  
30  // v3
31  
32  export interface PlayerSettingsV3 extends PlayerSettingsV2 {
33  	copyCoubPermalinkHotkey: HotkeyV2 | undefined;
34  }
35  
36  // v4
37  
38  export type PlayerSettingsV4 = Omit<PlayerSettingsV3, 'copyCoubPermalinkHotkey'>;