@@ -4,31 +4,29 @@ import type {
44 UserContextMenuCommandInteraction
55} from 'discord.js'
66
7- export type ContextMenuCallback < Type extends 'message' | 'user' > = (
8- interaction : Type extends 'message'
7+ export type ContextMenuType = 'Message' | 'User'
8+
9+ export type ContextMenuCallback < T extends ContextMenuType = ContextMenuType > = (
10+ interaction : T extends 'Message'
911 ? MessageContextMenuCommandInteraction
1012 : UserContextMenuCommandInteraction
1113) => void
1214
13- export interface ContextMenuConfig {
15+ export interface ContextMenuConfig <
16+ T extends ContextMenuType = ContextMenuType
17+ > {
1418 name ?: string
15- type ?: 'message' | 'user'
19+ type ?: T
1620 userPermissions ?: PermissionsString [ ]
1721 guildOnly ?: boolean
1822 preconditions ?: string [ ]
1923}
2024
21- export type DefineContextMenu = < Type extends 'message' | 'user' > (
22- callback : ContextMenuCallback < Type >
23- ) => HarmonixContextMenu
24- export type DefineContextMenuWithOptions = < Type extends 'message' | 'user' > (
25- config : ContextMenuConfig ,
26- callback : ContextMenuCallback < Type >
27- ) => HarmonixContextMenu
28-
2925export type HarmonixContextMenuInput = string | HarmonixContextMenu
3026
31- export interface HarmonixContextMenu {
32- config : ContextMenuConfig
33- callback : ContextMenuCallback < 'message' | 'user' >
27+ export interface HarmonixContextMenu <
28+ T extends ContextMenuType = ContextMenuType
29+ > {
30+ config : ContextMenuConfig < T >
31+ callback : ContextMenuCallback < T >
3432}
0 commit comments