diff --git a/src/lib/ui/settings/index.tsx b/src/lib/ui/settings/index.tsx index 941b771..37bb0fd 100644 --- a/src/lib/ui/settings/index.tsx +++ b/src/lib/ui/settings/index.tsx @@ -11,6 +11,7 @@ export interface RowConfig { onPress?: () => any; render?: Parameters[0]; icon?: ImageURISource | number; + IconComponent?: React.ReactNode, usePredicate?: () => boolean, useTrailing?: () => string | JSX.Element, rawTabsConfig?: Record; diff --git a/src/lib/ui/settings/patches/tabs.tsx b/src/lib/ui/settings/patches/tabs.tsx index 0b4b1d9..bafc54c 100644 --- a/src/lib/ui/settings/patches/tabs.tsx +++ b/src/lib/ui/settings/patches/tabs.tsx @@ -6,6 +6,7 @@ import { registeredSections } from "@ui/settings"; import { CustomPageRenderer, wrapOnPress } from "./shared"; import { Strings } from "@core/i18n"; +import { TableRowIcon } from "@metro/common/components"; const settingConstants = findByPropsLazy("SETTING_RENDERER_CONFIG"); const SettingsOverviewScreen = findByNameLazy("SettingsOverviewScreen", false); @@ -23,6 +24,7 @@ export function patchTabsUI(unpatches: (() => void | boolean)[]) { type: "pressable", title: row.title, icon: row.icon, + IconComponent: row.IconComponent ?? (row.icon && (() => )), usePredicate: row.usePredicate, useTrailing: row.useTrailing, onPress: wrapOnPress(row.onPress, null, row.render, row.title()),