|
1 | 1 | import prompt from 'custom-electron-prompt'; |
2 | 2 |
|
3 | | -import { discordService } from './main'; |
| 3 | +import { StatusDisplayType } from 'discord-api-types/v10'; |
4 | 4 |
|
| 5 | +import { discordService } from './main'; |
5 | 6 | import { singleton } from '@/providers/decorators'; |
6 | 7 | import promptOptions from '@/providers/prompt-options'; |
7 | 8 | import { setMenuOptions } from '@/config/plugins'; |
8 | | - |
9 | 9 | import { t } from '@/i18n'; |
10 | 10 |
|
11 | | -import { DiscordStatusDisplayType } from './constants'; |
12 | | - |
13 | 11 | import type { MenuContext } from '@/types/contexts'; |
14 | 12 | import type { DiscordPluginConfig } from './index'; |
15 | | - |
16 | 13 | import type { MenuTemplate } from '@/menu'; |
17 | 14 |
|
18 | 15 | const registerRefreshOnce = singleton((refreshMenu: () => void) => { |
19 | 16 | discordService?.registerRefreshCallback(refreshMenu); |
20 | 17 | }); |
21 | 18 |
|
22 | | -const DiscordStatusDisplayTypeLabels = { |
23 | | - [DiscordStatusDisplayType.YOUTUBE_MUSIC]: |
| 19 | +const DiscordStatusDisplayTypeLabels: Record<StatusDisplayType, string> = { |
| 20 | + [StatusDisplayType.Name]: |
24 | 21 | 'plugins.discord.menu.set-status-display-type.submenu.youtube-music', |
25 | | - [DiscordStatusDisplayType.ARTIST]: |
| 22 | + [StatusDisplayType.State]: |
26 | 23 | 'plugins.discord.menu.set-status-display-type.submenu.artist', |
27 | | - [DiscordStatusDisplayType.TITLE]: |
| 24 | + [StatusDisplayType.Details]: |
28 | 25 | 'plugins.discord.menu.set-status-display-type.submenu.title', |
29 | 26 | }; |
30 | 27 |
|
@@ -105,18 +102,24 @@ export const onMenu = async ({ |
105 | 102 | }, |
106 | 103 | { |
107 | 104 | label: t('plugins.discord.menu.set-status-display-type.label'), |
108 | | - submenu: Object.values(DiscordStatusDisplayType).map( |
109 | | - (statusDisplayType) => ({ |
110 | | - label: t(DiscordStatusDisplayTypeLabels[statusDisplayType]), |
| 105 | + submenu: Object.values(StatusDisplayType) |
| 106 | + .filter( |
| 107 | + (v) => typeof StatusDisplayType[v as StatusDisplayType] !== 'number', |
| 108 | + ) |
| 109 | + .map((statusDisplayType) => ({ |
| 110 | + label: t( |
| 111 | + DiscordStatusDisplayTypeLabels[ |
| 112 | + statusDisplayType as StatusDisplayType |
| 113 | + ], |
| 114 | + ), |
111 | 115 | type: 'radio', |
112 | | - checked: config.statusDisplayType == statusDisplayType, |
| 116 | + checked: config.statusDisplayType === statusDisplayType, |
113 | 117 | click() { |
114 | 118 | setConfig({ |
115 | | - statusDisplayType, |
| 119 | + statusDisplayType: statusDisplayType as StatusDisplayType, |
116 | 120 | }); |
117 | 121 | }, |
118 | | - }), |
119 | | - ), |
| 122 | + })), |
120 | 123 | }, |
121 | 124 | ]; |
122 | 125 | }; |
|
0 commit comments