feat(lib/discord/common): expose and switch filters to use ImportTrackerModuleId

This commit is contained in:
PalmDevs 2026-01-17 20:54:14 +07:00
parent a87d4ced5c
commit d8897d8c4d
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
9 changed files with 48 additions and 19 deletions

View file

@ -10,6 +10,7 @@ import {
ReactNativeModuleId,
} from '@revenge-mod/react'
import { proxify } from '@revenge-mod/utils/proxy'
import { ImportTrackerModuleId } from './common'
import { DispatcherModuleId } from './common/flux'
import type { DiscordModules } from './types'
@ -31,7 +32,7 @@ export let ActionSheetActionCreators: DiscordModules.Actions.ActionSheetActionCr
DispatcherModuleId,
relative(1),
relative(2),
2,
ImportTrackerModuleId,
]),
),
)
@ -53,8 +54,8 @@ export let AlertActionCreators: DiscordModules.Actions.AlertActionCreators =
).and(
withDependencies([
[relative(1), relative(2)],
[ReactNativeModuleId, 2],
2,
[ReactNativeModuleId, ImportTrackerModuleId],
ImportTrackerModuleId,
]),
),
)
@ -75,7 +76,12 @@ export let ToastActionCreators: DiscordModules.Actions.ToastActionCreators =
const generator = lookupModules(
withProps<DiscordModules.Actions.ToastActionCreators>('open')
.and(withoutProps('init'))
.and(withDependencies([DispatcherModuleId, 2])),
.and(
withDependencies([
DispatcherModuleId,
ImportTrackerModuleId,
]),
),
)
for (const [module] of generator)

View file

@ -3,6 +3,7 @@ import {
withDependencies,
withProps,
} from '@revenge-mod/modules/finders/filters'
import { ImportTrackerModuleId } from '../patches/import-tracker'
import type { Metro } from '@revenge-mod/modules/types'
import type { DiscordModules } from '../types'
@ -12,6 +13,13 @@ const { relative } = withDependencies
export const [Dispatcher, DispatcherModuleId] = lookupModule(
withProps<DiscordModules.Flux.Dispatcher>('_interceptors').and(
withDependencies([relative(1), null, null, null, null, 2]),
withDependencies([
relative(1),
null,
null,
null,
null,
ImportTrackerModuleId,
]),
),
) as [DiscordModules.Flux.Dispatcher, Metro.ModuleID]

View file

@ -5,6 +5,7 @@ import {
withProps,
} from '@revenge-mod/modules/finders/filters'
import { proxify } from '@revenge-mod/utils/proxy'
import { ImportTrackerModuleId } from '../patches/import-tracker'
import type { Metro } from '@revenge-mod/modules/types'
import type { DiscordModules } from '../types'
@ -47,10 +48,10 @@ export let Constants: DiscordModules.Constants = proxify(
withDependencies(
loose([
null,
relative.withDependencies([2], 1),
relative.withDependencies([2], 2),
relative.withDependencies([2], 3),
relative.withDependencies([2], 4),
relative.withDependencies([ImportTrackerModuleId], 1),
relative.withDependencies([ImportTrackerModuleId], 2),
relative.withDependencies([ImportTrackerModuleId], 3),
relative.withDependencies([ImportTrackerModuleId], 4),
]),
),
),
@ -63,3 +64,5 @@ export let Constants: DiscordModules.Constants = proxify(
},
{ hint: {} },
)!
export { ImportTrackerModuleId } from '../patches/import-tracker'

View file

@ -4,6 +4,7 @@ import {
withName,
} from '@revenge-mod/modules/finders/filters'
import { proxify } from '@revenge-mod/utils/proxy'
import { ImportTrackerModuleId } from '../patches/import-tracker'
import type { DiscordModules } from '../types'
// ../discord_common/js/shared/utils/TypedEventEmitter.tsx
@ -20,7 +21,7 @@ export let TypedEventEmitter: typeof DiscordModules.Utils.TypedEventEmitter =
withName('_classCallCheck'),
withName('_createClass'),
[],
2,
ImportTrackerModuleId,
]),
),
)

View file

@ -10,6 +10,7 @@ import {
ReactNativeModuleId,
} from '@revenge-mod/react'
import { proxify } from '@revenge-mod/utils/proxy'
import { ImportTrackerModuleId } from './common'
import type { DiscordModules } from './types'
const { loose, relative } = withDependencies
@ -26,9 +27,12 @@ export let Design: Design = proxify(
loose([
null,
null,
withDependencies([ReactNativeModuleId, 2]),
withDependencies([2]),
2,
withDependencies([
ReactNativeModuleId,
ImportTrackerModuleId,
]),
withDependencies([ImportTrackerModuleId]),
ImportTrackerModuleId,
]),
),
)
@ -63,8 +67,7 @@ export let FormSwitch: DiscordModules.Components.FormSwitch = proxify(() => {
// Checkmark and X icons
relative(1),
relative(2),
// Import tracker
2,
ImportTrackerModuleId,
]),
),
)

View file

@ -4,6 +4,7 @@ import {
withProps,
} from '@revenge-mod/modules/finders/filters'
import { proxify } from '@revenge-mod/utils/proxy'
import { ImportTrackerModuleId } from '../common'
import type { NavigationContainerRef } from '@react-navigation/core'
const { loose, relative } = withDependencies
@ -28,7 +29,8 @@ export let RootNavigationRef: RootNavigationRef = proxify(
2,
),
]),
2,
// TODO: Decouple?
ImportTrackerModuleId,
]),
)
.keyAs('revenge.discord.modules.mainTabsV2.RootNavigationRef'),

View file

@ -11,7 +11,11 @@ export type ModuleFinishedImportingCallback = (
export const sImportedPath = new Set<ModuleFinishedImportingCallback>()
export const mImportedPaths = new Map<string, Metro.ModuleID>()
getModules(withProps('fileFinishedImporting'), exports => {
export let ImportTrackerModuleId: Metro.ModuleID
getModules(withProps('fileFinishedImporting'), (exports, id) => {
ImportTrackerModuleId = id
const orig = exports.fileFinishedImporting
exports.fileFinishedImporting = (path: string) => {
orig(path)

View file

@ -11,7 +11,7 @@ const { relative } = withDependencies
// ../discord_common/js/packages/app-start-performance/AppStartPerformance.tsx
export const [AppStartPerformance] = lookupModule(
withProps<DiscordModules.AppStartPerformance>('markAndLog').and(
withDependencies([relative(-1), null, null, 2]),
withDependencies([relative(-1), null, null, null]),
),
) as [DiscordModules.AppStartPerformance, Metro.ModuleID]

View file

@ -1,3 +1,4 @@
import { ImportTrackerModuleId } from '@revenge-mod/discord/common'
import { lookupModule } from '@revenge-mod/modules/finders'
import {
withDependencies,
@ -23,7 +24,8 @@ export let FlashList: typeof import('@shopify/flash-list') = proxify(
null,
null,
null,
2,
// TODO: Decouple?
ImportTrackerModuleId,
null,
]),
),