aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/apiContextMenu.ts2
-rw-r--r--src/plugins/settings.tsx30
2 files changed, 21 insertions, 11 deletions
diff --git a/src/plugins/apiContextMenu.ts b/src/plugins/apiContextMenu.ts
index 0eaca78..d04e0e6 100644
--- a/src/plugins/apiContextMenu.ts
+++ b/src/plugins/apiContextMenu.ts
@@ -23,6 +23,8 @@ export default definePlugin({
name: "ContextMenuAPI",
description: "API for adding/removing items to/from context menus.",
authors: [Devs.Nuckyz, Devs.Ven],
+ required: true,
+
patches: [
{
find: "♫ (つ。◕‿‿◕。)つ ♪",
diff --git a/src/plugins/settings.tsx b/src/plugins/settings.tsx
index f9a7548..74d0496 100644
--- a/src/plugins/settings.tsx
+++ b/src/plugins/settings.tsx
@@ -16,6 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { addContextMenuPatch } from "@api/ContextMenu";
import { Settings } from "@api/settings";
import PatchHelper from "@components/PatchHelper";
import { Devs } from "@utils/constants";
@@ -33,6 +34,23 @@ export default definePlugin({
description: "Adds Settings UI and debug info",
authors: [Devs.Ven, Devs.Megu],
required: true,
+
+ start() {
+ // The settings shortcuts in the user settings cog context menu
+ // read the elements from a hardcoded map which for obvious reason
+ // doesn't contain our sections. This patches the actions of our
+ // sections to manually use SettingsRouter (which only works on desktop
+ // but the context menu is usually not available on mobile anyway)
+ addContextMenuPatch("user-settings-cog", children => {
+ const section = children.find(c => Array.isArray(c) && c.some(it => it?.props?.id === "VencordSettings")) as any;
+ section?.forEach(c => {
+ if (c?.props?.id?.startsWith("Vencord")) {
+ c.props.action = () => SettingsRouter.open(c.props.id);
+ }
+ });
+ });
+ },
+
patches: [{
find: ".versionHash",
replacement: [
@@ -69,8 +87,6 @@ export default definePlugin({
}],
makeSettingsCategories({ ID }: { ID: Record<string, unknown>; }) {
- const makeOnClick = (tab: string) => () => SettingsRouter.open(tab);
-
return [
{
section: ID.HEADER,
@@ -79,50 +95,42 @@ export default definePlugin({
{
section: "VencordSettings",
label: "Vencord",
- element: () => <SettingsComponent tab="VencordSettings" />,
- onClick: makeOnClick("VencordSettings")
+ element: () => <SettingsComponent tab="VencordSettings" />
},
{
section: "VencordPlugins",
label: "Plugins",
element: () => <SettingsComponent tab="VencordPlugins" />,
- onClick: makeOnClick("VencordPlugins")
},
{
section: "VencordThemes",
label: "Themes",
element: () => <SettingsComponent tab="VencordThemes" />,
- onClick: makeOnClick("VencordThemes")
},
!IS_WEB && {
section: "VencordUpdater",
label: "Updater",
element: () => <SettingsComponent tab="VencordUpdater" />,
- onClick: makeOnClick("VencordUpdater")
},
{
section: "VencordCloud",
label: "Cloud",
element: () => <SettingsComponent tab="VencordCloud" />,
- onClick: makeOnClick("VencordCloud")
},
{
section: "VencordSettingsSync",
label: "Backup & Restore",
element: () => <SettingsComponent tab="VencordSettingsSync" />,
- onClick: makeOnClick("VencordSettingsSync")
},
IS_DEV && {
section: "VencordPatchHelper",
label: "Patch Helper",
element: PatchHelper!,
- onClick: makeOnClick("VencordPatchHelper")
},
IS_VENCORD_DESKTOP && {
section: "VencordDesktop",
label: "Desktop Settings",
element: VencordDesktop.Components.Settings,
- onClick: makeOnClick("VencordDesktop")
},
{
section: ID.DIVIDER