aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/settings.tsx
diff options
context:
space:
mode:
authorV <vendicated@riseup.net>2023-04-15 02:27:11 +0200
committerGitHub <noreply@github.com>2023-04-15 02:27:11 +0200
commitdb7fc3769b40961f6fd0b64d092f9e9e82552018 (patch)
tree7ec8e4039a83c51e6098b38c0585bca101488f9a /src/plugins/settings.tsx
parent6c719f5ee921d48eea671b026e6aff2c0c49e914 (diff)
downloadVencord-db7fc3769b40961f6fd0b64d092f9e9e82552018.tar.gz
Vencord-db7fc3769b40961f6fd0b64d092f9e9e82552018.tar.bz2
Vencord-db7fc3769b40961f6fd0b64d092f9e9e82552018.zip
Fix settings on Vencord Mobile (#905)
Diffstat (limited to 'src/plugins/settings.tsx')
-rw-r--r--src/plugins/settings.tsx30
1 files changed, 19 insertions, 11 deletions
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