diff --git a/packages/core-extensions/src/settings/webpackModules/settings.ts b/packages/core-extensions/src/settings/webpackModules/settings.ts index 46ddb53..b8f7813 100644 --- a/packages/core-extensions/src/settings/webpackModules/settings.ts +++ b/packages/core-extensions/src/settings/webpackModules/settings.ts @@ -1,18 +1,20 @@ import { SettingsSection, Settings as SettingsType } from "@moonlight-mod/types/coreExtensions/settings"; +import UserSettingsModalActionCreators from "@moonlight-mod/wp/discord/actions/UserSettingsModalActionCreators"; export const Settings: SettingsType = { ourSections: [], sectionNames: [], sectionMenuItems: {}, - addSection: (section, label, element, color = null, pos, notice) => { + addSection: (section, label, element, color = null, pos, notice, onClick) => { const data: SettingsSection = { section, label, color, element, pos: pos ?? -4, - notice: notice + notice: notice, + onClick: onClick ?? (() => UserSettingsModalActionCreators.open(section)) }; Settings.ourSections.push(data); diff --git a/packages/types/src/coreExtensions/settings.ts b/packages/types/src/coreExtensions/settings.ts index 458c9f8..fc2ed95 100644 --- a/packages/types/src/coreExtensions/settings.ts +++ b/packages/types/src/coreExtensions/settings.ts @@ -16,6 +16,7 @@ export type SettingsSection = element: React.FunctionComponent; pos: number | ((sections: SettingsSection[]) => number); notice?: NoticeProps; + onClick?: () => void; _moonlight_submenu?: () => ReactElement | ReactElement[]; }; @@ -32,6 +33,7 @@ export type Settings = { * @param color A color to use for the section * @param pos The position in the settings menu to place the section * @param notice A notice to display when in the section + * @param onClick A custom action to execute when clicked from the context menu */ addSection: ( section: string, @@ -39,7 +41,8 @@ export type Settings = { element: React.FunctionComponent, color?: string | null, pos?: number | ((sections: SettingsSection[]) => number), - notice?: NoticeProps + notice?: NoticeProps, + onClick?: () => void ) => void; /**